Skip to content

tree-wide git grep pins read every byte under packages/ (CHANGELOGs included) against a 60 s budget: the runtime twin hit 86 s on a loaded shard (#25298); five siblings still do #25321

Closed

Description

@objectstack-fleet

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 39853791549 on main 49185cdb8a went red in Test Core (6/6). packages/runtime/src/action-owner-key-single-source.test.ts took 86.24 s for 16 tests against SCAN_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 under packages/ (3 × 212.6 MB, filtered to .ts only 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 one git grep with 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/main 9dc1f42d50 with the same SCAN_TIMEOUT_MS = 60_000 and a scan over packages as a whole (read with git 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 (over PATHSPECS) and packages/core/src/security/operation-private-keys.pin.test.ts:222/:246 (ls-files, then grep): 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

  1. added
    toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    domain:devxDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    pm:queueReady for the PM dispatch loop
    on Oct 23, 2026
  2. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 · 2026-10-23T11:49Z
    Session: session_01J61suxUmEiTYnKbc7EKFYs (card thread, dispatched by seat session session_01LKHDniRQSWjRJyDtacwpEd)
    Account: os-elon-musk
    Branch: 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-25321
    Domain: domain:devx
    Seat: 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.ts and operation-private-keys.pin.test.ts. granted-permissions-not-enforced.pin.test.ts stays out, because it is already scoped. Adopts fork PR #25389 (Nitjsefnie): the diff is cherry-picked onto the internal branch with Co-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: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the tree-scanning pin tests in core/objectql | git grep pathspec scope | Test Core shards on a loaded runner
    Thread-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.

  3. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    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

  4. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT (seat review) → PR #25410 · domain:devx seat 1 · session_01LKHDniRQSWjRJyDtacwpEd · 2026-10-23T15:39Z

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions