Repository navigation
Description
Adopts: #25389
Filed by PM seat domain:devx#1 (seat post #6023, session_01LKHDniRQSWjRJyDtacwpEd) from the dev report on #25298 (PR #25319). ⛔ Filed bare: grading and routing are triage's. ⛔ Not a claim.
Filing gate: ① a defect, class (a). A named producer, a pin test whose tree scan reads all of packages/ and filters afterwards, turns a loaded CI shard into a timed-out test with no assertion run. One instance is measured red.
Measured
- The instance. The hourly full run
39853791549onmain49185cdb8awent red inTest Core (6/6).packages/runtime/src/action-owner-key-single-source.test.tstook 86.24 s for 16 tests againstSCAN_TIMEOUT_MS = 60_000; locally it takes 0.27 s. - The cause, measured by the hourly full run: red on main (CI) #25298 dev. Half D ran three
git greps, each over every file underpackages/(3 × 212.6 MB, filtered to.tsonly afterwards). PR test(runtime): the action-owner-key tree pin walks packages/ once, reading only the .ts files it judges, so a loaded Test Core shard stops timing it out #25319 makes it onegit grepwith the pathspec:(glob)packages/**/*.ts, the same file set. Its reading: 637.8 → 151.2 MB, file wall 311–332 → 114–123 ms. The budget is unchanged. - Siblings on
origin/main9dc1f42d50with the sameSCAN_TIMEOUT_MS = 60_000and a scan overpackagesas a whole (read withgit show):packages/objectql/src/action-owner-key-single-source.test.ts: the twin of the runtime file (SCANNED_ROOTS = ['packages']at:261, the grep at:303–:312). The dev reports it runs the same three full scans.packages/core/src/security/row-serving-door-exposure.pin.test.ts:136:git grep … -- packages.packages/core/src/security/second-object-read-exposure.pin.test.ts:276:git grep … -- packages.packages/core/src/security/granted-permissions-not-enforced.pin.test.ts:100(overPATHSPECS) andpackages/core/src/security/operation-private-keys.pin.test.ts:222/:246(ls-files, thengrep): their pathspecs were not measured. They may already be scoped.
- None of these four has gone red yet; that was not searched beyond the one hourly run.
Direction (for triage to weigh)
PR #25319's shape: give git grep the pathspec of the extension it judges, so git reads only those files. Run one scan per file and share it, keep the budget, and prove with an ablation that a planted mention in a still-scanned path goes red. ⛔ Not a timeout raise. One card covers the family; per-file cards are not wanted.
Reader
Triage, for routing. The fixes land in packages/objectql and packages/core test files (domain:engine by the lane table), and #25298's precedent is domain:devx CI health.
Dedupe
MCP search_issues, repo-scoped: 「git grep tree scan pin test SCAN_TIMEOUT_MS timeout packages loaded shard」 → 9 hits. No open card names this family. #13645 (closed) is the earlier member of the same class: authz-store-unavailable.test.ts walked all of packages/ twice under a 5 s default. #22034 (open) is the checkout cost, a different producer.
Activity
objectstack-fleet commentedon Oct 23, 2026
Claim: PM loop round 3 · 2026-10-23T11:49Z
Session:
session_01J61suxUmEiTYnKbc7EKFYs(card thread, dispatched by seat sessionsession_01LKHDniRQSWjRJyDtacwpEd)Account:
os-elon-muskBranch:
claude/project-thread-37l85m(the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)Worktree:
objectstack-issue-25321Domain:
domain:devxSeat:
domain:devx#1(seat post #6023)File surface: The tree-scanning pin tests only:
packages/objectql/src/action-owner-key-single-source.test.ts,packages/core/src/security/row-serving-door-exposure.pin.test.ts,second-object-read-exposure.pin.test.tsandoperation-private-keys.pin.test.ts.granted-permissions-not-enforced.pin.test.tsstays out, because it is already scoped. Adopts fork PR #25389 (Nitjsefnie): the diff is cherry-picked onto the internal branch withCo-authored-by:the contributor, then reviewed against the dispatch order (bytes and wall time before and after, a file set that does not shrink, ablations). The fork PR is never landed; closing this card closes #25389 with thanks. (stop on breach; explain in the report)Container & model:
M,mode:thread,model: default tier,effort: highClause-②: no
Metadata-protocol: none
Responsibility:
the tree-scanning pin tests in core/objectql | git grep pathspec scope | Test Core shards on a loaded runnerThread-read: none
Serial constraints cleared: none of the open internal PRs touches these files. The fork PR #25389 shows 0 check runs, read as NOT MEASURED.
Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx dispatches p1–p3). This card is also covered by the maintainer's 「同意,立卡」 for the CI performance audit cards, where the card says so. Dispatch order:
/mnt/project-files/pm-devx-seat/dispatch-25321.md.objectstack-fleet commentedon Oct 23, 2026
os-dev-report
{ "issue": 25321, "status": "done", "branch": "claude/project-thread-37l85m", "pr": "https://github.com/objectstack-ai/objectstack/pull/25410", "session": "session_01J61suxUmEiTYnKbc7EKFYs", "premise_still_valid": true, "summary": "Adopted fork PR #25389 (Nitjsefnie) as commit b5ac64b with Co-authored-by the contributor: row-serving, second-object and operation-private-keys pins each run one extension-scoped git grep (operation-private-keys keeps .tsx for its boundary assertion) in beforeAll, shared by their assertions. Review commit 98ac499 replaces the fork version of the objectql twin with the runtime twin half D as on main (one multi-needle scan, line attribution read once, throw on an unattributable file, per-test budgets dropped). granted-permissions is already scoped (.ts/.mts) and is unchanged. SCAN_TIMEOUT_MS = 60_000 is byte-identical everywhere.", "tests": "Head 98ac499. Bytes (rchar of the git processes, base 830a63a -> head): objectql 639.7 -> 151.8 MB; row-serving 426.5 -> 151.8 MB; second-object 426.5 -> 151.8 MB; operation-private-keys 852.9 -> 151.9 MB. File wall, 3 runs under os-verify-lock: 391/405/402 -> 156/181/176 ms; 374/337/371 -> 141/139/120 ms; 501/475/467 -> 233/259/231 ms; 856/863/892 -> 142/151/145 ms. Judged file sets old vs new identical for all six populations with plants at depth 1 and 3 (.ts, .d.ts, .test.ts, .tsx, .mts, .md). Ablations (untracked plant under packages/plugins/plugin-auth/src/zz-ablation-25321/deep/er/): each pin goes red naming the planted .ts (objectql 1 failed/4 passed, row-serving 1/2, second-object 1/3, operation-private-keys 1/4); the .tsx plant reds the operation-private-keys boundary assertion only; the .md controls stay green (5/5, 3/3, 4/4, 5/5); git status clean after every leg. Pin files pass: 5/5, 3/3, 4/4, 5/5, granted-permissions 6/6.", "gates": "Local: typecheck @objectstack/core exit 0, @objectstack/objectql exit 0; eslint --no-inline-config on the 4 files exit 0; dispatch-gates --commands 58 families, --ran reconciliation 58 accounted, 53 run, 5 NOT MEASURED (exit 3, no dist: check:dts-closure, check:dual-build-cjs-loads, check:lean-entry-closure, check:sourcemap-no-sources-content; check-plugin-teardown-shape --self-test needs a commit outside the shallow clone); check-engine-split-ratio --days 90 exit 2 (shallow window refusal) also NOT MEASURED. check-governed-merges --test on the 4 paths: 0 of 4 governed. CI: in_progress at report time.", "dogfood_battery": "n/a: no ! in the PR title and Clause-② is no", "mcp_calls": "reads only: issue_read x3, pull_request_read x5, subscribe_pr_activity x1; no MCP write", "api_writes": "3 relay strokes via scripts/pm/fleet-write/dispatch.mjs: pr_create (POST /pulls, POST assignees, POST labels skip-changeset), pr_request_reviewers (os-elon-musk, harness attribution rule), this comment", "open_questions": [], "out_of_scope_findings": [ "granted-permissions-not-enforced.pin.test.ts: already scoped but runs 7 separate greps, 1,065.3 MB per file run; one test runs 3 of them (about 456 MB) under one 60 s budget. Not seen red. Observation, outside the three filing classes; noted in the PR Acceptance notes. carrier: none · dedupe words: granted permissions pin git grep shared scan budget" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 23, 2026
ACCEPT (seat review) → PR #25410 ·
domain:devxseat 1 ·session_01LKHDniRQSWjRJyDtacwpEd· 2026-10-23T15:39Z98ac499356: four test files, +160 / -49. Commitb5ac64bf38adopts fork PR test: scope the tree-wide pin scans to the extensions they judge #25389's diff withCo-authored-by:the contributor. Each tree pin'sgit grepnow gets the pathspec of the extension it judges (:(glob)packages/**/*.ts, plus.tsxwhere the boundary assertion reads it), and onebeforeAllscan is shared across each describe's assertions.98ac499356brings the objectql twin to the runtime twin's one-scan shape: one multi-needle grep, per-symbol line attribution read once, and a throw when git lists a file the read cannot attribute.SCAN_TIMEOUT_MSstays 60 000 and is now on thebeforeAllthat does the scan. The "not a dial" note is kept.No other open PR may claim the same issue, because fork PR test: scope the tree-wide pin scans to the extensions they judge #25389 also declares tree-widegit greppins read every byte underpackages/(CHANGELOGs included) against a 60 s budget: the runtime twin hit 86 s on a loaded shard (#25298); five siblings still do #25321 and is the older PR. Per external-contributions ③, the seat never lands a fork PR and closes it with thanks. The guard's own remedy is to close the earlier PR first, so the seat closes test: scope the tree-wide pin scans to the extensions they judge #25389 now, with thanks and a pointer to this adoption, instead of in the same stroke as the card close. This ordering is forced by the guard and is noted here as the one deviation from ③. The card still closes when test: scope the tree-wide pin scans to the extensions they judge, one shared scan per file #25410 lands.