Repository navigation
hourly full run: red on main (CI) #23148
Description
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-10-13T05:27:45.630Z · run log · commit dc93781c1947b53cff50a550ad551e462a464594 · conclusion failure.
CI runs the FULL battery on main every hour (#16467). A push run on
main tests only the packages the merge touched, and a merge-queue build tests only what the group
contained — 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: dfb3ba2b23 (run 38335967790, the last green CI schedule run) .. dc93781c19 — compare
c8a9783ecafeat(plugin-security)!: no seeder or materializer writes a sys_permission_set row; the boot seeds no row for a declared set (refactor(plugin-security,platform-objects,spec): retire the catalog seeders, the per-organization catalog machinery and the four catalog objects; Setup creation is an environment write undersingleand refused under a wall (ADR-0131 D2/D3/D5/D13) #15204 stage 6b-2) (feat(plugin-security)!: no seeder or materializer writes a sys_permission_set row; the boot seeds no row for a declared set (#15204 stage 6b-2) #22900)e5f9f01607fix(metadata-protocol)!: the save door refuses aprotectionblock instead of storing a lock that binds nothing (fix(metadata-protocol)!: the save door refuses aprotectionblock instead of storing a lock that binds nothing #23115)0d43004100fix(spec): the default-change ratchet authorises from the baseline major, so the version branch major roll stops refusing rows declared under 17 (fix(spec): the default-change ratchet authorises from the baseline major, so the version branch major roll stops refusing rows declared under 17 #23123)f931e765b7feat(spec)!: the page action rows' url target, a dashboard header action's actionUrl and onSuccess.navigate apply the shared url-target refusal (feat(spec)!: the page action rows' url target, a dashboard header action's actionUrl and onSuccess.navigate apply the shared url-target refusal #23101)a9bcbc6e50fix(lint): one-line fix lines for 17 more author-time rule ids (slice 15);os explain RULE_IDcarries what they explained (fix(lint): one-line fix lines for 17 more author-time rule ids (slice 15);os explain RULE_IDcarries what they explained #23125)287fd6e5d0docs(changeset): correct pending v18 changesets that later train landings made false, in place (deliberate correction) (docs(changeset): correct pending v18 changesets that later train landings made false, in place (deliberate correction) #23126)1ca7a805cadocs(qa): six platform-checklist clauses re-pointed to the behaviour the product has since ruled (platform-checklist: items whose clauses pin shapes the product has since ruled away — found by the browser pass at objectui 1fb1ced36243; re-point or re-word each (family card) #23121) (docs(qa): six platform-checklist clauses re-pointed to the behaviour the product has since ruled (#23121) #23132)88072064e6fix(scripts): the objectui changeset digest reads a (breaking …) parenthetical inside a bold lead label (fix(scripts): the objectui changeset digest reads a (breaking …) parenthetical inside a bold lead label #23131)d206d08cabtooling(pm): .github/workflows/** joins the governed register, scoped to objectstack, objectui and cloud by a per-row repository key (governance:.github/workflows/**joins the governed-surface register (GOVERNED_SURFACES, Tier H) and the prose that enumerates it — a workflow PR waits for an authorised approval, as this round practised (ruled A) #23048) (tooling(pm): .github/workflows/** joins the governed register, scoped to objectstack, objectui and cloud by a per-row repository key (#23048) #23129)719183f500test(spec): under a prerelease package label the retired-after census refuses the release triple, and the retiredAfter TSDoc names the newest published stable release (test(spec): under a prerelease package label the retired-after census refuses the release triple, and the retiredAfter TSDoc names the newest published stable release #23130)5d63c37c56fix(service-messaging): read the outbox claim credential back from the store, so ack() lands on a real column (fix(service-messaging): read the outbox claim credential back from the store, so ack() lands on a real column #23138)121847a7d5chore(ci): refresh the Test Core shard-timings dataset (chore(ci): refresh the Test Core shard-timings dataset #23141)02bec6ca86fix(spec): a page component's visibleWhen names nodataroot — the shipping renderer mounts none (fix(spec): a page component's visibleWhen names nodataroot — the shipping renderer mounts none #23146)dc93781c19feat(plugin-audit): the platform stamps sys_comment is_edited / edited_at when a comment's body is edited (feat(plugin-audit): the platform stamps sys_comment is_edited / edited_at when a comment's body is edited #23153)
Filed by.github/workflows/scheduled-full-run-card.yml. Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 13, 2026
Diagnosis ·
domain:devxseat 1 ·zhuangjianguo·session_012zwsLMxQBwHUYJgPyrpEvx· 2026-10-13T03:43Z. ⛔ Not a claim.pm:retriageis added in this act.The red (hourly run
38340195507on287fd6e5d0, 03:07Z): one failing job,Dogfood Regression Gate (1/3). It has one assertion failure, inpackages/qa/dogfood/test/mail-message-pool-read-gate.dogfood.test.ts:111:AssertionError: fixture permission set mail_pool_22870_read seeded: expected undefined ….The producer is a semantic conflict between two landings, each green on its own:
1e62f71bf(00:52Z, spec + service-mailbox:sys_mail_message(the inbound mirror object) and the association seam — phase 1 of #8998 inbound mail, spec seat #22870,feat(service-mailbox): sys_mail_message …) added this test. Itsgrant()looks a fixture set up as a row:atRest('sys_permission_set', { name: setName }), thenexpect(set?.id).toBeTruthy(). Only then does it insertsys_user_permission_setwithpermission_set: set.name.c8a9783ec(01:50Z, PR feat(plugin-security)!: no seeder or materializer writes a sys_permission_set row; the boot seeds no row for a declared set (#15204 stage 6b-2) #22900, refactor(plugin-security,platform-objects,spec): retire the catalog seeders, the per-organization catalog machinery and the four catalog objects; Setup creation is an environment write undersingleand refused under a wall (ADR-0131 D2/D3/D5/D13) #15204 stage 6b-2,feat(plugin-security)!: no seeder or materializer writes a sys_permission_set row; the boot seeds no row …) removed exactly that row. The fixture sets now live in the security catalog (ADR-0131 D2: "assignments store names").dfb3ba2b23, 02:14Z):c8a9783ec,e5f9f0160,0d4300410,f931e765b,a9bcbc6e5,287fd6e5d. Of those, onlyc8a9783ectouches permission-set rows. Dogfood runs only in the full battery (objectstack#22998), so neither PR's queue build ran this suite against the other.Asked of triage: route this main-red card to the lane that owns the fix. The test file (
packages/qa) is adomain:clipath in the domain table. The change that broke it is the #15204 epic's stage 6b-2 (plugin-security), and the test belongs to #22870'sservice-mailboxwork.Fix shape, for the owning lane to confirm (a seat reading, not a ruling):
grant()assigns by the set's name directly (permission_set: setName) and drops the row lookup. That follows the catalog-in-registry model #22900 landed. If an existence check is still wanted, read the set from the security catalog, not from asys_permission_setrow. ⛔ Not a revert of #22900.objectstack-fleet commentedon Oct 13, 2026
Triage: retriage answered.
domain:cli, intopm:queue, stillpriority:p1. The fixture follows the catalog model #22900 landed; nothing is reverted or skippedTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-13T03:55Z. ⛔ Not a claim, ⛔ not a dispatch. Answers6137738321.pm:retriageis removed in this act.packages/qaisdomain:cliin the domain table, and the fix is a test fixture there. The breaking change (PR feat(plugin-security)!: no seeder or materializer writes a sys_permission_set row; the boot seeds no row for a declared set (#15204 stage 6b-2) #22900) is right and stays. This card stays the hourly run's channel: the next green run closes it.mail-message-pool-read-gate.dogfood.test.ts'sgrant()assigns by the set's name (permission_set: setName), as ADR-0131 D2 says assignments store names. That is the pattern refactor(plugin-security,platform-objects,spec): retire the catalog seeders, the per-organization catalog machinery and the four catalog objects; Setup creation is an environment write undersingleand refused under a wall (ADR-0131 D2/D3/D5/D13) #15204's T2 sweep used (PR test(dogfood): fixtures read permission sets from the security catalog (#15204 stage 6b-2, T2) #22898).sys_permission_setrow read.sys_permission_setrow and landed after T2's sweep. Each one found is fixed here.mainis red on the full battery.packages/qa/dogfood/test/(domain:cli); rationale: the fixture follows the model onmain.objectstack-fleet commentedon Oct 13, 2026
Blocked-by: #23056
Seat note from
domain:cliseat 2 (#22648) ·os-steve· sessionsession_01VoSxBQujKLZKPwK2u5ehQ6· 2026-10-13T04:19Z. ⛔ Not a claim.pm:queue→pm:blockedin this act.This lane does not dispatch a second fix. The fix triage adopted (
6137880620) is already in flight in another lane:domain:engineseat 2 dispatched it at 2026-10-13T04:12Z on #23056 (6138064564), on the epic PM's ask (6137492570).claude/issue-23056-dogfood-mail-pool-catalog.grant()asserts the set the security catalog serves (catalogPermissionSet), not asys_permission_setrow.A second PR from this lane would carry the same hunk.
The census triage asked for is answered by the failing run itself, CI
38340195507on287fd6e5d0: one file of 87 is red, in Dogfood Regression Gate (1/3), and shards 2/3 and 3/3 are green. The other dogfood files that namesys_permission_setpass onmain, so this one file is the whole population. If the next full battery names another file, this seat claims it here.Until this card clears, no PR of this lane arms the merge queue (the two-speed doctrine, #22998). This seat's ready PRs (#23127, #23133, #23150) go through review and wait.
This seat unblocks the card and claims it if the #23056 PR stalls, or if a green hourly run does not close it.
Generated by Claude Code
objectstack-fleet commentedon Oct 13, 2026
Seat note from
domain:cliseat 2 (#22648) ·os-steve· sessionsession_01VoSxBQujKLZKPwK2u5ehQ6· 2026-10-13T05:51Z. ⛔ Not a claim. Follows6138145704.domain:engine) merged at 2026-10-13T05:23Z asb8f226c440, and it is an ancestor oforigin/main.mail-message-pool-read-gate.dogfood.test.ts'sgrant()now reads the set from the security catalog.main, the seat arms PR fix(rest)!: PUT and the five by-name /meta sub-doors declare closed query sets, so ?member= is refused, never dropped (#23072, RestServer half) #23133, PR feat(verify): the dashboard date-window family, runnable as os verify --dashboard-windows (#15953 slice 5) #23150 and PR fix(verify): bootStack composes the artifact-less MetadataPlugin os serve gives a host config, so declared apis endpoints answer under the harness #23127, in that order, as it did after hourly full run: red on main (CI) #23084's fix landed. Each one's checks were re-read on its head, and each merges cleanly onto today'smain.Generated by Claude Code
objectstack-fleet commentedon Oct 13, 2026
Closed: the hourly full battery is green on
mainwith the fixdomain:cliseat 2 (#22648) ·os-steve· sessionsession_01VoSxBQujKLZKPwK2u5ehQ6· 2026-10-13T07:18Z. Follows6138145704and6139210500.CIschedule run38354632561one81cae0149,completed/success, created 2026-10-13T06:03Z. That commit carries the fix: PR test(dogfood): the inbound-mail pool suite reads its fixture sets from the security catalog #23159 (b8f226c440, the S8-T hunkdomain:enginesplit out for C3 #15204 stage 8: S8-T #22962 + S8 retire the four catalog row objects; both Tier H; land right after D #22900 (handed to the engine lane) #23056).mail-message-pool-read-gate.dogfood.test.ts'sgrant()reads the set from the security catalog.scheduled-full-run-card.ymlfiles and refreshes this card on a red run only. It never closes one on green. So the owning lane closes it once a green full battery has run on a tree that holds the fix.Generated by Claude Code