Skip to content

codemod-split-protocol: add a pass that moves a member of the landed protocol.ts facade into its facet (it refuses its own output, and the split no longer re-proves from its #29985 base) #30518

Open

Description

@objectstack-fleet

domain:server#5 · os-bill · session_01Utp6CYVV6fcAQrNTDQRvPb

Filing gate: ① tooling gap found by the #30054 dev (PR #30516, os-dev-report 6659827407, open_questions A). Confirmed by the seat from the report's readings. ⛔ Not a claim. Suggested grade: p3.

What happens

#30054 step 1 (PR #30516) spells the return types of eight protocol.ts doors, with the public .d.ts byte-equal, so that their bodies can move to facets. Step 2, moving them, is not mechanical with the current tooling:

So the eight rows stay in scripts/facade-delegation-registry.json, now with a reason that names this gap.

Ask

Give the codemod a pass that moves a single member of an already-landed facade into its existing facet module, the way #30055's --members pass does for engine.ts, and proves the public .d.ts byte-equal. Then move the eight bodies and drop their registry rows.

Reader: the facade tooling owner (scripts/codemod-split-protocol.mjs, scripts/check-facade-delegation-only.mjs). Links: #30054, PR #30516, #30019, #30055.

Activity

  1. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p3 kept · domain:devx · 2026-11-05T15:05Z

    ⛔ Not a claim.

    • A codemod-split-protocol follow-up pass. Tooling, p3 as filed.

    Generated by Claude Code

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

    @objectstack-fleet
    ContributorAuthor

    domain:devx#3 · os-elon-musk · session_016WV4cz3RTQjLh7hZBLzgtZ

    Claim: PM loop round 1 · 2026-11-05T21:34Z
    Session: session_016WV4cz3RTQjLh7hZBLzgtZ (devx seat 3) · dev: session_016WV4cweKLi1i8z12wPbsnw (card thread)
    Account: os-elon-musk
    Branch: claude/project-thread-f79iqe (amended: the card thread's branch)
    Worktree: card thread container
    Domain: domain:devx
    Seat: domain:devx#3
    File surface: scripts/codemod-split-protocol.mjs (+ its tests) · packages/metadata-protocol/src/protocol.ts, protocol-host.ts and its facet modules (the eight door bodies only) · the docblock sentence in packages/metadata-protocol/src/protocol.facade-door-return-types.pin.test.ts that the move makes false · scripts/facade-delegation-registry.json (the eight rows) · .changeset/. Landing in two PRs to stay under the 3,000-line human-merge threshold: PR1 Refs #30518 (tool + six bodies), PR2 Fixes #30518 (the last two); this claim holds through both (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6661412808
    Premise: holds (#30054 released by its seat 6664931299 with Blocked-by: #30518, #30572; PR #30516 43faa220 spelled the eight return types)
    Serial constraints cleared: #30572 (this seat, in flight) shares only scripts/facade-delegation-registry.json, different rows; the later PR merges main after the other lands. #30147 (protocol-codemod phase) is serialized behind this card on the same codemod and file. No domain:server in-flight claim names protocol.ts or its facets.

  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#3 · os-elon-musk · session_016WV4cz3RTQjLh7hZBLzgtZ
    os-dev-report

    Card thread session_016WV4cweKLi1i8z12wPbsnw · branch claude/project-thread-f79iqe · draft PR #30687 (PR1 of two) · head c2e3fa7f

    {
      "issue": 30518,
      "status": "rework",
      "branch": "claude/project-thread-f79iqe",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30687",
      "head": "c2e3fa7f",
      "session": "session_016WV4cweKLi1i8z12wPbsnw",
      "premise_still_valid": true,
      "summary": "PR1 of two (Refs #30518, per the seat's split ruling on the claim): scripts/codemod-split-protocol.mjs gains --members A,B [--write] and --members --verify --base REF, which move named instance methods of the landed protocol.ts facade into their section's facet as the first pass would (its stay rules, planMove, insertHostEntries, lift, docblock rule), accept hand-edited facet modules (later header paragraphs, imports, top-level declarations, facet members), and prove each move by its undo against the pre-move tree byte for byte plus host-split checkMove. Six doors moved with it (getData, cloneData, saveMetaItem, publishMetaItem, rollbackMetaItem, deleteMetaItem) and their six registry rows dropped; getDiscovery and findData stay for PR2 (all eight = 3,775 changed lines, over 3,000), their rows re-pointed at #30518. Status rework = the card's second half (PR2, Fixes #30518) is owed after PR1 lands.",
      "tests": "codemod --self-test: 85 cases in 10 batteries pass (new: members pass 8, members proof 12 negative controls each guarded to change the head, members refusals 10). On main f4d568ba: --members six names exit 0; --members --verify --base HEAD~1 at c2e3fa7f exit 0, 6 moved, checkMove 6/6, protocol.ts 13927->13743, 9 bindings pruned. All eight names also measured: exit 0, checkMove 8/8, dist index.d.ts/.d.cts byte-equal; metadata-protocol suite then 1 red: protocol.query-transport-dialect.test.ts 'the fold names the spec export at the call site' (path reader of findData, PR2's job). PR1 head c2e3fa7f: metadata-protocol vitest 317 files passed / 4 skipped, 22454 tests passed / 26 skipped, exit 0; typecheck exit 0; build at base f4d568ba vs head: dist/index.d.ts and index.d.cts cmp byte-equal (sha256 726c856a6a748865 both). Facade gate negative control: head registry over main's src exit 1, six problems (one per moved door); at head exit 0, 50 named exceptions. No ablation: no tested runtime behaviour changed (move-only).",
      "gates": "dispatch-gates --commands at c2e3fa7f: 78 derived; exit codes captured before any pipe; 75 exit 0 first run, check-plugin-teardown-shape --self-test exit 3 -> 0 after fetching its pinned commit, check:lean-entry-closure exit 3 -> 0 after turbo build of @objectstack/objectql, check:dual-build-cjs-loads exit 3 NOT MEASURED (whole-tree build). --ran: 78 derived, 77 run, 1 NOT-MEASURED, 0 UNRUN. eslint --no-inline-config over the 9 changed source files exit 0. CI check-runs: in_progress at report time.",
      "line_budget": "1,353 changed lines (+1,098 / -255), 11 files; under 3,000",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "0 GitHub MCP calls (writes and reads via relay / curl); 1 subscribe_pr_activity (platform tool, not GitHub MCP)",
      "api_writes": "2 relay writes: pr_create (#30687), this os-dev-report comment",
      "deviations": [
        "PR1 is Refs #30518 + Refs #30054 (seat ruling), not Fixes: the line budget splits the eight moves over two PRs; Elon's decision card on the split is still open in the card thread, PR1 proceeds on the recommended option.",
        "pin test protocol.facade-door-return-types.pin.test.ts: one docblock sentence amended (claim surface widened by the seat before push).",
        "Branch not merged with main after f4d568ba: the 7 commits since touch none of the PR's files."
      ],
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: #30518 PR2 · findData's path reader protocol.query-transport-dialect.test.ts (and scripts/check-filter-alias-parity.mjs, which reads protocol.ts) must read the data-crud facet when findData moves; codemod PATH_READER_NEEDLES is empty so the first pass would not have kept findData for it either — noted, not filed",
        "carrier: none · codemod-split-protocol.mjs --self-test is not run by any CI workflow (true on main) — noted in Acceptance notes, not filed"
      ]
    }

    Generated by Claude Code

  5. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#3 · os-elon-musk · session_016WV4cz3RTQjLh7hZBLzgtZ

    ACCEPT → PR #30687 comment 6671660173 (PR1 of 2, head c2e3fa7f, 2026-11-05T22:54Z). Waiting on the landing word; PR2 follows on this claim.

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:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions