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
ci: five root test-task ui inputs move every Test Core hash but no core: row schedules Test Core for them; plus the shared-module self-test step undercounts its members (#27571 review follow-ups) #27961
Filing gate ③: a scheduling gap and a prose undercount, with named locations. Both are the should-fixes of contract review 6515518634 on PR #27571 (#27283), which marks them "a card, not this PR". Filed by domain:devx seat 2 (#20163). ⛔ Not a claim. ⛔ Filed without domain:*: both edits are in .github/workflows/** (governed, Tier H), and item 1 needs a maintainer ci.yml ruling (standing constraint), so triage sets the lane and routes the decision.
Business reason: a PR confined to one of the five files below changes every @objectstack/*#test cache key. Test Core then runs for the first time in the merge queue, not on the PR. This is the same shape ruling 6513291766 closed for the six build inputs, one task over.
Reader who acts: triage, and the maintainer for item 1's letter.
Dedupe: vitest.config.mts, test-shard and core: searched across open cards at origin/main. #27283 / #27571 scoped six build rows only, and no card names these.
Measured (review 6515518634, at PR #27571 head d5f83e05ee)
Scheduling gap. The root turbo.jsontest task gains seven $TURBO_ROOT$/ui/... inputs. Two of them, vite-*.ts and vitest-invocation-guard.mjs, are covered by the new build rows. These five are covered by no core: row:
ui/vitest.config.mts
ui/vitest.setup.*
ui/scripts/test-shard-*
ui/apps/console/vitest.config.ts
ui/apps/console/vite.config.ts
check-ci-filter-parity has no subject that reads the generic test task's root inputs; vitest.preset.mts sits in core: by hand. Nothing replays stale results: the hash moves, ui/** runs Test UI on the PR, and the queue runs Test Core with core true. Only the timing of Test Core's first run is affected.
Prose undercount..github/workflows/lint.yml's shared-module self-test step has three stale counts. The step name lists four modules (parse · entry predicate · comment mask · prerequisite frame). The comment above it says "The four modules are independent of one another". Its last line prints "all four ran and passed". Since fix(turbo): hash the ui tree root build and test inputs in the root turbo.json; guards read the live config #27571, five self-tests run in that step (ui/scripts/invoked-as.mjs --self-test was added). Nothing reads the string; the log just undercounts.
Wanted
A maintainer letter on item 1. The two routes the review named:
(A) a fourth parity subject for test inputs, plus the five core: rows;
(B) a recorded decision that Test Core's scheduling does not follow generic test inputs.
Item 2 rides whichever lint.yml edit comes next: fix the step name, the comment and the final message so they do not pin a member count (or say five).
Acceptance
Per the ruled letter. Under A: check-ci-filter-parity gains the subject, and a diff confined to one of the five starts Test Core on the PR.
The lint.yml step's name, comment and message match the members it runs.
Read fresh. .github/workflows wiring is the spec lane by anchoring. Item 1 is the same shape as ruling 6513291766 (the six build inputs), one task over. It adds no gate: it schedules existing Test Core for inputs that already move its hash. Item 2 is prose.
A governed ci.yml edit: the maintainer approves it in the PR.
Claim: PM loop round 1 · 2026-10-30T11:44Z
Session: session_01L9qibwb6hBqszPTYJobitm
Account: os-tesla
Branch: claude/project-thread-jnr0iw (card thread; the platform assigns the thread's branch and it can push only that one, written as measured instead of claude/issue-27717-<slug>)
Worktree: objectstack-issue-27717
Domain: domain:spec
Seat: domain:spec#1
Card thread: session session_01L9qibxnVpxAbqTXMwJU6LM; the dispatch order is in the seat's project, frame + card file.
Fold: family dispatch #27717 (chain head) + #27961, one PR with Fixes #27717 and Fixes #27961, one commit per card. Five gates: ① same defect and fix (a file a CI job reads is missing from the ci.yml filter list that schedules that job; fix = add the rows, parity green by parity); ② one area (ci.yml filter job, scripts/check-ci-filter-parity.mjs, one lint.yml step); ③ both graded (triage 6508159247, 6516081082); ④ each checked on its own acceptance; ⑤ excluded: #27731 (migrations comment sweep) and any turbo.json change.
File surface: .github/workflows/ci.yml (filter job lists: root package.json into the narrowest list whose jobs run setup-pnpm; the five ui test inputs into core:), .github/workflows/lint.yml (the shared-module self-test step's name, comment and message), scripts/check-ci-filter-parity.mjs (header bound; a subject for generic test inputs if measured to be needed) and its tests. Tier H (governed .github/workflows/**): the maintainer approves in the PR (stop on breach; explain in the report)
Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate), effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Ruling-ref: #27961 item 1 inherits ruling 6513291766 on #27283 (letter A, maintainer 「其他同意」): ui-root inputs that move the root turbo.json hashes enter ci.yml's core: filter, "and check-ci-filter-parity is green by parity, not by blindness"; triage 6516081082: "Item 1 is the same shape as ruling 6513291766 (the six build inputs), one task over. It adds no gate".
Thread-read: 6516081082
Premise: holds — on c1b52de2 the ui: filter list has no root package.json row; the parity header still reads "today's one" (L191/L193); lint.yml L810/L853 pin "four"; #27717's blocker PR #27709 merged 2026-10-30T01:37Z
Serial constraints cleared: none — no open PR touches ci.yml, lint.yml or check-ci-filter-parity.mjs (all 19 open PRs' file lists read); the fold partner #27717 shares this claim's branch
ACCEPT → PR #28089 comment 6523643562. Contract review PASS 6523604990 on head 115b9df6; Tier H approval: os-zhuang APPROVED on that head. Landing at 2026-10-30T14:28Z: needs-user-decision cleared, automerge_enable sent, PR in the merge queue.
Activity
objectstack-fleet commentedon Oct 30, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: p2 ·
domain:spec·area:devpath· Tier H · 2026-10-30T05:56Z⛔ Not a claim.
.github/workflowswiring is the spec lane by anchoring. Item 1 is the same shape as ruling6513291766(the sixbuildinputs), one task over. It adds no gate: it schedules existing Test Core for inputs that already move its hash. Item 2 is prose.ci.ymledit: the maintainer approves it in the PR.pm:queue.Generated by Claude Code
objectstack-fleet commentedon Oct 30, 2026
domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm
Claim: PM loop round 1 · 2026-10-30T11:44Z
Session:
session_01L9qibwb6hBqszPTYJobitmAccount:
os-teslaBranch:
claude/project-thread-jnr0iw(card thread; the platform assigns the thread's branch and it can push only that one, written as measured instead ofclaude/issue-27717-<slug>)Worktree:
objectstack-issue-27717Domain:
domain:specSeat:
domain:spec#1Card thread: session
session_01L9qibxnVpxAbqTXMwJU6LM; the dispatch order is in the seat's project, frame + card file.Fold: family dispatch #27717 (chain head) + #27961, one PR with
Fixes #27717andFixes #27961, one commit per card. Five gates: ① same defect and fix (a file a CI job reads is missing from theci.ymlfilter list that schedules that job; fix = add the rows, parity green by parity); ② one area (ci.ymlfilter job,scripts/check-ci-filter-parity.mjs, onelint.ymlstep); ③ both graded (triage 6508159247, 6516081082); ④ each checked on its own acceptance; ⑤ excluded: #27731 (migrations comment sweep) and anyturbo.jsonchange.File surface:
.github/workflows/ci.yml(filterjob lists: rootpackage.jsoninto the narrowest list whose jobs runsetup-pnpm; the five uitestinputs intocore:),.github/workflows/lint.yml(the shared-module self-test step's name, comment and message),scripts/check-ci-filter-parity.mjs(header bound; a subject for generictestinputs if measured to be needed) and its tests. Tier H (governed.github/workflows/**): the maintainer approves in the PR (stop on breach; explain in the report)Container & model:
M,mode:thread,model: TIER_DEFAULT(dispatch-gates --tier: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Ruling-ref: #27961 item 1 inherits ruling 6513291766 on #27283 (letter A, maintainer 「其他同意」): ui-root inputs that move the root
turbo.jsonhashes enterci.yml'score:filter, "andcheck-ci-filter-parityis green by parity, not by blindness"; triage 6516081082: "Item 1 is the same shape as ruling6513291766(the sixbuildinputs), one task over. It adds no gate".Thread-read: 6516081082
Premise: holds — on
c1b52de2theui:filter list has no rootpackage.jsonrow; the parity header still reads "today's one" (L191/L193);lint.ymlL810/L853 pin "four"; #27717's blocker PR #27709 merged 2026-10-30T01:37ZSerial constraints cleared: none — no open PR touches
ci.yml,lint.ymlorcheck-ci-filter-parity.mjs(all 19 open PRs' file lists read); the fold partner #27717 shares this claim's branchci: schedule Test Core for the generic test task's ui inputs (#27961)
objectstack-fleet commentedon Oct 30, 2026
domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm
ACCEPT → PR #28089 comment 6523643562 · 2026-10-30T13:13Z · contract review PASS 6523604990 · Tier H, waiting on an authorised approval.
objectstack-fleet commentedon Oct 30, 2026
domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm
ACCEPT → PR #28089 comment 6523643562. Contract review PASS 6523604990 on head
115b9df6; Tier H approval: os-zhuang APPROVED on that head. Landing at 2026-10-30T14:28Z:needs-user-decisioncleared,automerge_enablesent, PR in the merge queue.