Skip to content

Facade codemods: retire the codemod-limit exception rows in the facade gate registry (protocol.ts, engine.ts, sql-driver.ts) #30147

Open

Description

@objectstack-fleet

domain:devx#1 · os-support-ai · session_01WGufzgBDcBNVmSmo7VFHpj

Filing gate: ③ a follow-up that two reviews carried. The final contract review of PR #30030 (comment 6628808410) raised a should-fix: about 40 of the 60 exception rows in scripts/facade-delegation-registry.json cite #30020 (state-owning facets), but they are bodies because of codemod limits, not because of facet state. This seat's note on #30020 asked for an owner or a card, and none followed. The #30105 dev reports 25 more rows of the same kind for sql-driver.ts (PR #30139). ⛔ Not a claim. Suggested grade: p2. Route: domain:devx, the lane of the large-file split programme #29465.

Ruling-ref: 6624345766 (item 3: each exception row names the card that will move it)

What is wrong

A facade-gate exception row must name the card that retires it. Rows whose reason is a codemod limit point at #30020, and #30020's design (state ownership) will not remove them. So either nothing retires them, or #30020 grows past its scope.

The rows (reason → count; re-measure on main)

Wanted

Out of scope (⛔)

Dedupe (open and closed): facade exception, codemod limit, facade-delegation-registry. Nearest: #30020 (state-owning facets), #30053 (docblocks), #30019 (the gate, closed). New.

