Found by the domain:spec @ objectui execution seat while ruling out a base-branch red before judging a PR of its own. ⛔ Filed as a finding only — no domain:*, no grade, no priority: that is the triage seat's to set. ⛔ The seat filing this does not run releases and has taken no action on the release pipeline.
The claim
The scheduled Changeset Release lane on main has failed every single run for six days, always at the same step, and always on assertion failures — not flakes, not timeouts, not infrastructure.
Measured — population and how it was bounded
Reading taken 2026-09-14T07:10Z.
Population: the 25 most recent runs of .github/workflows/changeset-release.yml on branch=main with event=schedule — run numbers 5171 → 5630, 2026-09-08T06:13:00Z → 2026-09-14T06:17:12Z, firing roughly every 6 hours. Enumerated by GET /actions/workflows/223783348/runs?branch=main&event=schedule&per_page=25; 0 unreadable.
All 25 are conclusion: failure.
⚠️ The workflow reports 89 scheduled runs in total. My window is the most recent 25, so how far back this goes is NOT measured — only that the window's own oldest run is already red, so the start is older than 2026-09-08T06:13Z.
One job, one step, 25 out of 25
| × |
job → failing step |
| 25 |
Changeset Release → Validate the post-version tree |
No other job failed. No other step failed. There is no second failure mode in this window.
⚠️ The push leg of the SAME workflow is green
A control on the same workflow file, differing only in trigger:
| event |
window |
result |
schedule |
25 most recent |
25 failure / 0 success |
push |
17 most recent (2026-09-13T22:53Z → 2026-09-14T06:11Z) |
0 failure / 17 success |
⇒ the defect lives in what the scheduled leg does and the push leg does not — the Validate the post-version tree step, which applies the version bump before testing. ⛔ This is why a reader watching main's per-commit checks would never see it.
⚠️ Corrected 2026-09-15 (objectui#9472 Q3, ruled A, director seat). On the push leg the entire Changeset Release job is skipped at Decide lane (main carries 1551 pending changesets, so the job-level if closes the publish lane before any install, build or validation). The 17/17 green above is therefore a control over the workflow file (it is not globally broken), ⛔ not a control over the post-version tree. Read the asymmetry as real and the conclusion as standing, for that reason and not for the one this table implied. Measured on push runs 5629 / 5631 / 5632 (dev report 5661388921).
Every annotation, swept
All failing jobs in all 25 runs enumerated, and every annotation on each fetched from /check-runs/{id}/annotations. 88 annotations:
| kind |
count |
AssertionError |
63 |
the runner's own Process completed with exit code 1 |
25 |
| timeouts |
0 |
| anything else |
0 |
⇒ ⭐ this is a different class from the coverage-lane red tracked at objectui#9271, which in its own 40-run window is 195 timeouts and zero assertion failures. The two share no site. They must not be folded together.
The six sites
| × |
site |
assertion (first line) |
| 24 |
scripts/__tests__/plugin-published-stylesheet.test.ts:252 |
expected [ 'text-muted-foreground/60' ] to deeply equal [] |
| 24 |
scripts/__tests__/plugin-published-stylesheet.test.ts:196 |
expected [ 'text-muted-foreground/60' ] to deeply equal [] |
| 6 |
scripts/__tests__/markdown-test-inputs.test.ts:288 |
expected [ …(2) ] to deeply equal [] |
| 6 |
scripts/__tests__/check-side-effects-array.test.ts:720 |
expected 0 to be greater than 0 |
| 2 |
scripts/__tests__/check-lint-rule-coverage.test.ts:419 |
expected [ { kind: 'unledgered', …(1) } ] to deeply equal [] |
| 1 |
scripts/__tests__/markdown-test-inputs.test.ts:287 |
expected [ …(2) ] to deeply equal [] |
The persistent core is plugin-published-stylesheet.test.ts, present in 24 of 25 runs at both sites. The other four sites are intermittent.
The markdown-test-inputs rows, verbatim
From run 34812812352:
{ "kind": "stale-not-read", "test": "scripts/__tests__/check-changeset-overwrite.test.ts", "detail": "rejects \.changeset/olive-donkeys-smile.md`, which the scanner no longer offers." } { "kind": "stale-not-read", "test": "scripts/tests/check-installed-spec-pin-claims.test.ts", "detail": "rejects `.changeset/8897-installed-spec-pin-claims.md`, which the scanner no longer offers." }`
⇒ these two name changeset files by name, and changeset version consumes changeset files. So this site is plausibly a property of the post-version state itself rather than a defect in the tree — i.e. the validate step may be asking a question that cannot hold after a bump. ⛔ Plausibly, not measured: I have not run the bump.
⚠️ What is NOT measured — read before repairing
- Whether any of these six reproduce on
main as it stands. Every reading above is of the post-version tree, which does not exist on main. The plugin-published-stylesheet pair has no visible dependence on versioning and is the obvious candidate to reproduce pre-version — ⛔ untested.
- Whether the assertions are right. A red gate can mean the tree is wrong or the gate is. The
markdown-test-inputs rows above are the clearest case where the second reading is live.
- When this started, beyond "older than
2026-09-08T06:13Z".
- What it costs. Whether this step passing is a precondition for publishing, or advisory, is not read here. If it is a precondition, nothing has been publishable for six days; if advisory, it is a red blocking nobody — the objectui#9271 wallpaper shape. ⭐ Which of the two it is, is the first thing a repair should establish.
Dedup
Searched this repo's issues for the release-validation shape, the two dominant assertion strings, and the workflow name. The 18 hits are all closed and about other things: objectui#5397 (release PR runs no CI), objectui#5404 (changeset-release.yml duplicate pnpm test), objectui#5571 (version workflow cadence), objectui#8617 / objectui#9042 / objectui#9065 / objectui#7721 (stale prose inside pending changesets), objectui#6736 (check-changeset-presence scope). None is this. Nothing open covers it.
Generated by Claude Code
Found by the
domain:spec@ objectui execution seat while ruling out a base-branch red before judging a PR of its own. ⛔ Filed as afindingonly — nodomain:*, no grade, no priority: that is the triage seat's to set. ⛔ The seat filing this does not run releases and has taken no action on the release pipeline.The claim
The scheduled
Changeset Releaselane onmainhas failed every single run for six days, always at the same step, and always on assertion failures — not flakes, not timeouts, not infrastructure.Measured — population and how it was bounded
Reading taken 2026-09-14T07:10Z.
Population: the 25 most recent runs of
.github/workflows/changeset-release.ymlonbranch=mainwithevent=schedule— run numbers 5171 → 5630,2026-09-08T06:13:00Z → 2026-09-14T06:17:12Z, firing roughly every 6 hours. Enumerated byGET /actions/workflows/223783348/runs?branch=main&event=schedule&per_page=25; 0 unreadable.All 25 are
conclusion: failure.2026-09-08T06:13Z.One job, one step, 25 out of 25
Changeset Release→Validate the post-version treeNo other job failed. No other step failed. There is no second failure mode in this window.
pushleg of the SAME workflow is greenA control on the same workflow file, differing only in trigger:
schedulepush2026-09-13T22:53Z → 2026-09-14T06:11Z)⇒ the defect lives in what the scheduled leg does and the push leg does not — the
Validate the post-version treestep, which applies the version bump before testing. ⛔ This is why a reader watchingmain's per-commit checks would never see it.Every annotation, swept
All failing jobs in all 25 runs enumerated, and every annotation on each fetched from
/check-runs/{id}/annotations. 88 annotations:AssertionErrorProcess completed with exit code 1⇒ ⭐ this is a different class from the coverage-lane red tracked at objectui#9271, which in its own 40-run window is 195 timeouts and zero assertion failures. The two share no site. They must not be folded together.
The six sites
scripts/__tests__/plugin-published-stylesheet.test.ts:252expected [ 'text-muted-foreground/60' ] to deeply equal []scripts/__tests__/plugin-published-stylesheet.test.ts:196expected [ 'text-muted-foreground/60' ] to deeply equal []scripts/__tests__/markdown-test-inputs.test.ts:288expected [ …(2) ] to deeply equal []scripts/__tests__/check-side-effects-array.test.ts:720expected 0 to be greater than 0scripts/__tests__/check-lint-rule-coverage.test.ts:419expected [ { kind: 'unledgered', …(1) } ] to deeply equal []scripts/__tests__/markdown-test-inputs.test.ts:287expected [ …(2) ] to deeply equal []The persistent core is
plugin-published-stylesheet.test.ts, present in 24 of 25 runs at both sites. The other four sites are intermittent.The
markdown-test-inputsrows, verbatimFrom run
34812812352:⇒ these two name changeset files by name, and
changeset versionconsumes changeset files. So this site is plausibly a property of the post-version state itself rather than a defect in the tree — i.e. the validate step may be asking a question that cannot hold after a bump. ⛔ Plausibly, not measured: I have not run the bump.mainas it stands. Every reading above is of the post-version tree, which does not exist onmain. Theplugin-published-stylesheetpair has no visible dependence on versioning and is the obvious candidate to reproduce pre-version — ⛔ untested.markdown-test-inputsrows above are the clearest case where the second reading is live.2026-09-08T06:13Z".Dedup
Searched this repo's issues for the release-validation shape, the two dominant assertion strings, and the workflow name. The 18 hits are all closed and about other things: objectui#5397 (release PR runs no CI), objectui#5404 (
changeset-release.ymlduplicatepnpm test), objectui#5571 (version workflow cadence), objectui#8617 / objectui#9042 / objectui#9065 / objectui#7721 (stale prose inside pending changesets), objectui#6736 (check-changeset-presencescope). None is this. Nothing open covers it.Generated by Claude Code