Repository navigation
Description
domain:devx#1 · os-support-ai · session_01WGufzgBDcBNVmSmo7VFHpj
Filing gate: ruling 6583399215 on #29465 (letter A, maintainer 「同意」 2026-11-02T17:11Z), whose exit stroke 6583664223 names one card per remaining file, filed into its lane by the domain:devx seat once the pilot #29520 merged. It merged as PR #29598 (d46b1ff23f, 2026-11-03T16:26Z). The maintainer asked for this programme first while the fleet is quiet: 「现在车队不忙,大文件分拆的问题是否可以优先」 (2026-11-03T22:37Z). ⛔ Not a claim. No grade: triage sets it and routes it.
Ruling-ref: 6583399215
Governs: the pilot rulings 6591753301 (A: value imports from the host file allowed, out-of-class top-level helpers move whole into leaf modules, a gate that scans the file by path widens in the same PR) and 6597555122 (A: a test or gate that reads the file by path gains the new modules in its reading list in the same PR; a .d.ts order-only difference is judged by ruling 6441032442 B's second normalisation), which the pilot carried to this card; the declaration-file bar of ruling 6348891160 on #25222; #24586 ruling A (6270097840); the landing plan 6582376616 on #29465.
Reader who acts: a domain:server seat (the file is packages/objectql), dispatching one dev.
What to build
- A deterministic codemod for
packages/objectql/src/engine.ts(23,245 lines onmainc92b8872; classesObjectQLfrom line 5384,ObjectRepositoryfrom 22550,ScopedContextfrom 22749; 25engine-*.tsmodules exist from the hand series), modelled on the pilot'sscripts/codemod-split-sql-driver.mjs: whole sections' method bodies move to section modules, the class keeps one-line stubs, shared members are reached through the host pattern, and the out-of-class top-level helpers (about 5,380 lines ahead ofObjectQL) move whole into leaf modules that never import back fromengine.ts. - The script's own proofs, as the pilot ran them: byte-identity, the declaration bar of ruling 6348891160 judged by 6441032442's second normalisation, determinism, and every census, gate or test that reads
engine.tsby path widened to the new modules in the same PR. The hand series stopped on exactly this: cut 21's report 6556726794 namesfederated-injected-column-readers.test.ts, which resolves a via in the same file as the calling site. - Type-check and the
objectqlsuite plus its direct consumers at the base counts.
Order with #25522
#25522 (hand series, pm:blocked with the series spent) is released into this card (ruling 6583399215). The claiming seat closes #25522 not_planned pointing here, in the same stroke. Confidence gap named by #29465: whether the host pattern covers ObjectQL's private members without changing the declaration files. The pilot proved it for SqlDriver.
How it lands (landing plan 6582376616)
- Phase 0, no pause: build and prove the codemod and its generated split in a draft PR. Nothing else on the file stops.
- Phase 1, a window the maintainer orders (「车队什么时候空闲是有我安排的」): seats land or park their open PRs on the file, the dev re-runs the script on the latest
main(regenerated, ⛔ never rebased), CI runs once, the maintainer approves, and the PR enters the merge queue. The diff is over 3,000 lines, so it takes contract review, the final four-piece set and the maintainer's approval. - ⛔ The generated split is never hand-edited to pass. A proof that fails is reported as a fork on [Decision] Large source files: replace the hand-cut split with a script-generated split per file, so the remaining monoliths split in days, not months #29465 for a design ruling.
Done when
The draft PR holds the script and the generated split with every proof passing, and it has landed in the maintainer's window; or the fork is reported on #29465.
Re-measure: git show origin/main:packages/objectql/src/engine.ts | wc -l; git log --since='7 days ago' --oneline origin/main -- packages/objectql/src/engine.ts | wc -l.
Dedupe (open and closed): codemod, split in:title, 拆分, large file, 29465. Hits: #29465, #29520, #24586, #25467, #25522, #25521. None is a per-file codemod card for this file. New.
Activity
objectstack-fleet commentedon Nov 3, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p2 ·
domain:server·pm:queue·pm:blocking· 2026-11-03T23:49Z⛔ Not a claim.
objectqlengine.tsfile of the ruled script-generated split ([Decision] Large source files: replace the hand-cut split with a script-generated split per file, so the remaining monoliths split in days, not months #29465 A, 6583399215), under the pilot rulings 6591753301 and 6597555122. A ruled refactor, so p2, as [Decision] Large source files: replace the hand-cut split with a script-generated split per file, so the remaining monoliths split in days, not months #29465. [Decision] Large source files: replace the hand-cut split with a script-generated split per file, so the remaining monoliths split in days, not months #29465 isBlocked-by:this card, hencepm:blocking.src/engine.ts(23,903 lines, +7,501 in 30 days) along itsObjectQLseams, one move-only slice per PR #25522 for the same file. One landing per file: while it lands,engine.tstakes no new dispatches. A PR over 3000 lines is Tier H.Generated by Claude Code
objectstack-fleet commentedon Nov 4, 2026
domain:server#6 · os-support-ai · session_01WGufzibcN9oHa8kDbTTnL5
Claim: PM loop round 6
Session:
session_01WGufzhfKpcY1cmybduYBcp(dev: os-dev card thread; seatsession_01WGufzibcN9oHa8kDbTTnL5)Account:
os-support-aiBranch:
claude/project-thread-xwdm5r(harness-pinned thread branch; platform exception toclaude/issue-<n>-<slug>)Worktree: the dev thread's own container checkout
Domain:
domain:serverSeat:
domain:server#6File surface:
scripts/codemod-split-engine.mjs(new, modelled on the pilot'sscripts/codemod-split-sql-driver.mjs), the generated split ofpackages/objectql/src/engine.tsinto section and leaf modules, every by-path reader ofengine.tswidened (stop on breach; explain in the report)Container & model:
L,mode:thread,model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
the platform's own second-largest source file (objectql engine.ts, 23k lines) | the #25522 hand series, released into this card by ruling 6583399215 | every contributor and agent editing objectqlThread-read: 6618471428
Premise: holds (programme #29465 ruling A; pilot PR #29598 merged
d46b1ff23f; triage 6618471428)Serial constraints cleared: none for Phase 0 (ruling: nothing else on the file stops; Phase 1 waits for the maintainer's window)
Stamp: 2026-11-04T02:22Z
/mnt/project-files/server-orders/29986.md(project files). Phase 0 only: a draft PR with the codemod and its proofs. The seat neither readies nor lands it. The line bar of 6591753301 item 3 is under a pending ruling (fork 6620288066 on [Decision] Large source files: replace the hand-cut split with a script-generated split per file, so the remaining monoliths split in days, not months #29465, from sister card Codemod split: generate the rest of the metadata-protocol protocol.ts split with a deterministic script, verified byte-identical #29985), and a miss here is reported the same way. [maintainer] refactor(objectql): splitsrc/engine.ts(23,903 lines, +7,501 in 30 days) along itsObjectQLseams, one move-only slice per PR #25522 is held by another account; this seat does not close it and leaves that to its holder or the maintainer.objectstack-fleet commentedon Nov 4, 2026
domain:server#6 · os-support-ai · session_01WGufzhfKpcY1cmybduYBcp
os-dev-report
Stamp: 2026-11-04T05:16Z
{ "issue": 29986, "status": "needs_decision", "branch": "claude/project-thread-xwdm5r", "pr": "https://github.com/objectstack-ai/objectstack/pull/30012", "session": "session_01WGufzhfKpcY1cmybduYBcp", "premise_still_valid": true, "summary": "Phase 0 draft #30012 (head 90b69953, base 0b99c2b1): scripts/codemod-split-engine.mjs generates the engine.ts split, unedited: 37/278 ObjectQL methods into 13 section modules (host pattern) and 146/146 top-level declarations into the leaf engine-top-level.ts (lever b). Every proof holds (byte-identity, determinism, .d.ts second normalisation, by-path readers widened). The line bar is MISSED: engine.ts 23,245 -> 16,933 against < 13,000, the same question as #29985's fork 6620288066; reported as a fork with no hand edit and no new lever. The first generation moved two grandfathered query-options erasure sites; PATH_READER_PINS keeps seedAutonumber and inspectDanglingReferences on the class and the split was regenerated from base.", "tests": "objectql test local base 547 files/10,829 passed = head 547/10,829; test:repo 5 = 5. objectql typecheck (tsc + check:test-typecheck) exit 0 at head, base tsc exit 0. core test:repo 94 passed (1 red before the two CALLERS rows). types callers 11, rest door parity 66, cli lowered-body 4 passed. --verify --base 0b99c2b1 exit 0: 37/37 bodies + 146/146 declarations identical, 82 pruned bindings re-derived. Two plans identical, output tree sha256 e6a99d51f5a6f3bac605faf2c61e7ad918431a8bc264086ff59fabdcc24238ff. .d.ts (dtsnorm, base1=base2, head1=head2): 6/6 files normalised EQUAL, surface EQUAL, statements 16/16, 168/168, 190/190, control caught. Ablations at head, each red: 'purge' in OperationContext reds both weld tests; renamed isFederatedUnprovisionedInjectedColumn call reds stale-row + asks; via widening reverted reds organizationOwnedRowCounts; 'ablatedCollection' in METADATA_ARRAY_KEYS reds check-stack-collection-maps; the core pin without its rows names both files.", "gates": "pnpm build exit 0; pnpm lint exit 0; check-nul-bytes exit 0; dispatch-gates --commands at 90b69953: 75 derived, 75 run, all exit 0; --ran 0 NOT-MEASURED, 0 UNRUN. CI check-runs on #30012 not yet read (just opened).", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "mcp_calls": "0 — MCP GitHub calls (reads via gh api; subscribe_pr_activity is the session's PR watch, not a GitHub write)", "api_writes": "2 — relay pr_create #30012 (draft, labels skip-changeset, no assignee, no reviewer); this os-dev-report comment via post-stamped", "open_questions": [ { "question": "engine.ts ends at 16,933 lines against the < 13,000 bar. Which lever, if any?", "options": [ "A: the ruling on #29985's fork 6620288066 applies here too (docblock ownership: ~13,730 by arithmetic, still over; plus private-static-through-host: ~12,130)", "B: class decomposition", "C: accept the measured count for this file" ], "recommendation": "A, decided once on #29465 for both files, because the remaining lines are the same kind (docblocks and signatures the .d.ts prints, hand-series stubs)." } ], "security_findings": "none", "out_of_scope_findings": [] }Generated by Claude Code