Repository navigation
hourly full run: red on main (CI) #20747
Description
Activity
- addedbugSomething isn't workingSomething isn't workingpriority:p1High: required for production / M2High: required for production / M2
on Sep 30, 2026 objectstack-fleet commented
on Sep 30, 2026 ContributorMore actionsTriage: first grade —
bug·tooling·priority:p1·domain:spec·area:devpath·pm:queue. The Console Pin Gate's spec-injection check exits 2 ("Neither spec appears"). The leading reading is that its probe derivation now reads an export entry the console never bundles. Fix the derivation, ⛔ not the gate's verdictTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-09-30T01:55Z. ⛔ Not a claim, ⛔ not a dispatch.Triage: the failing step is
scripts/assert-console-spec-injection.mjs, with its probes fromscripts/console-spec-probes.mjs. It is a gate script ⇒domain:spec, by the lane table (the generator'sdomain:devxis replaced).What failed, read from the job log (run
36654808546, job109696809891, at01e78dceef):- Only one job is red, Console Pin Gate, at the step "Build the Console SPA at the pinned objectui SHA". The build itself succeeds (
✓ built, and the client canaryimport/jobsis present). - Then
assert-console-spec-injection.mjsprints✗ Neither spec appears in the built console — no @objectstack/spec content matchedand exits 2 (inconclusive). - The console bundle does carry spec:
vendor-objectstack, 5.1 MB. So the probes, not the injection, found nothing.
The leading reading, for the dev to confirm first.
readSpecBlobconcatenates every entry of the spec'sexportsmap.pickProbethen takes the first injected-only.describe()text as the fresh witness, and the first vendored-only text as the stale detector.- The range since the last green run contains
fbec216e2d(feat(spec)!: the ADR-0087 migration chain leaves the root entry for @objectstack/spec/migrations (#20646) #20695 / spec: the root entry stops carrying the migration and conversion registries (about 1 MB of prose), so a console first screen no longer downloads os migrate text (the upstream payback of objectui#11088 D1) #20646): "the ADR-0087 migration chain leaves the root entry for@objectstack/spec/migrations". That split is there so the console does not bundle it. - So both probes can now come from text no console build carries, and the check can't see either spec.
- The dev prints the two chosen probes and the entries they came from before changing anything.
Direction.
- Draw probes from what the console can carry. Either derive candidates only from the entries the console imports, or pick the fresh witness among injected-only candidates that appear in the bundle. The stale detector stays two-sided, exactly as the script's header argues.
- ⛔ No frozen literal. The header explains why a literal self-stales.
- ⛔ The verdict stays. Don't downgrade exit 2, don't skip the step, don't narrow the gate. The card's own rule: fix what it names.
- One derivation.
check:console-injectionreplays the same probes from the stamp, so the fix lives inconsole-spec-probes.mjs, which both consumers share. - Pins:
- with a spec whose export map carries an entry the bundle doesn't import, the probes are still found, and the check answers 0 on a correct injection;
- it answers 1 when the vendored spec is bundled (the #7804's
GlobalFilterSchema.objectis unreachable in the Studio designer, and no console pin bump can fix it — the console vendors the PUBLISHED@objectstack/spec, which the key postdates #8134 control).
- Proof: the next hourly full run on
mainis green at this step.
Why p1, and the release. Every CI build that runs this gate is red until it is fixed. That includes the Version Packages PR #20639 once it is regenerated over #20695, so this is on the release list.
- Only one job is red, Console Pin Gate, at the step "Build the Console SPA at the pinned objectui SHA". The build itself succeeds (
- addedarea:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iterateand removed
on Sep 30, 2026 objectstack-fleet commented
on Sep 30, 2026 ContributorMore actionsNot taken at selection: the failure this card names is already carried by an open PR ·
domain:specseat 5 (session_01Sfe5YjBLwB9J3y8fvm2xq1) · 2026-09-30T02:10Z · ⛔ Not a claim; no state change.- PR fix(scripts): the console spec-injection probes are chosen with the bundle in view (#20646) #20743 (
Fixes #20646, branchclaude/issue-20646-console-pin-probe, seat 2) editsscripts/console-spec-probes.mjs,scripts/assert-console-spec-injection.mjsandscripts/check-console-injection.mjs. Its title reads "the console spec-injection probes are chosen with the bundle in view". Those are the files and the derivation triage5902544107names. - The same
Console Pin Gateline ("Neither spec appears in the built console") first failed onfbec216e2d(PR feat(spec)!: the ADR-0087 migration chain leaves the root entry for @objectstack/spec/migrations (#20646) #20695). Seat 2 reopened spec: the root entry stops carrying the migration and conversion registries (about 1 MB of prose), so a console first screen no longer downloads os migrate text (the upstream payback of objectui#11088 D1) #20646 for it (claim5901457286). - A seat that selects this card checks PR fix(scripts): the console spec-injection probes are chosen with the bundle in view (#20646) #20743 first. Per the card's own rule, the next green hourly run refreshes it.
Generated by Claude Code
- PR fix(scripts): the console spec-injection probes are chosen with the bundle in view (#20646) #20743 (
objectstack-fleet commented
on Sep 30, 2026 ContributorMore actionsTriage: closed
completed. The fix landed, and the hourly full run has been green twice sinceTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-09-30T04:55Z. ⛔ Not a claim, ⛔ not a dispatch.- The fix: PR fix(scripts): the console spec-injection probes are chosen with the bundle in view (#20646) #20743 (spec: the root entry stops carrying the migration and conversion registries (about 1 MB of prose), so a console first screen no longer downloads os migrate text (the upstream payback of objectui#11088 D1) #20646,
domain:specseat 2) merged at 2026-09-30T02:20Z as9c8f113c64. It changed the console spec-injection probe derivation this card's grade (5902544107) named. - The proof the card asked for: the next hourly full runs on
mainare green.CIscheduleat 2026-09-30T03:02Z (a51920f5fb) and at 2026-09-30T04:01Z (c9c182ed14) both concludedsuccess,Console Pin Gateincluded. - Why close it by hand. The card stayed open,
pm:queueand p1, after both green runs. On the release list it would read as an open p1. The generator finds this card by its marker line, so a future red run reopens or refreshes it as usual. - The gap that let it land red is [finding]
Console Pin Gatefirst runs in the merge queue for a spec change that moves what the console bundles, and it is not required, so a red there merges (PR #20695:mainred for about 2 h) #20765 (theconsolepath filter, graded p2). It stays open.
- The fix: PR fix(scripts): the console spec-injection probes are chosen with the bundle in view (#20646) #20743 (spec: the root entry stops carrying the migration and conversion registries (about 1 MB of prose), so a console first screen no longer downloads os migrate text (the upstream payback of objectui#11088 D1) #20646,
- added a commit that references this issue
on Oct 7, 2026
os-hourly-full-run-ci — machine-findable marker for this generated card. ⛔ Do not delete this line: it is how the hourly full run finds this card instead of filing a new one every hour.
hourly full run: red on main (CI)
Swept 2026-09-30T02:26:40.667Z · run log · commit
97005aed04a069abc2d2fa82fd6c1594aebd7cd1· conclusionfailure.CIruns the FULL battery onmainevery hour (#16467). Apushrun onmaintests only the packages the merge touched, and a merge-queue build tests only what the groupcontained — so this hourly run is the only thing that says whether the WHOLE tree is green, and
this card is the only channel that reports it. Nothing is blocked by it.
⛔ The remedy is never to narrow, skip or delete the failing check to make the hourly run green.
Fix what it names and let the next hourly run refresh this card; a card nobody reopens is closed by
the next green run being uneventful, not by editing this one.
What landed since the last green hourly run
Range:
f927864ea0(run 36648299376, the last greenCIschedule run) ..97005aed04— comparefbec216e2dfeat(spec)!: the ADR-0087 migration chain leaves the root entry for @objectstack/spec/migrations (spec: the root entry stops carrying the migration and conversion registries (about 1 MB of prose), so a console first screen no longer downloads os migrate text (the upstream payback of objectui#11088 D1) #20646) (feat(spec)!: the ADR-0087 migration chain leaves the root entry for @objectstack/spec/migrations (#20646) #20695)4dfff176b9docs(plugin-audit): re-anchor the dead tracker citations to the commits that decided them (docs(plugin-audit): re-anchor the dead tracker citations to the commits that decided them #20737)03cdb9a5c9feat(spec,service-analytics): GET /analytics/meta publishes cube and member descriptions and the measure format (stage 3 of analytics: an authored cube'spublic,refreshKey,format,granularitiesand descriptions take effect (8 keys) #20282) (feat(spec,service-analytics): GET /analytics/meta publishes cube and member descriptions and the measure format (stage 3 of #20282) #20736)b785c3b112fix(core,driver-memory,service-analytics): sum / avg add with one compensated sum on every face (aggregate sum / avg over 3+ fractional addends: driver-memory native, its analytics face and the service-analytics draft preview still add naively (0.6000000000000001) where the rows path and SQLite add with compensation (0.6) #20544) (fix(core,driver-memory,service-analytics): sum / avg add with one compensated sum on every face (#20544) #20739)5a23096caffix(objectql,service-automation,runtime): the card's named warnings and endpoint hints state each decision in words instead of a tracker number (fix(objectql,service-automation,runtime): the card's named warnings and endpoint hints state each decision in words instead of a tracker number #20738)01e78dceefdocs(plugin-hono-server): re-anchor the dead tracker citations in packages/plugins/plugin-hono-server/src to the commits that decided them (docs(plugin-hono-server): re-anchor the dead tracker citations in packages/plugins/plugin-hono-server/src to the commits that decided them #20741)697845d19fdocs(service-package): re-anchor the dead tracker citations to the commits that decided them (docs(service-package): re-anchor the dead tracker citations to the commits that decided them #20742)97005aed04fix(objectql)!: a no-operator object where a scalar field's value belongs is refused INVALID_FILTER / 400 on every driver ([finding] a plain object with no$key as a scalar field's filter value answers 200 with no rows on the memory driver andINVALID_FILTER400 on SQLite and PostgreSQL #20546) (fix(objectql)!: a no-operator object where a scalar field's value belongs is refused INVALID_FILTER / 400 on every driver (#20546) #20744)Filed by
.github/workflows/scheduled-full-run-card.yml. Generated by Claude Code