You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Stale exported-any-returns ledger entry for ObjectStackClient.packages.update reds the client consumer gate on main (left behind by #12062) #12193
Found during #12150 program CI babysit (PR #12185, check "Type Check · consumer gates", job 97797649712); filed and directly dispatched by PM session session_01KWRU3s15AJz7PGW7a7wdCh — the red blocks every PR whose derived gate family includes the client consumer gates, including both #12150 leg PRs (#12185, #12190).
What is red, verbatim from the gate
❌ 1 stale exported-any-returns.json entr(y/ies) — the gap is closed, delete the entry:
• ObjectStackClient.packages.update — no longer resolves to `any` (reason on file: #11925 …)
Why it is main's red, not the PRs'
The base commit itself is the fix that closed the gap: 22c42c9b "fix(client): bind the three verifiable methods of the unannotated return-type erasure population (#11925) (#12062)" bound packages.update's return type, but packages/client/exported-any-returns.json on origin/main still carries the ObjectStackClient.packages.update entry (read back 2026-08-25). The ledger is shrink-only and judged EXACTLY — a fixed site with a lingering entry is red by design. #12062's own CI presumably did not derive the client consumer-gate family, so the red only fires on PRs that do.
Fix (one line)
Delete exactly the "ObjectStackClient.packages.update" entry from packages/client/exported-any-returns.json. ⛔ Nothing else: no other entries, no $comment edits, no annotation changes — the other #11925/#12104 entries are still-open debt and must stay.
Acceptance
pnpm --filter @objectstack/client run check:exported-any-returns green on the fixed tree (self-test + real run, verdict lines quoted).
Diff is exactly one JSON entry removed. Changeset: none/skip per repo convention for repo-internal ledger files (verify with the changeset gate; the ledger is not a published file).
{
"issue": 12193,
"status": "done",
"branch": "claude/issue-12193-stale-any-returns-entry",
"pr": "https://github.com/objectstack-ai/objectstack/pull/12207",
"premise_still_valid": true,
"summary": "Deleted the single stale \"ObjectStackClient.packages.update\" entry from packages/client/exported-any-returns.json. Base commit 22c42c9b (#12062) bound packages.update's return type, closing its any-return erasure under #11925, but the shrink-only, exactly-judged ledger still carried the entry, reddening the client consumer gate for every PR whose derived gate family includes it. No other entry and no $comment text was touched.",
"tests": "Built the dependency closure (pnpm --filter '@objectstack/client^...' build) then packages/client itself (pnpm --filter @objectstack/client build), both via scripts/pm/os-verify-lock.sh (second client-build attempt after a queue-timeout retry, VERDICT command-exit 0). Reproduced red on the unfixed tree: pnpm --filter @objectstack/client run check:exported-any-returns -> self-test '\u2705 self-test: flags awaited-`any` returns through nested namespaces, and NOT caller-supplied generics, `any`-containing types, or named data properties. Ledger is exact in both directions.'; real-run '\u274c 1 stale exported-any-returns.json entr(y/ies) - the gap is closed, delete the entry: \u2022 ObjectStackClient.packages.update - no longer resolves to `any` (reason on file: #11925 ...)', exit 1. After deleting the entry: self-test unchanged green; real-run '\u2705 no NEW exported callable of @objectstack/client resolves to `any`: 317 callables reached (51 caller-supplied generics, not counted as erasure), 64 ledgered site(s) still open.', exit 0. Also green (exit 0): pnpm check:nul-bytes (self-test+real); pnpm check:published-files (self-test+real - confirms exported-any-returns.json sits outside packages/client's files whitelist ['dist','README.md','CHANGELOG.md'], so it is not a published file, backing the no-changeset call); and the full dispatch-gates.mjs-derived local family for this exact diff: pnpm check:slot-lookup, pnpm check:test-source-alias (self-test+real), pnpm check:type-source-resolution (self-test+real), node scripts/check-plugin-teardown-shape.mjs, node scripts/docs-audit/check-affected-docs.mjs, node scripts/docs-audit/check-drift-comment.mjs. git diff --stat confirms '1 file changed, 1 deletion(-)'; jq confirms entries count 65->64 and JSON validity; $comment byte-identical. Final commit 63f8d7fa.",
"open_questions": [],
"out_of_scope_findings": []
}
Activity
os-support-ai commentedon Aug 25, 2026
Claim: PM direct-dispatch (unblocks the #12150 program's leg PRs)
Session:
session_01KWRU3s15AJz7PGW7a7wdChBranch:
claude/issue-12193-stale-any-returns-entryFile surface:
packages/client/exported-any-returns.json— exactly one entry removed, nothing elseContainer & model:
mode:subagent,model: sonnet(mechanical ledger deletion, floor tier)Clause-②: no — repo-internal ledger file, no runtime or contract change
Serial constraints: none — no open PR touches this file (searched)
Generated by Claude Code
fix(client): delete stale exported-any-returns entry for packages.update
os-support-ai commentedon Aug 25, 2026
os-dev-report
{ "issue": 12193, "status": "done", "branch": "claude/issue-12193-stale-any-returns-entry", "pr": "https://github.com/objectstack-ai/objectstack/pull/12207", "premise_still_valid": true, "summary": "Deleted the single stale \"ObjectStackClient.packages.update\" entry from packages/client/exported-any-returns.json. Base commit 22c42c9b (#12062) bound packages.update's return type, closing its any-return erasure under #11925, but the shrink-only, exactly-judged ledger still carried the entry, reddening the client consumer gate for every PR whose derived gate family includes it. No other entry and no $comment text was touched.", "tests": "Built the dependency closure (pnpm --filter '@objectstack/client^...' build) then packages/client itself (pnpm --filter @objectstack/client build), both via scripts/pm/os-verify-lock.sh (second client-build attempt after a queue-timeout retry, VERDICT command-exit 0). Reproduced red on the unfixed tree: pnpm --filter @objectstack/client run check:exported-any-returns -> self-test '\u2705 self-test: flags awaited-`any` returns through nested namespaces, and NOT caller-supplied generics, `any`-containing types, or named data properties. Ledger is exact in both directions.'; real-run '\u274c 1 stale exported-any-returns.json entr(y/ies) - the gap is closed, delete the entry: \u2022 ObjectStackClient.packages.update - no longer resolves to `any` (reason on file: #11925 ...)', exit 1. After deleting the entry: self-test unchanged green; real-run '\u2705 no NEW exported callable of @objectstack/client resolves to `any`: 317 callables reached (51 caller-supplied generics, not counted as erasure), 64 ledgered site(s) still open.', exit 0. Also green (exit 0): pnpm check:nul-bytes (self-test+real); pnpm check:published-files (self-test+real - confirms exported-any-returns.json sits outside packages/client's files whitelist ['dist','README.md','CHANGELOG.md'], so it is not a published file, backing the no-changeset call); and the full dispatch-gates.mjs-derived local family for this exact diff: pnpm check:slot-lookup, pnpm check:test-source-alias (self-test+real), pnpm check:type-source-resolution (self-test+real), node scripts/check-plugin-teardown-shape.mjs, node scripts/docs-audit/check-affected-docs.mjs, node scripts/docs-audit/check-drift-comment.mjs. git diff --stat confirms '1 file changed, 1 deletion(-)'; jq confirms entries count 65->64 and JSON validity; $comment byte-identical. Final commit 63f8d7fa.", "open_questions": [], "out_of_scope_findings": [] }Generated by Claude Code
Generated by Claude Code
fix(client): delete stale exported-any-returns entry for packages.upd…