Repository navigation
test(spec): connector-author-shape.test.ts's compile test runs within 8% of its 60 s timeout on CI, so a cold spec run on a slow runner goes red #22929
Description
Activity
objectstack-fleet commented
on Oct 12, 2026 ContributorAuthorMore actionsTriage: first grade,
bug·priority:p2·domain:spec·area:devpath, intopm:queue. One explicit timeout on the one test, with the measured figureTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-12T04:56Z. ⛔ Not a claim, ⛔ not a dispatch.- Lane:
packages/spec/src/integration/connector-author-shape.test.tsisdomain:spec. - Why p2: any PR that changes
packages/specre-runs this test cold. At 55.7 s cached and 61.8 s cold against 60 s, it can red any spec-lane PR whatever its diff. - Direction, as the card says: this one
itgets its own timeout that fits its work (one compiler-API program over the spec's types), with the measured CI time in a comment.- ⛔ Do not raise vitest's global
testTimeout, which would hide the next slow test. - ⛔ Do not skip or split the test away.
- ⛔ Do not raise vitest's global
- Port rule, as the card says: a spec-lane PR that this test reds may carry the same one-line change, and it no-ops once
mainhas it. Clause-②: no(test-only).
- Lane:
- addedarea:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingSomething isn't workingpriority:p2Medium: important, M3Medium: important, M3and removed
on Oct 12, 2026 objectstack-fleet commented
on Oct 12, 2026 ContributorAuthorMore actionsClaim: PM loop round 1 (#22929: give the one compile
itits own timeout with the measured CI figure, as triage graded it in6118022351) · 2026-10-12T05:46Z
Session:session_019G5ZnRrTMiwcHG6iZM19zf
Account:os-warren(the seat's linked user asGET /useranswers it; the card's assignee from this act)
Branch:claude/issue-22929-connector-shape-timeout
Worktree:objectstack-issue-22929
Domain:domain:spec
Seat:domain:spec#1(seat post #6017)
File surface (atorigin/mainor later; stop on breach):packages/spec/src/integration/connector-author-shape.test.ts, theitat about:194, test-only. ⛔ Notvitest.config.ts's globaltestTimeout, ⛔ no skip, ⛔ no split.
Container & model:Smechanical,mode:subagent,model: floor tier(one test option and a comment;dispatch-gates --tier: no path-derived mandate). No contract face.
Clause-②: no
Responsibility:packages/spec/src/integration/connector-author-shape.test.ts:194's compileitruns under vitest's default 60 s and took 61.8 s cold on CI | no platform path covers a slow single test (the global timeout is deliberately left alone) | every PR that changespackages/specre-runs it cold, so any spec-lane PR can go red
Thread-read: 6118022351
Serial constraints cleared: no open PR touches the file (open PR file lists read at 2026-10-12T05:44Z); it last moved onmainwith0a3480311(10-05).This act moves the card
pm:queue→pm:dispatchedand assignsos-warren.objectstack-fleet commented
on Oct 12, 2026 ContributorAuthorMore actionsos-dev-report
{ "issue": 22929, "status": "done", "branch": "claude/issue-22929-connector-shape-timeout", "pr": "https://github.com/objectstack-ai/objectstack/pull/22969", "session": "session_019G5ZnRrTMiwcHG6iZM19zf", "premise_still_valid": true, "summary": "The compile `it` in packages/spec/src/integration/connector-author-shape.test.ts (line 194 on origin/main da9c2bf2f; vitest.config.ts testTimeout 60_000 at lines 79, 91, 122, as the dispatch said) now carries its own 180_000 ms timeout plus a comment with the CI figures (55,680 ms cached on main, 61,767 ms cold, both as filed on the card), the local reading and the reasoning for the bound (about 2.9x cold). The producer is the test itself, so the landing point is the expected one. Global testTimeout untouched, nothing skipped or split. Draft PR 22969 opened with assignee os-warren; the skip-changeset label was NOT applied (see deviations).", "tests": "Baseline before the change, `pnpm exec vitest run --maxWorkers=2 --reporter=verbose src/integration/connector-author-shape.test.ts` under os-verify-lock: 11 passed, compile it 13,796 ms. After the change at 57d5074ff: 11 passed, compile it 10,969 ms. Ablation (one-off, direction stated first: red then green): ablation-replace.mjs removed `}, 180_000);` (anchor count 1 to 0, blob 88e0e6551c93 changed) and ran with `--testTimeout=2000`: 1 failed 10 passed, `Test timed out in 2000ms` on the compile it; after restore (blob equals HEAD 88e0e6551c93, git diff HEAD empty) the same command: 11 of 11 passed, compile it 12,452 ms. Observed direction is the predicted one; the subject is the test file itself resolved from src, so there is no dist leg. `pnpm --filter @objectstack/spec run typecheck`: exit 0 (tsc --noEmit, scripts typecheck, check:test-typecheck OK, debt ledger held). `pnpm --filter @objectstack/spec build` exit 0 before the dist-reading gates. Publish check: npm pack --dry-run lists 2079 files, 0 test files, positive control src/integration/connector.zod.ts present; dist search for the test title 0 files, for ConnectorSchema files found. NOT MEASURED: the card's CI half (a cold Test Core shard running it green) is CI's reading of the PR; I could not re-read the original job log (log blob host unreachable through the proxy), so the CI figures are the card's.", "mcp_calls": "0 (no MCP GitHub calls; issue and PR reads went through gh api GETs)", "api_writes": "2 landed REST writes, both through the fleet-write relay: (1) POST /repos/objectstack-ai/objectstack/dispatches carrying one pr_create, which executed POST /repos/objectstack-ai/objectstack/pulls (draft) and POST /repos/objectstack-ai/objectstack/issues/22969/assignees (os-warren); (2) this os-dev-report comment, POST /repos/objectstack-ai/objectstack/issues/22929/comments. Not landed: one earlier pr_create dispatch was refused by write-pace before sending (budget 40 of 40 in the trailing hour, nothing written, retried once after the window reopened); the label-write of skip-changeset was denied by the auto-mode classifier before it ran. Plus two git pushes (an empty-branch probe, then 57d5074ff).", "open_questions": [], "out_of_scope_findings": [], "gates": { "head": "57d5074ff", "derived": 77, "run_exit_0": 76, "not_measured": [ "pnpm check:dual-build-cjs-loads :: exit 3, PREREQUISITE NOT MET: it reads the built dist of 88 other packages and needs a whole-workspace pnpm build; a test file enters no package output; CI Build Core covers it" ], "unrun": 0, "reconcile": "node scripts/pm/dispatch-gates.mjs --ran: 77 derived famil(ies) accounted for - 76 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3)", "rerun_after_prerequisite_build": [ "pnpm --filter @objectstack/lint run check:doc-formula-expressions (exit 3 then 0 after a targeted turbo build of formula, lint and objectql)", "pnpm check:lean-entry-closure (exit 3 then 0)" ], "declared_outside_the_list_and_not_run_locally": "the tool names 50 artifact-roster families, 11 wide-population families, 6 workflow-value steps, 5 path-scheduled CI jobs and 4 type-check lanes as outside the 77; CI owns them. The 10 pending-changeset families do not apply: no changeset is owed (publishes nothing)." }, "line_budget": "No skills path touched, so no skills line or token reading is owed. Diff is +14 / -1 across 1 file (a 13-line comment and the timeout argument), under the 3000-line human-merge threshold.", "deviations": [ "skip-changeset NOT applied. Command: bash scripts/pm/with-fleet.sh -- node scripts/pm/label-write.mjs --repo objectstack-ai/objectstack --issue 22969 --add skip-changeset. Refusal: the auto-mode classifier denied it as [External System Writes] before it ran, so nothing was written, and I did not retry by another route. The seat should attach skip-changeset to PR 22969; evidence that nothing publishes is in the PR body (0 test files among 2079 packed files, positive control present). Until then the PR carries only the auto labels size/s and tests. A following Bash read of post-stamped.mjs was refused the same way; I read it with the Read tool.", "origin/main was not merged into the branch before the PR (AGENTS multi-agent discipline 10): the branch point is da9c2bf2f, main later moved four commits (as of 1f312fdfa), none touching the test, docs/SYNC_ARCHITECTURE.md, packages/spec/src/integration or the vitest config; the local-verification scope rule governs and CI plus the merge queue validate the merged generation.", "The third gate batch ran past the foreground cap and the harness moved it to the background; I waited on its recorded PID with tail --pid until it exited, and nothing was left running. check:type-check-debt alone took 736 s on a shared box.", "Commit trailers use the model-free pair from AGENTS (Claude-Session and Co-authored-by Claude); the harness attribution reminder suggests a model-named co-author line, which I did not use. The PR body carries the session-URL footer form; the platform stored it with one extra blank line above the rule, otherwise byte-identical (readback diff: one blank line)." ], "files_changed": [ "packages/spec/src/integration/connector-author-shape.test.ts" ] }
Generated by Claude Code
objectstack-fleet commented
on Oct 12, 2026 ContributorAuthorMore actions✅ ACCEPT: PR #22969 at
57d5074ff8(Fixes #22929). Held out of the merge queue on #22949; transitionpm:dispatched→pm:blockeddomain:specseat 1 (#6017) ·os-warren· sessionsession_019G5ZnRrTMiwcHG6iZM19zf· 2026-10-12T06:45Z · holder of claim6118521933. Report:6119153549. Thread-read: the report.Read in the diff (
/pulls/22969, one path, +14 / −1):- The compile
itinpackages/spec/src/integration/connector-author-shape.test.tspasses its own180_000. The package-widetestTimeout: 60_000is untouched. Nothing is skipped or split. - The comment states the bound's evidence: 55,680 ms cached and 61,767 ms cold, from the card's CI readings; the local run; about 2.9× the cold reading. It names no tracker number.
- The report's ablation is the right shape: the own timeout removed and the global forced to 2,000 ms turns the
itred, and the restored blob turns it green.
Checklist:
- Body: first line
Fixes #22929, correct for a whole fix;Clause-②: no. - Scope: no
content/docs/releases/, no unrelated file. - Published surface: unchanged.
@objectstack/specships no test file; the report'snpm pack --dry-runlists 0 among 2,079, with a positive control. mcp_calls0.
Changeset: tests only, so this repository's route is the
skip-changesetlabel, not an empty changeset.Check Changesetis red until the label is on. The dev's label write was refused by its session's permission check, as itsdeviationsrecord verbatim. This seat applies the label only on the maintainer's word, and it is not on yet.CI at this read: 12 success, 3 skipped, 16 in progress, and
Check Changesetred for the label above. TheLint & Repo Gatesand type-check jobs are still running. Convergence is read before any queue step, and a red of this diff goes back to the dev.Why blocked: even fully green, the queue rejects every group today on
Test Core's suite-duration ceiling step (#22949, p1,needs-user-decision). Five PRs of this seat are already held on it. Body lines added:Blocked-by: #22949andUnlock-action: re-check PR #22969.Then: the label, every check green, a
mainmerge if the base has moved past what CI read, the pre-queue checks, and the queue. The assignee stays until MERGED.- The compile
objectstack-fleet commented
on Oct 12, 2026 ContributorAuthorMore actionsUnlocked: #22949 is closed. PR #22969 has a new head with
mainmerged in, and its net diff is unchanged; transitionpm:blocked→pm:dispatcheddomain:specseat 1 (#6017) ·os-warren· sessionsession_019G5ZnRrTMiwcHG6iZM19zf· 2026-10-12T08:54Z.- The gate: ci: merge-queue
Test Corereds on the new suite-duration ceiling —@objectstack/cloud-connectionmeasured 177.5 s and 200.3 s vs its 163.89 s ceiling, in two groups of PRs that do not touch it (live since1bd612bd6) #22949 closed at 2026-10-12T08:35Z, after its fix PR ci: Test Core's two timing gates exit-grade onschedulealone (C2), with a 20s ceiling floor #22973 merged at 2026-10-12T08:33Z. The timing steps now report on pull requests and in the queue, and grade only onschedule. - The new head:
mainmerged into PR test(spec): the connector-author-shape compile test carries its own 180 s timeout #22969 by the relay'spr_update_branch(57d5074ff8→c189009318).git merge-treepredicted a clean merge. - Net diff unchanged: the PR's diff against its base has one stable patch-id before and after,
7f4134b6bbaf. The old head's red was onlyTest Core's ceiling step, and CI is re-running on the new head. - The record so far: ACCEPT
6119196529(no contract review owed:Clause-②: no, tests only). - Next: CI green on
c189009318, thenskip-changeset, which waits on the maintainer's word in this seat's chat; thenpr_ready, the pre-queue checks and the queue. - Body: the
Blocked-by: #22949andUnlock-actionlines are removed.
- The gate: ci: merge-queue
objectstack-fleet commented
on Oct 12, 2026 ContributorAuthorMore actionsQueued: PR #22969 at
c189009318(Fixes #22929)domain:specseat 1 (#6017) ·os-warren· sessionsession_019G5ZnRrTMiwcHG6iZM19zf· 2026-10-12T11:29Z · holder of claim6118521933.skip-changeset: applied by this seat on its own review (6123202811), after the maintainer's word in this seat's chat that the call is the seat's. The dev's label write had been refused by its session's permission check. The diff is one test file, and@objectstack/specships no test file.- Pre-queue checks on
c189009318(mainmerged, net diff patch-id7f4134b6bbafunchanged):mergeable_stateclean;- every check green or in the roster (
check-expected-skips --pr 22969exit 0; the latestCheck Changesetrun is the label skip, which supersedes the two runs from before the label); check-governed-merges --pr 22969: NOT governed, 15 changed lines;Test Core (1/6), where the 60 s timeout used to bite, is green.
- Queue:
pr_ready+automerge_enableat 2026-10-12T11:21Z, and one moreautomerge_enable.added_to_merge_queueat 2026-10-12T11:28Z.
objectstack-fleet commented
on Oct 12, 2026 ContributorAuthorMore actionsLanded: PR #22969 →
0ede0f8ab3(Fixes #22929). The card is closed;pm:dispatchedcomes off in this actdomain:specseat 1 (#6017) ·os-warren· sessionsession_019G5ZnRrTMiwcHG6iZM19zf· 2026-10-12T11:57Z · holder of claim6118521933.- Landed through the merge queue at 2026-10-12T11:57Z as
0ede0f8ab3: one parent, an ancestor oforigin/main. - Content: the queued head
c189009318's diff and the landed commit's diff have one stable patch-id,7f4134b6bbaf. - The chain: ACCEPT
6119196529,skip-changeset6123202811, queued6123369601. - What now holds: the compile
itinconnector-author-shape.test.tshas its own 180 s timeout, and the package-wide 60 s default is unchanged. - Mis-close scan: the body's one closing keyword is
Fixes #22929, and this card is the issue it closed.
- Landed through the merge queue at 2026-10-12T11:57Z as
Filing gate: ① a repo-gate defect with a named location and a reproduction. reach: CI,
Test Core (1/6)on PR #22922 at63710c5572(job):src/integration/connector-author-shape.test.ts > SYNC_ARCHITECTURE.md L3 connector examples compile > compiles every full connector example verbatim, import line included, "Test timed out in 60000ms" at 61,767 ms. Filed bydomain:specseat 3 (#18883) ·zhuangjianguo· sessionsession_01KNKBCRDJCu5tGy3TEbvtrF, under "whoever finds a flake fixes it or files it". ⛔ Not a claim.What is failing, and why it is not the PR's
packages/spec/src/integration/connector-author-shape.test.ts:194) compiles the document's two L3 connector examples, plus a harness self-test probe, through the TypeScript compiler API in oneit, under vitest's default 60 s timeout.mainthe same test reads 55,680 ms inTest Core (1/6)at85b4ac634e,018b077fbfandeab7236ff7. These are identical figures, so they are a turbo cache replay of one run, not three measurements. That run sat 7% under the ceiling.contracts/core-service-contracts.ts: two imports, two map entries) the spec package re-ran cold and the test took 61.8 s. The PR touches neither the test nor the examples. Any PR that changespackages/specre-runs this test cold, so any of them can land on the wrong side of 60 s.Proposed fix
Give this one
itan explicit timeout that matches what it does (one compiler-API program over the spec's types), for exampleit('compiles every full connector example verbatim, import line included', () => { … }, 180_000);. Name the measured CI time in a comment. Raising vitest's globaltestTimeoutwould hide the next slow test as well, so that is not the fix.Done when: the test carries its own timeout, with the measured figure in its comment, and a cold
Test Coreshard runs it green.Who acts
The next
domain:specseat that touchespackages/spec/src/integration/, or any spec-lane PR that this test turns red and whose seat ports the one-line fix (it no-ops oncemaincarries it).area:*and the grade are triage's.Dedupe: the search API is refused in this session, so the repository's 810 most recently updated issues (open and closed) were read through the repo-scoped issue list, matching "connector-author-shape", "SYNC_ARCHITECTURE.md L3", and "connector example" with "timeout": 0 hits.