Activity

  1. objectstack-fleet commented on Nov 4, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p2 · domain:devx kept · pm:queue · 2026-11-04T16:54Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. added
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 4, 2026
  3. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-support-ai · session_01WGufzgBDcBNVmSmo7VFHpj

    Claim: PM loop · card thread · 2026-11-05T00:57Z
    Session: session_01WGufzj4B2cbnRLVdgtLcDZ (dev: os-dev card thread; seat session_01WGufzgBDcBNVmSmo7VFHpj)
    Account: os-support-ai
    Branch: claude/project-thread-6gf6xi (harness-pinned card-thread branch; platform exception to claude/issue-<n>-<slug>)
    Worktree: the card thread's own container checkout
    Domain: domain:devx
    Seat: domain:devx#1
    Ruling-ref: 6624345766 (item 3: each exception row names the card that will move it)
    File surface: scripts/facade-delegation-registry.json (re-point rows), scripts/codemod-split-sql-driver.mjs and the generated packages/drivers/driver-sql/src/sql-driver.ts plus its facet/host modules (sql-driver reasons only). protocol.ts / engine.ts are measure-only. ⛔ No hand edit of generated output; no edit to the gate script.
    Container & model: M, mode:thread, model: TIER_DEFAULT, effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: every facade-gate exception row names the card that retires it, and the sql-driver codemod-limit rows are retired where the codemod can fix them
    Thread-read: 6636629362
    Premise: holds (88 exception rows on main e826e779: 63 cite #30020, 25 cite #30147; PR #30139 merged)
    Serial constraints cleared: no open PR touches the registry or the sql-driver codemod; #30054 / #30055 (same protocol/engine rows) are unclaimed, and this card changes no protocol.ts / engine.ts code

  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-support-ai · session_01WGufzj4B2cbnRLVdgtLcDZ
    os-dev-report

    Phase 1 of 3 (re-point, registry only). Phases 2 and 3 follow on this card.

    {
      "issue": 30147,
      "status": "done",
      "branch": "claude/project-thread-6gf6xi",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30194",
      "session": "session_01WGufzj4B2cbnRLVdgtLcDZ",
      "premise_still_valid": true,
      "summary": "Phase 1: every facade-gate exception row now names the card that retires it. 88 rows before and after, same members, files and order; only card and reason change. Before: #30020 63, #30147 25. After: #30020 17 (state-owning: engine bare-this 12, two constructors, protocol publishPackageDrafts bare this, two hand-series host slots), #30054 22 (every inferred-return-type row, 6 of them on sql-driver.ts, 3 of those with a codemod-limit half), #30055 6 (engine erasure pins), #30147 43. Head 6cc705e9; files_changed: scripts/facade-delegation-registry.json (+121/-121).",
      "tests": "No code change. node scripts/check-facade-delegation-only.mjs exit 0 (3 facades, 88 named exceptions); --self-test exit 0 (36 cases).",
      "gates": "dispatch-gates --commands at 6cc705e9: 20 derived, all run, all exit 0; --ran: 20 derived, 20 run, 0 NOT-MEASURED, 0 UNRUN. Extra: check-published-list-mirrors exit 0, check-facade-delegation-only --self-test exit 0, eslint on the registry exit 0. pnpm lint (repo-wide) left to CI per os-dev.md local-scope rule. CI check-runs: in_progress at report time.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "6 — issue_read x6 (reads only)",
      "api_writes": "2 relay writes: pr_create (run 41946870290, read back identical 5167 bytes, label skip-changeset, no assignee) and this comment; plus git push",
      "open_questions": [
        { "question": "#30054's body names only engine.ts and protocol.ts; 6 sql-driver.ts inferred-return-type rows now point at it. Widen #30054, or a sibling card?", "options": ["A widen #30054 by the 6 sql-driver rows", "B file a sql-driver sibling card and re-point"], "recommendation": "A, because the work is the same kind (spell the return type, .d.ts equal) and the order already routes these rows there" },
        { "question": "reconcileViewExpansions (protocol.ts) reads a private static WeakMap. Filed as a codemod limit (#30147), since a statics host can reach it with the map left on the class. Keep, or send back to #30020?", "options": ["A keep on #30147", "B back to #30020"], "recommendation": "A, because the move needs no state rehome" }
      ],
      "security_findings": "none",
      "out_of_scope_findings": []
    }
  5. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-support-ai · session_01WGufzgBDcBNVmSmo7VFHpj

    Phase 1 landed · domain:devx#1 · 2026-11-05T02:10Z

    Probe Reading
    PR #30194 MERGED 2026-11-05T02:06Z as f2a9007e via the merge queue (seat record on 57a3127d)
    origin/main:scripts/facade-delegation-registry.json 88 exception rows: #30020 17, #30054 16, #30055 6, #30147 49

    State: the card stays open and pm:dispatched stays. Every exception row now names the card that retires it (ruling 6624345766 item 3).

    Next: phase 2 retires the 27 sql-driver.ts rows by extending scripts/codemod-split-sql-driver.mjs. It is split into four PRs, each under 3,000 lines with the full #30139 proof set:

    • 2a: codemod only;
    • 2b: the durability-log follower and the compile-refusal seam test;
    • 2c: the generate-* and keyed-text-bounds pins;
    • 2d: applyFilterCondition.

    Phase 3, measuring the protocol.ts / engine.ts reasons, follows. Changing those files needs the seat's call.

  6. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-support-ai · session_01WGufzj4B2cbnRLVdgtLcDZ
    os-dev-report

    Phase 2a of 2a-2d (sql-driver codemod extension). 2b, 2c, 2d and phase 3 follow on this card.

    {
      "issue": 30147,
      "status": "done",
      "branch": "claude/project-thread-6gf6xi",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30249",
      "session": "session_01WGufzj4B2cbnRLVdgtLcDZ",
      "premise_still_valid": true,
      "summary": "Phase 2a: the sql-driver codemod learns six mechanisms (receiver-free knex calls, EXPLICIT_RETURN_TYPES, comments in parameters moved verbatim, MOVED_ACCESSORS, computed defaults written optional on the stub, MOVED_FIELD_DEFAULTS) and the tree is regenerated from 21510bba, never hand-edited. 15 sql-driver.ts registry rows deleted: 88 -> 73. By card before/after: #30020 17/17, #30054 16/16, #30055 6/6, #30147 49/34 (sql-driver.ts 27 -> 12). Five staying rows get their reason rewritten (applyFilterCondition, ensureShardTable, initObjects, get supports, static DIALECT_CONNECT_TIMEOUT). Head 34fc09d0, base f2a9007e. files_changed: 13 (codemod +484/-37, registry, check-tenant-chokepoint +1, sql-driver.ts and 8 modules, new sql-driver-schema-introspection.ts); 1,551 changed lines, under 3,000.",
      "tests": "codemod --self-test 98 cases in 6 batteries exit 0 (new battery 'codemod-limit retirements (#30147)' 31 cases, floor 5 -> 6). Base f2a9007e and head equal: driver-sql 238 files/12 skipped, 3,859 passed/216 skipped; driver-turso 97 files, 2,514/34 skipped; driver-sqlite-wasm 40/750; cli by-path 9 files/116; types 53, metadata 11, metadata-protocol 33, spec check-liveness 74; every leg os-verify-lock VERDICT command-exit 0.",
      "proofs": "--verify --base 21510bba exit 0: 171/171 bodies, 127/127 top-level identical, undo rebuilds base, 18334 -> 10717 lines. Determinism: two --write runs tree sha256 07b3a505...6454 both. Public .d.ts: dts-public.mjs exit 0 pass true, index.d.ts raw-equal (sha256 92e2cfb2... both sides); rotateShards and ensureRotation specifically read nowMs?: number at base and head, signature hashes c8bded77 / d0ab9226 equal. The four EXPLICIT_RETURN_TYPES strings were copied from the base build's dist/index.d.ts, not from hand reading. typecheck exit 0. check-tenant-chokepoint 24/21/3/4/0 at base (38 files) and head (39 files), --self-test exit 0. Facade gate exit 0 with 73 rows, --self-test 36 exit 0.",
      "gates": "dispatch-gates --commands at 34fc09d0: 67 derived, all run, all exit 0 (two first exited 3 on prerequisites: shallow clone lacked the plugin-teardown fixture commit, dual-build-cjs-loads lacked dists; fetched/built, then exit 0); --ran: 67 derived, 67 run, 0 NOT-MEASURED. Extra: check:lean-entry-closure 0, eslint on changed files 0. pnpm lint repo-wide left to CI.",
      "deviations": [
        "scripts/check-tenant-chokepoint.mjs: one DECLARED_WATCH_HINTS line for the new module (its self-test requires it); not the facade gate",
        "codemod SELF_TEST_BATTERY_FLOOR 5 -> 6 so the new battery cannot silently drop"
      ],
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "2 — pull_request_read x1, subscribe_pr_activity x1 (no GitHub MCP writes)",
      "api_writes": "2 relay writes: pr_create (run 41961803947, read back identical 8249 bytes, label skip-changeset, no assignee, draft) and this comment; plus git push (force-with-lease over my own WIP commit 84480890)",
      "open_questions": [
        { "question": "get supports (inferred object type with per-key docblocks) and static DIALECT_CONNECT_TIMEOUT (static initializer, TDZ) stay on #30147 with no 2b-2d slot. Fold into 2d, or leave for a later card?", "options": ["A fold into 2d", "B leave on #30147 after 2d and say so in the phase 3 report"], "recommendation": "B, because neither is a mechanism 2b-2d already builds, and both are small" }
      ],
      "security_findings": "none",
      "out_of_scope_findings": []
    }
  7. 5 remaining items

  8. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Nov 5, 2026
  9. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Pointer for whoever claims this card, relayed from devx seat 3 (#30518 PR 2, #30838). ⛔ Not a claim: the devx lane winds down on the maintainer's word, and this card stays in pm:queue.

  10. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  11. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Claim: PM loop round 8
    Session: session_016WV4cymvo9YoyLwKCXXBNw
    Account: os-elon-musk
    Branch: claude/project-thread-to5pdz (the card thread's platform-assigned branch; a measured platform exception to claude/issue-<n>-<slug>) · card thread session session_016WV4cxm997Tr9c3JFQTKGj
    Worktree: objectstack-issue-30147
    Domain: domain:devx
    Seat: domain:devx#1
    Ruling-ref: 6624345766 (item 3: each exception row names the card that will move it)
    File surface: phase 3 of the card, resuming from the phase 3 measurement (6653253380) and the release note (6657957218): the protocol.ts codemod (scripts/codemod-split-* / scripts/host-split.mjs for packages/metadata-protocol/src/protocol.ts), with a statics forwarder and a .call(host) facet receiver ported from the sql-driver codemod. Also the engine.ts field-call row (homeAmountServing), the getDiscovery row (a hand move that keeps the typeof this.searchAll probe on the instance, 6679557390), and scripts/facade-delegation-registry.json, plus the regenerated facade and facet modules. ⛔ No hand edit of generated output, except the one hand move the getDiscovery route names.
    Container & model: M, mode:thread, model: default tier, effort: high (p2)
    Clause-②: no. This is a structure-only move, with byte-identical bodies and an equal public .d.ts.
    Metadata-protocol: none
    Responsibility: every facade-gate exception row that cites this card is either retired by the codemod or recorded with its reason as an accepted exception.
    Thread-read: 6679557390
    Premise: holds. On main 4d56914aaa, 27 rows cite #30147: protocol.ts 21, engine.ts 4, sql-driver.ts 2. The gates named in the release note have all closed (#30054, #30055, #30716, and #30838 for #30518 PR 2).
    Serial constraints: draft PR #30747 edits packages/objectql/src/engine.ts, so the engine.ts row goes in a later PR that merges main after #30747, or is measured only if #30747 is still open. No open PR touches protocol.ts, the registry or the codemod scripts (checked 2026-11-06T12:41Z). Split into PRs under 3,000 changed lines each, as phase 2 did.

  12. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cxm997Tr9c3JFQTKGj
    os-dev-report

    Phase 3a (the protocol.ts receiver forms). Phase 3b (getDiscovery, a hand move) is prepared locally and opens once this lands; phase 3c (engine.ts) is measured below, report only, because draft #30747 still edits engine.ts.

    {
      "issue": 30147,
      "status": "done",
      "branch": "claude/project-thread-to5pdz",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30954",
      "session": "session_016WV4cxm997Tr9c3JFQTKGj",
      "premise_still_valid": true,
      "summary": "codemod-split-protocol --members gains the receiver forms ported from the sql-driver codemod (.call(host) receiver, statics forwarder ObjectStackProtocolImplementationStatics, plain form, static tables to a leaf module, predicate host entries) for the stay reasons E1 cannot carry, and moves 19 protocol.ts members with it (forms: e1 2, plain 5, statics 5, receiver 3, table 4; protocol.ts 13007 -> 12577 lines). Registry 46 -> 27 exceptions; #30147 rows 27 -> 8 (protocol.ts getDiscovery and triggerAutomation, engine.ts 4, sql-driver.ts 2); triggerAutomation's reason rewritten as an accepted exception. check-durability-degradation-log-level.mjs now follows the new stub shapes. Head ae519e3e99, base 616311c126 (main). files_changed: 15; line_budget: 2,459 changed lines (+1,720 / -739) of 3,000.",
      "tests": "codemod --self-test: 112 cases in 13 batteries (85 in 10 before; new: receiver forms 10, receiver proof 10, receiver refusals 7). durability --self-test: 86 read-seam cases (81 before); ablation: the 5 new cases against the base resolver fail the 3 positive ones, the 2 negative controls pass on both. metadata-protocol vitest: base 4d56914aaa 320 files / 22,487 tests pass; head 320 files / 22,489 pass (+2 = the two new producer rows; one file first read a spec dist from before the rebase and passes 18/18 rebuilt). Three source-reading pins follow the moved bodies (bracketed-opener floors, registerItem call-site file, view-expansion forwarder read). packages/rest at 7d49cfc21: 398 files / 7,752 tests pass; discovery-search-capability-agreement 4/4 at base and head.",
      "proofs": "--members --verify --base 616311c126 exit 0: 19 moved, host-split 2/2 E1, undo rebuilds base protocol.ts, protocol-host.ts and section modules byte for byte (9 import bindings pruned). Public .d.ts: index.d.ts / index.d.cts public surface equal, not byte-equal: 14 private members' docblocks moved with their bodies (docblock ownership); stripped of docblocks identical (sha256 5cf3216a10daa533 base, 9cab7eb90040d456 head). Facade gate exit 0 (27 exceptions). typecheck 0, build 0, check:platform-checklist 0 (one citation re-pointed), spec check:liveness 0, eslint clean. Durability checker output on the tree byte-identical to base.",
      "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack at ae519e3e99: 86 derived, all run, all exit 0; --ran: 86 derived, 86 run, 0 NOT-MEASURED, 0 UNRUN. First pass: check-plugin-teardown-shape --self-test, check:dual-build-cjs-loads and check:lean-entry-closure exit 3 (shallow clone / partial build), check:durability-log-level exit 1 (3 read seams via the moved rethrowUnlessMetadataStoreUnprovisioned: fixed in the checker's resolver, second commit); all four exit 0 after a full pnpm build. CI: in_progress at report time.",
      "deviations": [
        "The order's bar is an equal public .d.ts; it is equal in surface, not in bytes (14 private docblocks), as above.",
        "check-durability-degradation-log-level.mjs gained resolver support for the new stub shapes in this PR (no rule change, output byte-identical); without it the gate reds on this move.",
        "triggerAutomation is recorded as an accepted exception rather than moved: its section has no facet module, and the members pass never starts one.",
        "Commit trailers were reworded to the model-free pair before the first push (check:commit-card-trailers refused the first push); nothing was published with them."
      ],
      "files_changed": [".changeset/30147-protocol-receiver-forms.md", "docs/qa/platform-checklist/areas/platform-core.json", "packages/metadata-protocol/src/protocol-class-head.ts", "packages/metadata-protocol/src/protocol-discovery-and-bases.ts", "packages/metadata-protocol/src/protocol-host.ts", "packages/metadata-protocol/src/protocol-registry-hydration.ts", "packages/metadata-protocol/src/protocol-write-gates-tables.ts", "packages/metadata-protocol/src/protocol-write-gates.ts", "packages/metadata-protocol/src/protocol.ts", "packages/metadata-protocol/src/protocol.bracketed-refusal-opener-absence.test.ts", "packages/metadata-protocol/src/protocol.register-item-call-sites.test.ts", "packages/metadata-protocol/src/protocol.view-expansion-reconcile-call-sites.test.ts", "scripts/codemod-split-protocol.mjs", "scripts/check-durability-degradation-log-level.mjs", "scripts/facade-delegation-registry.json"],
      "server_lane_prs_on_protocol_ts": "none: no open pull request changes packages/metadata-protocol/src/protocol*.ts (all open pulls read 2026-11-06 ~13:20Z). engine.ts is changed by #30747 and #30940.",
      "phase_3b": "getDiscovery prepared locally: generated by the members pass on an intermediate where the probe reads a parameter, then hand-edited so the stub passes this.searchAll (read on the instance) and the facet keeps typeof searchAllOnInstance === 'function'. --verify against the intermediate exit 0; typecheck 0; facade gate 0 with the row removed (26); rest discovery-search-capability-agreement 4/4; metadata-protocol discovery tests 35/35. host-split.mjs's refusal is unchanged. About 1,000 changed lines; opens after this PR lands.",
      "phase_3c_measurement": "engine.ts ObjectQL: 61 instance fields, 1 called as a function: homeLocalizationResolver, called only (once, in homeAmountServing), never read as a value, written by setHomeLocalizationResolver through a host setter. homeAmountServing stays (field-call). projectHomeAmountsOntoPatch's body is already moved; only its stub's parameter default (= this.homeAmountServing(context)) computes. ScopedContext derive and [APP_AUTHORED_HOOK_API] write appAuthored on another instance (foreign-private). No engine.ts edit made: #30747 is open.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "read only: issue_read x2 (#30147 comments), list_pull_requests x1; no GitHub MCP writes",
      "api_writes": "2 relay writes: pr_create #30954 (request fw-20261106T141230Z-09e42a, run 42231863593, read back identical 10,590 bytes, assignee os-elon-musk, draft) and this comment; plus git push",
      "open_questions": [
        {
          "question": "Accepted exceptions vs ruling 6624345766 item 3 (every row names the card that moves it): triggerAutomation (here) and the two sql-driver rows (get supports, static DIALECT_CONNECT_TIMEOUT, recommended in 6657957218) would cite #30147 as accepted exceptions with no retiring card.",
          "options": ["A: the maintainer accepts terminal exceptions for these three rows; the last PR records the two sql-driver reasons and carries Fixes #30147", "B: re-point the three rows to a new card that owns the remaining exceptions; #30147 closes when 3b lands", "C: move them anyway (triggerAutomation needs a new facet module for one throw; supports needs a spelled public type, a .d.ts change; DIALECT_CONNECT_TIMEOUT reads three other statics during class evaluation)"],
          "recommendation": "A, because each move costs more than the row (a one-statement facet, a public declaration change, or a class-evaluation-order hazard) and the reasons are written on the rows"
        },
        {
          "question": "The four engine.ts rows while #30747 is open: wait, or hand them to another card?",
          "options": ["A: hold 3c until #30747 lands, then: projectHomeAmountsOntoPatch moves its default into the facet (stub passes serving through; private signature, no public .d.ts change); homeAmountServing moves by a receiver hand-move that reads homeLocalizationResolver off the instance (the only called-only field, so no general forwarding rule is needed); derive and [APP_AUTHORED_HOOK_API] become accepted exceptions", "B: re-point the four engine.ts rows to a new engine card now, so #30147 can close with 3b"],
          "recommendation": "B, because #30747 is a security-hardening draft with no landing date and the engine rows share no code with this card's protocol work; A's plan goes in the new card's body"
        }
      ],
      "security_findings": "none",
      "out_of_scope_findings": []
    }
  13. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Maintainer ruling · #30147 phase 3 remaining rows · 2026-11-06T14:55Z

    The maintainer chose option A on the decision card at 2026-11-06T14:55Z. The ruling has two parts.

    1. Three rows become accepted terminal exceptions: triggerAutomation, sql-driver get supports and static DIALECT_CONNECT_TIMEOUT. This is a recorded exception to ruling 6624345766 item 3 ("every row names the card that moves it"). Each of these rows keeps the reason already written on it, and names this ruling in place of an owning card.
    2. The four engine.ts rows go to a new card. They are serial behind fix(objectql)!: a non-system write may name, in a lookup or user field, only a record the caller can read #30747, which is still a draft and is editing engine.ts. A new engine follow-up card takes them. It is filed unclaimed for triage, and the four rows are re-pointed to it.

    This card closes when the 3b PR (getDiscovery, plus the registry edits above) lands after #30954.

  14. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Seat hand-off · #30147 · 2026-11-06T16:48Z

    devx seat 1 is signing off on the maintainer's order (2026-11-06T16:47Z: contract reviews still owed go to the next seat). The next devx seat picks this card up from here. pm:dispatched stays on the card.

  15. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Seat hand-off addendum · #30147 · 2026-11-06T16:50Z

    The complete phase 3b is prepared in project files. It replaces phase3b-getDiscovery.patch, which holds only the getDiscovery half.

    • Files:
      • /mnt/project-files/issue-30147/3b-commits/ holds two format-patch commits: first X (the codemod output), then the hand edits.
      • /mnt/project-files/issue-30147/phase3b-final.patch is the combined diff against bc2ee6c16.
    • Contents: the getDiscovery move, all of ruling 6687801899's registry edits, and the changeset. The three accepted rows keep card #30147 because the gate requires a #N, and their reasons are prefixed with ruling 6687801899. The four engine rows point at objectql engine.ts: retire the four facade-gate exception rows #30147 hands over #30975.
    • Measured by the dev on the combined diff:
      • --verify against X exits 0, and tsc 0.
      • The facade gate is 0 (26).
      • metadata-protocol: 320 files / 22,489 tests green. rest: 398 / 7,752. 70 cross-package readers green.
      • The negative control (handing the host closure) fails rest discovery-search 2/4, as it should.
    • Still owed: dispatch-gates on the fresh-main head.
    • To apply after feat(scripts): codemod-split-protocol --members moves the bodies E1 refuses, unedited, and retires nineteen protocol.ts facade rows #30954 lands, from fresh main:
      1. git am the two commits.
      2. Re-run --verify against X.
      3. Squash, then open the PR with Fixes #30147.
  16. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    To: domain:devx#1
    Request: progress · #30147 · idle since 2026-11-06T16:51Z (its serial partner PR #30954 merged 17:39Z)


    Generated by Claude Code

  17. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    To: domain:devx#1
    Request: progress · #30147 · idle since 2026-11-06T16:51Z (second knock; first 2026-11-06T20:04Z)


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain:devxDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3tech-debt

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions