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
refactor: move the private docblocks of the hand-series stubs into their hand modules — about 1,900 lines off engine.ts (86 stubs) and about 4,000 off protocol.ts (157 stubs) #30053
Filing gate: the maintainer asked for this on PR #30012 at 2026-11-04T10:03Z (「我觉得文件还是太长,还有进一步的拆分优化空间吗」「可以后续立卡处理」「合并之后再继续」). The facades are merged: engine.ts as 237f513 (#30012) and protocol.ts as 48914fd (#29998). Estimates come from the #29986 / #29985 dev reports. ⛔ Not a claim. Triage sets the grade and the lane (devx or server).
Business reason: the codemod facades moved private docblocks with their bodies, but the stubs of the earlier hand series (#25522 for engine.ts, #25467 for protocol.ts) keep their docblocks on the class: 86 stubs in engine.ts (up to about 1,900 lines) and 157 in protocol.ts (4,017 measured lines). Moving them into the hand-written modules beside their bodies takes protocol.ts to about 9.8k lines.
Reader who acts: packages/objectql / packages/metadata-protocol owners.
What to do
Move each private stub's docblock to the function it delegates to, and keep public docblocks on the facade, so the .d.ts stays EQUAL. Pin the move with the same docblock battery the codemod uses: a one-character edit or a dropped block goes red.
One PR per file, each in its own short freeze window.
Dedupe: hand-series docblock, 25522, 25467. New.
Claim: PM loop round 2
Session: session_01Utp6CbPxYq1wQmUNWvMZkC (seat) · dev = project card thread session_01Utp6CYHBS7P5hkUQrNHkHZ
Account: os-bill
Branch: claude/project-thread-7wiz8y
Worktree: objectstack-issue-30053
Domain: domain:server
Seat: domain:server#3
File surface: packages/objectql/src/engine.ts and the hand-series (#25522) modules its 86 private stubs delegate to, the docblock battery the codemod uses (pin), one changeset; protocol.ts half is NOT in this claim (a later PR after #30062 item 3 and p0 #30255 land); over 3000 changed lines ⇒ stop and report (freeze window) — stop on breach; explain in the report.
Container & model: M, mode:thread, model: default judgment tier (dispatch-gates --tier: no path-derived mandate; floor sonnet · default opus · ceiling fable), effort: high (M)
Clause-②: no — public docblocks stay on the facade; the dev proves public .d.ts EQUAL
Metadata-protocol: none
Responsibility: n/a — not a defect card (maintainer-asked refactor, PR #30012)
Thread-read: 6629943873
Premise: holds
Serial constraints cleared: #30052 merged 343ddb21; #30280 (one constructor line in engine.ts) in the merge queue — merge main before the PR; #30054 #30055 #30020 (same facade files) held serial behind this card; seat 5 #30062 and seat 2 #30255 touch protocol.ts only.
Claim amendment · 2026-11-05T05:18Z · landing split into two serial PRs, each under the human-merge threshold.
Measured by the dev (ts-morph on 5db77f73): 86 hand-series stubs, 64 private stubs with a docblock, 1,774 docblock lines across 17 hand modules; one PR would be about 4,100 changed lines with the codemod's third pass.
Chosen: two serial PRs, no freeze window. PR1 = the codemod's third pass (--hand-docs, with a module-subset argument) + 8 modules, Refs #30053; PR2 = the other 9 modules, Fixes #30053, after PR1 merges. Each PR proves public .d.ts EQUAL, the docblock battery and one ablation on its own.
Unchanged: Clause-②: no, Metadata-protocol: none, branch claude/project-thread-7wiz8y; protocol.ts half out of this claim.
Delivered: all 64 hand-series private docblocks now sit on the hand-module functions that hold the bodies; engine.ts 13,550 → 11,752 lines; public and protected docblocks stay on the facade; codemod-split-engine.mjs --hand-docs proves each move byte for byte.
Activity
objectstack-fleet commentedon Nov 4, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p2 ·
domain:server·pm:queue· 2026-11-04T11:55Z⛔ Not a claim.
engine.ts, about 4,000 offprotocol.ts). p2.as anysites in engine.ts's six erasure-pinned methods so the codemod can move them (about 550 lines) #30055 and refactor: move shared state out of the protocol.ts and engine.ts facades into state-owning facets, so the hot bodies left on the class can become delegations (ruling 6624345766) #30020. One PR per file at a time. Any PR over 3,000 lines takes a freeze window with the maintainer's approval.Generated by Claude Code
objectstack-fleet commentedon Nov 5, 2026
domain:server#3 · os-bill · session_01Utp6CbPxYq1wQmUNWvMZkC
Claim: PM loop round 2
Session:
session_01Utp6CbPxYq1wQmUNWvMZkC(seat) · dev = project card threadsession_01Utp6CYHBS7P5hkUQrNHkHZAccount:
os-billBranch:
claude/project-thread-7wiz8yWorktree:
objectstack-issue-30053Domain:
domain:serverSeat:
domain:server#3File surface:
packages/objectql/src/engine.tsand the hand-series (#25522) modules its 86 private stubs delegate to, the docblock battery the codemod uses (pin), one changeset;protocol.tshalf is NOT in this claim (a later PR after #30062 item 3 and p0 #30255 land); over 3000 changed lines ⇒ stop and report (freeze window) — stop on breach; explain in the report.Container & model:
M,mode:thread,model: default judgment tier (dispatch-gates --tier: no path-derived mandate; floor sonnet · default opus · ceiling fable),effort: high (M)Clause-②: no — public docblocks stay on the facade; the dev proves public
.d.tsEQUALMetadata-protocol: none
Responsibility: n/a — not a defect card (maintainer-asked refactor, PR #30012)
Thread-read: 6629943873
Premise: holds
Serial constraints cleared:
#30052 merged 343ddb21; #30280 (one constructor line in engine.ts) in the merge queue — merge main before the PR; #30054 #30055 #30020 (same facade files) held serial behind this card; seat 5 #30062 and seat 2 #30255 touch protocol.ts only.objectstack-fleet commentedon Nov 5, 2026
domain:server#3 · os-bill · session_01Utp6CbPxYq1wQmUNWvMZkC
Claim amendment · 2026-11-05T05:18Z · landing split into two serial PRs, each under the human-merge threshold.
5db77f73): 86 hand-series stubs, 64 private stubs with a docblock, 1,774 docblock lines across 17 hand modules; one PR would be about 4,100 changed lines with the codemod's third pass.--hand-docs, with a module-subset argument) + 8 modules,Refs #30053; PR2 = the other 9 modules,Fixes #30053, after PR1 merges. Each PR proves public.d.tsEQUAL, the docblock battery and one ablation on its own.Clause-②: no,Metadata-protocol: none, branchclaude/project-thread-7wiz8y;protocol.tshalf out of this claim.objectstack-fleet commentedon Nov 5, 2026
domain:server#3 · os-bill · session_01Utp6CbPxYq1wQmUNWvMZkC
Slice 1 landed · 2026-11-05T07:53Z
f672e0dc59fc5188473df4fb8d6e999e6826c8c1(merged_at 2026-11-05T07:52Z): 36 hand-series private docblocks out ofengine.tsinto 8 hand modules,engine.ts13,550 → 12,618 lines.Spec Liveness Check(not a required context) was red, becausepackages/spec/liveness/query.json→searchFieldscitespackages/objectql/src/engine.ts#expandSearchOnAstand the onlysearchFieldsmention inengine.tsmoved out with a docblock. A one-file repoint toengine-find.ts#expandSearchOnAstopens next from this card's thread (Refs refactor: move the private docblocks of the hand-series stubs into their hand modules — about 1,900 lines off engine.ts (86 stubs) and about 4,000 off protocol.ts (157 stubs) #30053), ahead of slice 2.pm:dispatched: slice 2 (10 modules,Fixes #30053) follows the repoint, withcheck:livenessadded to its gate list.objectstack-fleet commentedon Nov 5, 2026
domain:server#3 · os-bill · session_01Utp6CbPxYq1wQmUNWvMZkC
Landed · 2026-11-05T11:17Z
0c666c363f405297089e8ad9b059c83eb2d972de(merged_at 2026-11-05T11:16Z); slice 1 was PR refactor(objectql): move 36 hand-series private docblocks out of engine.ts with the codemod's third pass (slice 1 of 2) #30341 (f672e0dc), and its liveness regression was fixed by PR fix(spec): repoint the query.searchFields liveness row at engine-find.ts#expandSearchOnAst #30368 (main red: spec check:liveness — query/searchFields cites engine.ts, which no longer mentions searchFields after #30341 #30367).engine.ts13,550 → 11,752 lines; public and protected docblocks stay on the facade;codemod-split-engine.mjs --hand-docsproves each move byte for byte.engine.tshalf of the card is done.pm:dispatchedremoved. Theprotocol.tshalf stays parked as the claim recorded; refactor: give the inferred-return-type public methods on the engine.ts and protocol.ts facades explicit return types (.d.ts unchanged), so the codemod can move their bodies #30054, refactor: sweep the #4918as anysites in engine.ts's six erasure-pinned methods so the codemod can move them (about 550 lines) #30055 and refactor: move shared state out of the protocol.ts and engine.ts facades into state-owning facets, so the hot bodies left on the class can become delegations (ruling 6624345766) #30020 (serial behind this card) are free to dispatch.