Provision lorena.salomone@odontologia.uba.ar as docente + forced welcome-email resend
Elazar-originated via pmmaster ms839tlkgrq0, all three apps. Venus leg: pre-create (NOT auto-provision) lorena.salomone@odontologia.uba.ar as docente with NO alumnos assigned, and send the welcome email EVEN IF she has already received one. Constraints: (1) human-pre-creation path per section Auth, no auto-create branch. (2) odontologia.uba.ar is a WORKSPACE domain -> DOTS ARE SIGNIFICANT; must NOT strip. A 'lorenasalomone@' row would be a DIFFERENT ADDRESS and a possible pre-existing duplicate -> REPORT, DO NOT MERGE. (3) Check for an existing row FIRST on the canonical expression the unique index uses (venus = users.emailCanonical GENERATED); a refused second insert IS THE GUARD WORKING, not an error to route around. (4) Role via userRoles on the live DB, never a JWT claim; docente only for now, a bedel role may be added (pmmaster asked Elazar) and nothing done now needs redoing. (5) THE RESEND IS THE PART MOST LIKELY TO BE A NO-OP -- do NOT report 'sent' from a function returning success; confirm the send OCCURRED by provider log / appEvents row. If venus has no forced-resend path, SAY SO rather than inventing one. (6) Verify the outbound link ORIGIN IN EFFECT before sending -- a welcome email is exactly the artifact that carries a wrong origin to a real user, unrecoverably. Dispatched pm-venus-cc-ms83ahq2ee10 to db-venus-cc + coder-venus-cc. Report: row found-or-created, canonical value stored, roles now on row, send confirmed BY WHAT EVIDENCE.
Questions
Activity
-
**BLOCKED ON ELAZAR — THE PREMISE IS WRONG ON VENUS IN TWO WAYS. Nothing written, no email sent (db-venus-cc ms83chpmf6ta, measured).** (1) **SHE ALREADY EXISTS AND ALREADY HAS A ROLE.** users `aa3638ea-9d2c-4784-9963-e52e4bcc8beb`, created **2026-07-05, 25 days ago**, deletedAt null. `email` and `emailCanonical` **BOTH** `lorena.salomone@odontologia.uba.ar` — **dots intact, no stripping, canonical=raw on this Workspace domain.** No `lorenasalomone@` row anywhere; constraints 2+3 CLEAN. `authId`/`googleSub` **both NULL — she has NEVER logged in via Google**, so whatever 'she already received one' refers to, no identity has ever been attached. (2) **HER EXISTING ROLE IS `bedelia`, seesAllSedes=true, created in the SAME INSTANT as the user row** — so on venus **the bedel role pmmaster said 'may be added' IS THE ONE SHE ALREADY HAS**, and docente would be the CHANGE. (3) **THERE IS NO 'docente' ROLE IN VENUS.** `userRoles.role` is plain text, no lookup, no enum; **exactly four live values: administrador, alumno_postgrado, bedelia, titular.** Nearest domain match is `titular` (module-owning instructor). **db-venus-cc REFUSED to map docente->titular silently and that is correct** — a guess on an auth-gating role-resolution surface, on a real user, where §Role Resolution makes `userRoles` THE live gate. **TWO ANSWERS NEEDED FROM ELAZAR (pm-venus-cc-ms83d2u5ptr1): (a) is `titular` the intended role, or something else? (b) KEEP, REMOVE, or REPLACE the existing `bedelia` row — adding titular alongside WIDENS her live access, replacing NARROWS it; one row either way, OPPOSITE OUTCOMES, PM will not pick.** **'No students assigned' is a NO-OP on venus either way** — titular/bedelia/administrador carry no `alumnos` profile row, that table is student-only in practice. **Welcome-email resend HELD behind (a)/(b)**: it would carry whatever role state exists at send time to a real user, and per constraint 5 no send will be reported that has not been confirmed to have OCCURRED. coder-venus-cc dispatched (pm-venus-cc-ms83dg4trc9o) on the three email questions in parallel: **does venus have a FORCED-RESEND path at all (a 'no' is the expected and acceptable answer, not a gap to invent around); what ORIGIN the link would actually carry, MEASURED not read off a constant; and what evidence would confirm the send OCCURRED — a function returning success is NOT evidence.** Also dispatched (pm-venus-cc-ms83dq5xsdly): **`nombre`/`apellido` verbatim PLUS THE PROVENANCE OF THE NAME for terra** — *'a row whose name was itself derived from an email local-part by some earlier import is not a source, it is the same guess with a database around it, and copying it into terra would LAUNDER AN INFERENCE INTO THREE APPS' WORTH OF APPARENT CORROBORATION'*; **two apps agreeing is not independent confirmation if one was seeded from the other.** terra has ZERO mail infrastructure, so the email half has no referent there — a design property, not a gap.
-
**COLLAPSES TO ONE QUESTION, AND THE BRIEF'S CLOSING PREMISE IS FALSE ON VENUS (coder-venus-cc ms83esdaxx10 + db-venus-cc ms83elgy3d4l, independently measured). Nothing written, nothing sent, no DDL.** **ROLES ARE MUTUALLY EXCLUSIVE ON VENUS, ENFORCED BY THE DB:** `userRoles_userId_unique_active_idx` = `UNIQUE("userId") WHERE "deletedAt" IS NULL` — **one live role per user, and 0 users hold more than one**: enforced AND uniformly true in practice. Live population: alumno_postgrado 33, titular 3, **bedelia 1**, administrador 1. **SHE IS THAT ONE BEDELIA.** So 'provision as docente' is **NOT ADDITIVE — it is soft-deleting her bedelia row and inserting titular, REMOVING THE ONLY BEDELIA IN PRODUCTION.** **THE BRIEF SAID 'a bedel role may be added — nothing done now needs redoing either way'. ON VENUS THAT IS FALSE: THE TWO CANNOT COEXIST, so doing docente now does not leave the bedel question open — IT ANSWERS IT, BY REVOCATION, BEFORE ELAZAR HAS.** **SILENT-NO-OP TRAP:** `inviteTitular`'s INSERT is `WHERE NOT EXISTS (… deletedAt IS NULL)`, so **run as-is she would keep bedelia, gain nothing, AND THE ACTION WOULD STILL RETURN SUCCESS AND SEND THE EMAIL.** **docente = role literal `titular`** (UI label 'Docente'). **'No alumnos assigned' is ALREADY TRUE and needs no action** — venus assigns titulares to SEDES not students; `titularSedes` = 0 live rows. **ONE DECISION WITH ELAZAR (pm-venus-cc-ms83ffkacuxj): KEEP `bedelia` OR REPLACE IT WITH `titular`. THERE IS NO BOTH.** Supporting both = redefining that partial unique index = a separate reviewed db-venus-cc WI, not this provisioning. **EMAIL (constraint 5, answered honestly): 0 appEvents rows mention her; `createdVia` NULL, so she was NEVER created through the app's invite path and there is NO APP-SIDE RECORD OF ANY WELCOME EMAIL EVER SENT TO HER — absence of OUR record, not proof none was sent by other means.** A forced resend IS available (`scripts/send-email.ts`, no first-issue gate) but reproduces the body rather than invoking `sendWelcomeEmail`; **held because the mail tells her to sign in and WHAT SHE CAN DO ON ARRIVAL IS THE THING UNDER DISPUTE.** **CONSTRAINT 6 DISCHARGED — VENUS IS CLEAN WHERE MARS IS NOT:** `resolveSiteOrigin` (`src/lib/site-config.ts`) is a **CONSTANT FUNCTION**, every branch returns `https://cmfpost-evolutiva.pensanta.com`; **no env value can change it.** No wrong-origin exposure. **DEFECT FOUND IN PASSING, VENUS-OWNED, fixed in the same change: `inviteTitular`'s alreadyExisted branch returns '…y se le envió el correo de bienvenida' REGARDLESS OF `emailSent` (`admin-actions.ts:1633`) — IT REPORTS A SUCCESSFUL SEND ON A FAILED ONE, precisely the failure the brief warns about, ALREADY SHIPPED IN THE UI COPY.** **NAME PROVENANCE FOR TERRA — 'FOUND A NAME', NOT 'FOUND A NAME SOMEONE VERIFIED':** `nombre="Lorena"`, `apellido="Salomone"` verbatim, live, plain ASCII. **`createdVia` NULL — and NULL is NOT 'unknown app path', it is THE BUCKET WITH NO APP-MEDIATED PATH AT ALL** (6 rows: her, Elazar's two accounts, the soporte service account, Puia's secondary, Stolbizer), consistent with a direct admin/DB insert. Zero `accessRequests` row; **zero appEvents in the ±2min window around 2026-07-05 03:13:35Z — 25 days old against 90d retention, so it WOULD still be there**; **no audit/history table exists on venus.** **The name matches the email local-part EXACTLY and venus's schema retained NOTHING distinguishing 'typed from a verified source' from 'title-cased the local-part into the name fields'. Do not launder it into terra as corroboration.**
-
**BOTH LANES' BLOCK RATIFIED (pmmaster ms83k1c601z3) — 'the good version of stopping'. Escalated to Elazar with the measurement attached; pmmaster CORRECTED HIS OWN QUESTION to him ('keep bedelia alongside, or replace') to the one-option-or-the-other form venus's reads establish. Nothing to redo.** **THE PART THAT TRANSFERS: A DISPATCH'S NEUTRALITY CLAIM IS A CLAIM ABOUT THE TARGET SCHEMA, AND THIS ONE WAS WRITTEN WITHOUT ONE** — pmmaster owns it: *'the brief's "a bedel role may be added, nothing done now needs redoing either way" was FALSE on venus, and doing docente would not have left the bedel question open — IT WOULD HAVE ANSWERED IT BY REVOCATION BEFORE THE PERSON WHO OWNS THE DECISION HAD.'* **SECOND FINDING WORTH AS MUCH — HAD EITHER LANE EXECUTED THE DIRECTIVE AS WRITTEN, THE REPORT WOULD HAVE READ 'PROVISIONED AND EMAILED' AND BEEN FALSE IN BOTH HALVES:** `inviteTitular`'s `INSERT … WHERE NOT EXISTS (deletedAt IS NULL)` returns **SUCCESS, SENDS THE MAIL, AND GRANTS NOTHING.** **HELD AND STAYING HELD: the role write and the welcome mail** — the hold reason accepted as correct (*'the mail says sign in, and what she can do on arrival is the thing under dispute'*). **TWO VENUS RESULTS PROMOTED TO FLEET REFERENCES, recorded as MEASURED not assumed: (1) venus's `resolveSiteOrigin` is a CONSTANT function — every branch returns the production origin, no env value reaches it — STRONGER THAN MARS'S, and pmmaster is CITING VENUS, NOT MARS, AS THE REFERENCE FROM HERE. (2) 'no alumnos assigned' is ALREADY TRUE STRUCTURALLY — a constraint SATISFIED BY THE SCHEMA RATHER THAN BY AN ACTION.** **NAME PROVENANCE — the framing is what stopped terra's from being laundered, and the load-bearing read is that `createdVia` NULL is A BUCKET WITH NO APP-MEDIATED PATH AT ALL RATHER THAN AN UNKNOWN ONE, WHICH IS WHAT MAKES THE ABSENCE INFORMATIVE INSTEAD OF EMPTY.** Terra had already written the row before the hold landed; **it stays PROVISIONAL and corrects with an UPDATE.** pmmaster asked Elazar for the name as **RECALL, not confirmation.** **VENUS-333 STAYS OPEN PENDING ELAZAR'S ANSWER. The 1633 defect is SPLIT OUT to VENUS-334 and explicitly NOT held behind this.**
-
**THE EMAIL HALF OF THE DIRECTIVE HAS NO REFERENT ON VENUS EITHER (coder-venus-cc ms83ky5h77qe, measured by EXECUTION; read-only, nothing sent).** **Q1 — NO FORCED-RESEND PATH BECAUSE THERE IS NO WELCOME-EMAIL PATH AT ALL.** `sendWelcomeEmail` (`src/lib/email.ts:96-157`) has **ZERO CALL SITES** — `grep -rn sendWelcomeEmail src scripts` returns its own `export` and its own failure-log line and nothing else. **DEAD CODE**; the subject string 'Bienvenido a Evolutiva Venus' occurs nowhere else in the tree. **SO VENUS HAS NEVER SENT THAT EMAIL TO ANYONE AND 'she has already received one' CANNOT REFER TO IT.** Doubly unreachable: `email.ts:1` is `import "server-only"`, so a `tsx` script throws at import — **unreachable from the app AND from the CLI.** What exists is `scripts/send-email.ts` -> `sendOutboundEmail` (`email-transport.ts`, no `server-only`), an **ARBITRARY-BODY** sender: **using it is NOT A RESEND, it is a NEW email whose wording is hand-copied out of the dead function, creating a second copy of the copy with no link to the source.** The docente-facing mail that DOES exist is `inviteTitular`'s 'Invitación a Evolutiva — Docente', `requireAdmin()`-gated, also not CLI-invokable. **Q3 — VENUS INSTANTIATES THE BRIEF'S OWN HAZARD LITERALLY, IN OUR OWN CODE: `sendOutboundEmail` RETURNS `{success:true, messageId:"queued"}` ON SMTP FAILURE (`email-transport.ts:235`)** after enqueueing to an outbox for a cron drain, and `send-email.ts:121` prints `ok: result.success`. **`ok:true` ON STDOUT IS FULLY COMPATIBLE WITH 'THE MAIL WAS NOT SENT'.** Discriminators, strongest first: **(1) an appEvents row `category='email'`, `action='outboundEmailSent'`, `status='success'` — written ONLY inside `if (result.sent)` (`:198`), NEVER on the queued branch. THIS ROW EXISTING IS THE EVIDENCE.** (2) **`detail.messageId` must be a REAL SMTP ID, not the literal string `"queued"` — the two outcomes are indistinguishable in the return value and distinguishable here.** (3) provider trace via `X-Outbound-Reason`/`X-Outbound-Actor` (`:194-196`). Blocked-by-guard is a DISTINCT FOURTH outcome: `success:false`/'all recipients blocked' + `mailerSkippedRecipient`, no sent row. **CLOSES THE LOOP ON HER: zero appEvents rows mention her at all, so under a scheme where every successful send writes one, NO OUTBOUND EMAIL HAS EVER BEEN LOGGED AS SENT to that address** — consistent with `authId`/`googleSub`/`createdVia` all NULL. Bound: **absence of OUR ledger row, not proof no mail left by some other hand.** **Q2 — ORIGIN MEASURED BY EXECUTION, NOT READ: `resolveSiteOrigin` run under 10 HOSTILE INPUTS with `NEXT_PUBLIC_APP_URL=http://localhost:3000` and `NEXT_PUBLIC_SITE_URL=https://evil.example.com` ACTUALLY SET IN THE PROCESS ENV — 10/10 returned `https://cmfpost-evolutiva.pensanta.com`, NON-PRODUCTION OUTPUTS = 0.** `site-config.ts:44-60`: **the branch that LOOKS like it honours an override returns `PRODUCTION_ORIGIN`, not `trimmed`.** **BUT THE GUARANTEE DOES NOT COVER THE PATH WE WOULD ACTUALLY USE, AND THAT IS THE REAL ANSWER: `send-email.ts` NEVER CALLS `resolveSiteOrigin` — on the CLI path THE ORIGIN IS HAND-TYPED AND UNGUARDED. The app's protection is real and STRUCTURALLY BYPASSED BY THE ONLY MECHANISM AVAILABLE FOR A MANUAL SEND.** Mitigation = PM reviews the body file before the run — **a review step, not a guard.** Escalated pm-venus-cc-ms83lemz4v3v. Coder ready to send in one step once the role lands.
-
**ELAZAR RULED (ms83m57staxm): 'bedel then, send welcome email'. SO ON VENUS THERE IS NO WRITE AT ALL — SHE IS ALREADY `bedelia`, AND THAT IS THE ANSWER.** No `titular` insert, no soft-delete of the bedelia row, no schema question, db-venus-cc stood down. **The block was load-bearing: executing the directive as literally written would have REVOKED the only bedelia in production to grant a role Elazar did not want** — and per the silent-no-op trap it would have granted nothing anyway while returning success and mailing her. **Remaining task = the SEND ONLY, and it is a NEW mail via `scripts/send-email.ts`, NOT a resend, because `sendWelcomeEmail` has never been invoked by anything (VENUS-335).** Terms: **body file to PM for review BEFORE the run** (`send-email.ts` never calls `resolveSiteOrigin`, so on this path **the origin is hand-typed and unguarded and that review IS THE ONLY GUARD**); literal production origin pasted; **wording addresses her as BEDELÍA, not docente** — the dead function's copy checked for role-specific text; `reason`/`actor` set so `X-Outbound-Reason`/`X-Outbound-Actor` carry provenance. **CONFIRMATION IS NOT `ok:true`** — `sendOutboundEmail` returns `{success:true, messageId:'queued'}` **ON SMTP FAILURE**. Required evidence: the appEvents row `category='email'`/`action='outboundEmailSent'`/`status='success'` **AND `detail.messageId` A REAL SMTP ID, NOT THE LITERAL STRING 'queued'** — **if it comes back `queued` THAT IS NOT SENT** and we chase the outbox drain. Blocked-by-guard is a distinct fourth outcome, not a failure; verify the outbound-recipient guard before concluding a silent block. Dispatched pm-venus-cc-ms83muxcc8jp.
-
**SENT — CONFIRMED BY THE LEDGER, NOT BY THE RETURN VALUE, ALL THREE RUNGS (coder-venus-cc ms83r8c08tud).** Ran `scripts/send-email.ts --body-file=…/venus333-welcome.json` at **22:45:08.6Z**, returned 22:45:12.4Z, exit 0; body **byte-identical to the PM-approved file, no edit after GO.** **RUNG 2 FIRST BECAUSE IT IS THE LOAD-BEARING ONE — `messageId` IS A REAL SMTP ID, NOT THE LITERAL 'queued': `<2ba5c19a-7d7d-3068-d8b7-c9d8652e6107@pensanta.com>`. So this is the SENT branch, not the enqueued-after-SMTP-failure branch THAT WOULD HAVE PRINTED THE IDENTICAL `ok:true`.** **RUNG 1 — the appEvents ledger row exists, queried INDEPENDENTLY of the CLI's own stdout:** `createdAt 2026-07-30 22:45:12.239594+00 | level info | category email | action outboundEmailSent | status success | route actor:coder-venus-cc | reason admin:welcome-venus333 | actor coder-venus-cc`; `detail.messageId` **matches the returned id exactly**, and that row is written ONLY inside `if (result.sent)` — **the queued path writes nothing.** **RUNG 3** — `X-Outbound-Reason: admin:welcome-venus333` / `X-Outbound-Actor: coder-venus-cc` stamped at egress. **FOURTH OUTCOME EXCLUDED, NOT ASSUMED: `detail.blocked` = `[]`**, matching the pre-run guard probe. **ESTABLISHED: venus handed the message to SMTP and the server accepted it with that id. NOT ESTABLISHED: delivery to her mailbox, or that she reads it — PROVIDER-SIDE ACCEPTANCE IS THE BOUNDARY OF THIS INSTRUMENT.** **ZERO DB WRITES ON VENUS** — db-venus-cc stood down, `userRoles` untouched, she keeps `bedelia`. Pre-send guard measured WITH FAILING CONTROLS (`@surrogate.venus`/`@demo.venus` -> `non_deliverable_tld`, `@host.local` -> `local_tld`) — **and the guard is NARROWER than PM framed it: bounce-prevention on placeholder domains, NOT the admission allowlist, so being allowlisted is not what cleared her; not being a placeholder domain is.** Subject on the wire `CyT-BMF / Venus / Bienvenida a Evolutiva Venus` (`prefixSubject` at egress, unbypassable, measured). Copy verified role-NEUTRAL (zero hits on `docente|alumno|titular|bedel|administrador`) and **no role line added — that would have been invented copy asserting something the original never claimed, on the one mail whose whole problem tonight was asserting more than was true.** **NAME BOUND CARRIED, NOT QUIETLY DISCHARGED: 'Lorena' remains UNVERIFIED PROVENANCE. This send is NOT corroboration** — the only thing the name could have been derived from is her own address, so the mail cannot be wrong about her in a way the address already isn't. **TERRA'S ROW STAYS PROVISIONAL; nothing here upgrades it.**
-
**AUTHORIZATION PROVENANCE — the ruling EXISTS and is citable, and I was inside the failure anyway.** pmmaster issued a HARD STOP (ms83r3rkkurp) asserting Elazar had answered nothing; **his premise was wrong and is falsifiable by the hub record.** Origin, with sender and tag: **from `elazar-the-user-human-llmmsg-srv`, tag `elazar-the-user-human-llmmsg-srv-ms83m57staxm`, kind=dm, origin_aro=`aro:evolutiva-management`, re=`pm-venus-cc-ms83ffkacuxj`, 19:41 — 'tldr. bedel then, send welcome email'.** Direct DM to pm-venus-cc in reply to venus's own escalation, **four minutes before the stop**; not a relay, not carried from pluto's GO, not inferred. **He answered both questions in five words: bedel (= KEEP the role she already holds, hence NO write) and send.** **THE CORRECTION I TAKE, AND IT STANDS EVEN THOUGH THE RULING WAS REAL: I said 'Elazar ruled' WITHOUT QUOTING THE TAG. An unattributed authorization is UNVERIFIABLE WHETHER OR NOT IT IS TRUE — pmmaster had no way to tell mine from a rumour, and 'I happened to be right' is not what makes it actionable; THE CITATION IS.** New fleet standing rule, effective now on every lane: **an authorization is actionable only with its ORIGIN attached — sender AND tag. 'Elazar ruled' without a quotable tag is not a ruling, it is a rumour with good posture. If you cannot cite it, you do not have it.** **SEPARATE ISSUE RAISED UPWARD: he replied to pm-venus-cc and NOT to pmmaster, on a directive pmmaster originated. If the Elazar lane is held as one voice, HIS REPLIES ARE NOT ALL LANDING THERE** — worth resolving before the next cross-app directive, because the next lane in this position may not have the tag to produce.
-
Elazar ruled 'bedel then, send welcome email' (ms83m57staxm): NO write needed on venus - she has held bedelia since 2026-07-05. Welcome mail sent 22:45:08Z, confirmed by appEvents outboundEmailSent + real SMTP id <2ba5c19a-...@pensanta.com>, not by ok:true. Zero DB writes. Splits: VENUS-334, VENUS-335.
-
**STOP WITHDRAWN (pmmaster ms83sh367dt3) — 'the ruling exists, you cited it with sender, tag, kind and re-chain, and it is his direct reply to your own escalation four minutes before I fired.'** pmmaster on his own error: *'"nothing has arrived from him since his original DM" was FALSE and FALSIFIABLE AGAINST THE HUB RECORD — I ASSERTED IT FROM MY OWN INBOX AND TREATED ABSENCE THERE AS ABSENCE EVERYWHERE. That is the night's own defect class, from me, IN THE MESSAGE WHERE I WAS ENFORCING IT.'* **ORDERING RULE ON RECORD: lead with the fact that must be acted on, not the fact that vindicates you.** *'You led with the mail having gone out BEFORE the citation that vindicated you. The reverse order READS AS A DEFENCE WITH A DISCLOSURE ATTACHED.'* **THE CITATION RULE STANDS UNCHANGED AND SURVIVES BEING WRONG ON THE FACT: an authorization is actionable only with sender+tag attached — 'the citation is what makes an authorization actionable, NOT WHETHER IT HAPPENS TO BE TRUE.'** coder-venus-cc's own provenance is clean and worth recording: they acted on `pm-venus-cc-ms83muxcc8jp` (kind=decision, carrying `re=elazar-the-user-human-llmmsg-srv-ms83m57staxm`) plus an explicit `pm-venus-cc-ms83ptjwb6ff` GO on the exact bytes — **a relay citing an Elazar tag is not the ruling, and that distinction is now the rule.** **EXPOSURE JUDGED RATHER THAN ESTIMATED: the mail is ROLE-NEUTRAL BY MEASUREMENT, so ITS CONTENT IS INVARIANT UNDER THE OPEN ROLE QUESTION.** coder-venus-cc narrowing their own hold reason honestly: *'it applies to what she EXPERIENCES on arrival, not to anything the mail CLAIMS. If the role decision later changes that, this mail becomes NEITHER WRONG NOR MISLEADING; it never described a role.'* **Actual exposure: she may sign in EARLIER THAN INTENDED, into THE ROLE SHE ALREADY HOLDS.** DB re-verified after the fact, not asserted: her single `userRoles` row unchanged (same id, same 2026-07-05 timestamp); **`userRoles` rows created after 22:00Z today = 0; rows soft-deleted at any point today = 0; no DDL, no index change.** **THE ROUTING FINDING pmmaster ADOPTED: 'his replies are not all landing in the lane I claimed to hold as one voice. He answered your escalation, in your thread, on a directive I originated — so "one voice to Elazar" describes MY SENDING, NOT HIS REPLYING, and I was treating it as both. THAT IS A ROUTING ASSUMPTION DOING GATE WORK.'** New practice, effective now: **when Elazar answers a PM directly on a cross-app directive, that PM relays the QUOTED ruling — sender, tag, verbatim text — to pmmaster IN THE SAME TURN AS ACTING ON IT.** Not for approval, so the lane does not slow; **so the fleet's picture of what he has decided cannot diverge from his. The next lane in this position may not have a tag to produce, and the stop would then have been UNANSWERABLE.** **NOT VENUS'S: pmmaster is asking Elazar whether 'bedel' extends beyond venus — he ruled bedel FOR VENUS WHERE THE DB FORCED A CHOICE; terra has no such constraint and its row is docente, and he is not reading five words as a fleet-wide role change.**