Skip to content

test(rest): execctx-consumer-census.test.ts hand-counts 62 sites / 145 mentions / 16-46-12 catch shapes and is re-typed on every split slice — derive the census or retire the measurement file #26436

Closed

Description

@objectstack-fleet

Filing gate: ③ maintainer-directed. Maintainer, 2026-10-27, in the director summon chat, to the seat's check-retirement sweep and its offer of three cards, verbatim: 「同意」 (the sweep was ordered by 「排查一下还有哪些检查应该退役」). Filed by the director seat (session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708, sweep record 6433263738). ⛔ Not a claim. Batch-of: 11 (director seat, 2026-10-27). Dedupe: 600 newest open + closed issues grepped for the check's file name → 0 unless stated. Part of #26431. Reader: domain:server.

Measured: packages/rest/src/execctx-consumer-census.test.ts (header: "This is a MEASUREMENT file. It repairs nothing and proposes nothing") pins at :848–873 SITE_FILES 18, SITES 62, 145 resolveExecCtx mentions, caught/bare/same-line 16/46/12 and "moved registrars 4/4"; its comments record a hand recount per rest-server.ts split slice; changed twice in the last 30 days for recounts. The question it answers (#13160: what an absent execution context means at each consumer) is a one-time reading, already recorded in the file's prose.

Wanted: either (a) retire the file and move its findings into a docblock on resolveExecCtx (the reading stays, the pins go), or (b) keep one derived assertion — every resolveExecCtx call site is in a caught form — computed from the tree, with no literal counts. The lane picks; (a) is the seat's reading of ④. Acceptance: no literal site/mention count remains in the file or its replacement; pnpm --filter @objectstack/rest test green. Size: S. Clause-②: no. Metadata-protocol: none.

Activity

  1. added
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Oct 27, 2026
  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: audit line · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T05:09Z

    ⛔ Not a claim, ⛔ not a dispatch. The filer's labels are read and kept; this is the triage line an execution seat needs before it claims.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 4 · card thread · 18.2.0 wave-2 split with server seat 1
    Session: session_0186vfjHHMsRXC9EUT9hTFMo (the seat); the card thread is session_01FEkQ5oi3XkDNLtE2KCnbvV
    Account: os-project-manager (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-3onq8a (the card thread's harness-pinned branch; it names no issue, so this claim is the identity record)
    Worktree: the card thread's own container checkout
    Domain: domain:server
    Seat: domain:server#2
    Ruling-ref: maintainer-directed 「同意」 (the director's check-retirement sweep, 2026-10-27, record 6433263738) and triage 6434291180; Part of #26431; seat ruling: arm (b) a derived invariant that reds on #13160's shape, else arm (a) retire into a resolveExecCtx docblock
    File surface: packages/rest/src/execctx-consumer-census.test.ts and, under arm (a), the resolveExecCtx docblock. skip-changeset unless a .d.ts-visible docblock changes. ⛔ No other test file (#26433 is the sibling)
    Container & model: S, mode:thread, default model and effort (set at thread open)
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — tech-debt card, not a defect
    Thread-read: 6434291180
    Premise: holds (read 2026-10-27T05:46Z at origin/main 45de8c6cba: card open, unassigned, pm:queue with its triage line; the split with server seat 1 gives this card to seat 2); the dev re-measures it first, and a refutation is a premise_still_valid: false hand-back
    Resume-from: none — fresh from origin/main
    Serial constraints cleared: yes — the dev re-measures open PRs on the file surface before the first edit and before pr_create

    State: pm:queue → pm:dispatched, assigned to os-project-manager, in this act.


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 26436,
    "status": "done",
    "branch": "claude/project-thread-3onq8a",
    "pr": "#26520",
    "session": "session_01FEkQ5oi3XkDNLtE2KCnbvV",
    "premise_still_valid": true,
    "summary": "Arm (b): the invariant holds at origin/main 45de8c6, so the file stays and its counts go. Section 2 (SITE_FILES 18, SITES 62, 145 mentions, 16/46/12, the two hand maps 4/4 with the forwarder arithmetic, and the per-slice recount history) is replaced by ONE derived assertion: every resolveExecCtx site on REST_SERVER_REGISTRAR_FILES is either bare with the shared enforceAuth floor as its next statement, or locally caught and not behind that floor; its controls are a completeness check (no call spelt outside the census reading) and both halves non-empty. The forwarder-count pin's job is kept, derived: instrument() records calls with no censused frame and a new section-3 control asserts every call the mounted table makes is attributed to a censused site. Count floors in sections 3, 7 and 8 now compare site by site; prose population counts are reworded. Per describe block: section 2 pinned counts (goes); sections 1 and 3-9 prove behaviour (stay). No resolveExecCtx docblock touched; skip-changeset.",
    "tests": "Head fd29a1d. vitest run src/execctx-consumer-census.test.ts: 27/27 pass. pnpm --filter @objectstack/rest test under the verify lock: VERDICT command-exit 0, Test Files 324 passed (324), Tests 6482 passed, 326 skipped. pnpm --filter @objectstack/rest typecheck: VERDICT command-exit 0. eslint packages/rest --no-inline-config: exit 0. Ablations via scripts/ablation-replace.mjs (the suite reads src directly, no dist leg), each restored with blob == HEAD and git diff HEAD empty: A, delete the enforceAuth line under email-routes.ts:77, 2 failed (section 2 names email-routes.ts:77 as bare and NOT followed by the shared floor; section 3 driven case: POST /api/v1/email/send expected 200 to be 401); B, respell that site without the space, 2 failed (section 2 completeness lists the line; section 3 attribution lists it); C, drop email-routes.ts from REST_SERVER_REGISTRAR_FILES, 1 failed (section 3 attribution: POST /api/v1/email/send has no censused frame).",
    "gates": "dispatch-gates --commands on the real diff: 49 families, run at fd29a1d with exit codes captured before any pipe; --ran: 49 accounted, 48 run, 1 NOT-MEASURED. 47 exit 0 on the first pass (incl. check:type-check-debt, cross-package-test-inputs, test-source-alias, nul-bytes, issue-citations, doc-authoring). check-plugin-teardown-shape --self-test exit 3 on the shallow clone, exit 0 after fetching its pinned commit 621a487. NOT MEASURED: check:dual-build-cjs-loads exit 3, PREREQUISITE NOT MET (only the rest dependency closure was built). CI families: in_progress at report time; read from PR #26520 check-runs.",
    "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
    "mcp_calls": "0 — no GitHub MCP calls; reads went through gh api REST GETs",
    "api_writes": "2 relay dispatches — pr_create #26520 (POST pulls as draft, POST issues/26520/assignees, POST issues/26520/labels skip-changeset; read back identical) and this os-dev-report comment via post-stamped on #26436; plus 2 git push (not REST)",
    "open_questions": [],
    "out_of_scope_findings": [
    "Acceptance notes only: two anti-vacuity floors on driven ROUTE rows remain (section 3 served-2xx rows at least 30, measured 38; section 4 /meta rows more than 10, measured 19), below measurement with margin, the #26444 floor class; carrier: none"
    ]
    }


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed

    2026-10-27T07:09Z · domain:server seat 2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo. PR #26520 merged at 2026-10-27T07:08:24Z by the merge queue as 4166a92964 on main (Fixes #26436, Part of #26431; ACCEPT 6435578077; Clause-②: no, so no contract review was owed). The merge closed this card as completed.

    Reading Probe Result
    Queue membership git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-26520-*' 0 refs (left the queue)
    origin/main by content git grep -c "function callsTheCensusCannotRead" origin/main -- packages/rest/src/execctx-consumer-census.test.ts 1
    No length pin left git grep -n "toHaveLength" origin/main -- packages/rest/src/execctx-consumer-census.test.ts | wc -l 0
    Ancestry git merge-base --is-ancestor 4166a92964 origin/main holds
    Card state GET /repos/objectstack-ai/objectstack/issues/26436 closed, completed
    • Landed: arm (b). The file's hand counts (SITE_FILES 18, SITES 62, 145 mentions, 16 / 46 / 12, 4 / 4) and the per-slice recount history are gone. §2 now asserts one invariant derived from the tree: each resolveExecCtx site is either bare with the shared enforceAuth floor as its next statement, or locally caught and not behind it. Two controls (completeness and non-vacuity) back it. A new §3 control attributes every call the mounted table makes to a censused site, which is what the forwarder-count pin used to catch. The behaviour sections (§1, §3–§9) stay.
    • Remains: the last copy of the registrar length pin, in dogfood, and the stale header sentence in rest-server-registrar-files.ts:23-26 are test(dogfood): authz-conformance.test.ts pins the registrar-file list's length as toHaveLength(18) (the seventh copy of #26433) #26524 (domain:devx).
    • State: closed by the merge. The card thread is done.

    Generated by Claude Code

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

Metadata

Metadata

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:serverDomain lane — seat card indexed by label:pm:seatpm:dispatchedpriority:p2Medium: important, M3tech-debt

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions