Repository navigation
4-hourly full run: red on main (CI) #26904
Description
os-4-hourly-full-run-ci — machine-findable marker for this generated card. ⛔ Do not delete this line: it is how the 4-hourly full run finds this card instead of filing a new one every 4 hours.
4-hourly full run: red on main (CI)
Swept 2026-10-27T20:23:45.037Z · run log · commit a51ba639c165861a8c4ac51015e554911960bf24 · conclusion failure.
CI runs the FULL battery on main every 4 hours (#16467, #25771). 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 scheduled 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 4-hourly run green.
Fix what it names and let the next 4-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 4-hourly run
Range: d31329f1bf (run 40537439467, the last green CI schedule run) .. a51ba639c1 — compare
607d3bb125refactor(types)!: derive the object-form and object-calendar spec keys, rename the legacy zod ActionSchema (types: the strict authoring face accepts spellings the spec refuses (object-calendar flat keys), 74 zod mirrors silently strip unknown keys, and the list view's options bag is a second contract #25923) (refactor(types)!: derive the object-form and object-calendar spec keys, rename the legacy zod ActionSchema (#25923) #26751)665059b605fix(service-print): a server print works under the console's default CSP (the ready wait passes a function, not a string) (fix(service-print): a server print works under the console's default CSP (the ready wait passes a function, not a string) #26783)ef7067fdaffix(core)!: the import dry run previews create rows in the commit's batches (import: the dry run previews each row alone, so after #25579 it answers valid for a row the commit refuses by a batch-aware parent-summary rule #26684) (fix(core)!: the import dry run previews create rows in the commit's batches (#26684) #26778)13e85beaa9feat(spec,plugin-auth): a demoStaff entry names its line manager, and os dev links it (feat(spec,plugin-auth): a demoStaff entry names its line manager, and os dev links it #26763)4485536597feat(ui): Studio inspector strings (page block, action, dataset, flow node, app nav, widget) move into the studio i18n namespace (app-shell: a published library that is 66% Console product surface — retire the 67 zero-reference exports now, decide the split, and fold the second i18n table into @object-ui/i18n #25922 slice S2) (feat(ui): Studio inspector strings (page block, action, dataset, flow node, app nav, widget) move into the studio i18n namespace (#25922 slice S2) #26780)83c4bd29f7docs(qa): approvals cross-org provisioning recipe scores decision-action-matrix A9 (docs(qa): approvals cross-org provisioning recipe scores decision-action-matrix A9 #26789)f7c95cd191test(dogfood): pin five api-backend checklist items at the HTTP layer (test(dogfood): pin five api-backend checklist items at the HTTP layer #26787)8b276385e6test(dogfood): pin five records-forms checklist items at the REST door (slice 1) (test(dogfood): pin five records-forms checklist items at the REST door (slice 1) #26788)0f0b9f55c3fix(create-objectstack): refuse a project name npm would refuse, before writing anything (fix(create-objectstack): refuse a project name npm would refuse, before writing anything #26796)c8583f80actest(dogfood): pin access-security checklist clauses at the api oracle's layer, slice 1 (test(dogfood): pin access-security checklist clauses at the api oracle's layer, slice 1 #26797)cee4b16584fix(metadata-protocol): land the NULL-safe sys_setting / sys_notification_preference identity on PostgreSQL, and never report a no-op as created (fix(metadata-protocol): land the NULL-safe sys_setting / sys_notification_preference identity on PostgreSQL, and never report a no-op as created #26782)b198f919b8fix(cli): os dev's in-place organization-ownership upgrade names what stopped it, and the command that carries on (fix(cli): os dev's in-place organization-ownership upgrade names what stopped it, and the command that carries on #26785)63e38732aafeat(spec)!: a single-word language name (Chinese, English, Japanese) is refused as a locale (feat(spec)!: a single-word language name (Chinese, English, Japanese) is refused as a locale #26770)59441b6268docs(qa): automation recipes score the second packaged caller and the 503 store arm (docs(qa): automation recipes score the second packaged caller and the 503 store arm #26802)0ea90c7a18chore(ui-merge): clear the objectui leftovers after the ui/ merge (aftercare(ui-merge): the first joint 18.x release from the merged repo — both scopes at one version, @object-ui published, docs site deployed — then close #25556 as superseded and the epic (parent #25677, 6/6) #25753) (chore(ui-merge): clear the objectui leftovers after the ui/ merge (#25753) #26598)f79ec28949refactor(plugin-grid): move ObjectGrid's column generator, column post-processing and Actions column into sibling modules (slice 8) (refactor(plugin-grid): move ObjectGrid's column generator, column post-processing and Actions column into sibling modules (slice 8) #26806)6279efef6ffix(plugin-security)!: security explain refuses a userId that no sys_user record has with 404 RECORD_NOT_FOUND (fix(plugin-security)!: security explain refuses a userId that no sys_user record has with 404 RECORD_NOT_FOUND #26801)55b5042e3afix(connectors)!: refuse a non-3.x OpenAPI document at load; mcp tools/list follows nextCursor and a 401/403 is a fatal configuration fault (fix(connectors)!: refuse a non-3.x OpenAPI document at load; mcp tools/list follows nextCursor and a 401/403 is a fatal configuration fault #26798)13dc413fcefeat(spec): a greyed action says why —disabledReasonbesidedisabled(feat(spec): a greyed action says why —disabledReasonbesidedisabled#26786)288cb5356arefactor(metadata-protocol): move the post-persistence mutation fan-out out of protocol.ts into protocol-mutation-fan-out.ts ([maintainer] refactor(metadata-protocol): splitsrc/protocol.ts(33,065 lines, +10,169 in 30 days) along itsObjectStackProtocolImplementationseams, one move-only slice per PR #25467 cut 25) (refactor(metadata-protocol): move the post-persistence mutation fan-out out of protocol.ts into protocol-mutation-fan-out.ts (#25467 cut 25) #26807)aeb9cf0ddcfeat(app-shell): the page designer can set a list block's object, view and row cap (feat(app-shell): the page designer can set a list block's object, view and row cap #26793)f1cd529dd2refactor(driver-sql): move the data-lifecycle rotation sub-banner's movable members out of sql-driver.ts into sql-driver-schema-sync.ts ([maintainer] refactor(driver-sql): splitsrc/sql-driver.ts(22,096 lines, +2,533 in 30 days) along itsSqlDriverseams, one move-only slice per PR #25521 cut 17) (refactor(driver-sql): move the data-lifecycle rotation sub-banner's movable members out of sql-driver.ts into sql-driver-schema-sync.ts (#25521 cut 17) #26808)3c2187f4e3test(dogfood): pin five records-forms checklist items at the REST door (slice 2) (test(dogfood): pin five records-forms checklist items at the REST door (slice 2) #26813)d8b943b620refactor(objectql): move the validate body out of engine.ts into engine-validate.ts ([maintainer] refactor(objectql): splitsrc/engine.ts(23,903 lines, +7,501 in 30 days) along itsObjectQLseams, one move-only slice per PR #25522 cut 16) (refactor(objectql): move the validate body out of engine.ts into engine-validate.ts (#25522 cut 16) #26792)4702c46802fix(metadata-protocol)!: the Data API refuses an empty projection and a count flag that is neither true nor false (fix(metadata-protocol)!: the Data API refuses an empty projection and a count flag that is neither true nor false #26811)4b59358ae3feat(ui): the remaining Studio inspector strings and the package, form and editor strings move into the studio i18n namespace (app-shell: a published library that is 66% Console product surface — retire the 67 zero-reference exports now, decide the split, and fold the second i18n table into @object-ui/i18n #25922 slice S3) (feat(ui): the remaining Studio inspector strings and the package, form and editor strings move into the studio i18n namespace (#25922 slice S3) #26815)019f26ec5cdocs(qa): cli 18.0.0-next.5 pre-release database recipe scores organization-ownership-ceremony acceptance[5] (docs(qa): cli 18.0.0-next.5 pre-release database recipe scores organization-ownership-ceremony acceptance[5] #26818)8eef9a8db4test(app-shell): flowCanvasChip-11665 awaits the lazy studio zh catalogue before reading the tooltip (test(app-shell): flowCanvasChip-11665 awaits the lazy studio zh catalogue before reading the tooltip #26800)652da208f2fix(metadata-protocol): a seed that stores many seedFile values no longer starves sign-ins (yield per row, 20-row batches) (fix(metadata-protocol): a seed that stores many seedFile values no longer starves sign-ins (yield per row, 20-row batches) #26822)bff1546e63docs(upgrading): add the v18.2.0 row to the per-release table (docs(upgrading): add the v18.2.0 row to the per-release table #26830)e1bfde3601fix(core): interpolate api action targets before a registered api handler (fix(core): interpolate api action targets before a registered api handler #26826)abecc12b60test(dogfood): pin five more api-backend checklist items at their oracle's layer (test(dogfood): pin five more api-backend checklist items at their oracle's layer #26829)4c29f38447test(plugin-chatbot): the pending-count pulse pin waits for the count render, not for the button (test(plugin-chatbot): the pending-count pulse pin waits for the count render, not for the button #26742)e9e344a9ddfix(app-shell): editing an action in Studio no longer stops the object from saving (fix(app-shell): editing an action in Studio no longer stops the object from saving #26827)95f818d2edfix(spec): a translation item is named in snake_case, the locale tag goes inlocale(fix(spec): a translation item is named in snake_case, the locale tag goes inlocale#26769)dabe771824feat(formula,plugin-email,lint)!: a mail template hole takes one formatter and a literal currency code, refused at authoring and at render (feat(formula,plugin-email,lint)!: a mail template hole takes one formatter and a literal currency code, refused at authoring and at render #26799)5787df4d4btest(dogfood): pin access-security checklist clauses at the oracle's layer, slice 2 (test(dogfood): pin access-security checklist clauses at the oracle's layer, slice 2 #26823)a20824f366fix(ui): the action key inventory lists disabledReason (fix(ui): the action key inventory lists disabledReason #26859)96e7a4335cfix(runtime)!: the package draft doors refuse a query parameter they do not read (fix(runtime)!: the package draft doors refuse a query parameter they do not read #26853)20457f6f91fix(lint)!: refuse a list-view chart bound to a dataset over another object (fix(lint)!: refuse a list-view chart bound to a dataset over another object #26842)1a8b7ebef2qa(checklist): cli.migrate-plan-apply-json reads its --json sweep fromos migrate --help, not a typed subcommand list (qa(checklist): cli.migrate-plan-apply-json reads its --json sweep fromos migrate --help, not a typed subcommand list #26870)e78d7057d5test(dogfood): pin five more records-forms checklist items at the REST door (slice 3) (test(dogfood): pin five more records-forms checklist items at the REST door (slice 3) #26865)b29a88c518fix(plugin-auth)!: the set-user-manager depth cap counts the reports below the edited user (plugin-auth: set-user-manager's depth cap counts only the chain above the new manager, so linking bottom-up builds a manager chain past MAX_MANAGER_CHAIN_DEPTH (each link 200) #26775) (fix(plugin-auth)!: the set-user-manager depth cap counts the reports below the edited user (#26775) #26868)a51ba639c1docs(qa): qa-scratch-authz declares the qa namespace its object names carry (docs(qa): qa-scratch-authz declares the qa namespace its object names carry #26875)
Filed by.github/workflows/scheduled-full-run-card.yml. Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 27, 2026
Triage:
pm:on-holduntil the fix PR lands and a 4-hourly run reads it · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-27T21:10Z⛔ Not a claim.
Test UI(2/16), one test:ResourceEditPage.discardDraftLabel-12690.test.tsx:171cannot find the button丢弃草稿; the page still readsDiscard draft. Cause: feat(ui): the remaining Studio inspector strings and the package, form and editor strings move into the studio i18n namespace (#25922 slice S3) #26815 (4b59358ae3, app-shell: a published library that is 66% Console product surface — retire the 67 zero-reference exports now, decide the split, and fold the second i18n table into @object-ui/i18n #25922 slice S3) moved the editor strings into the lazily loadedstudioi18n namespace, so the zh catalogue arrives after the test reads the label. It is the same shape test(app-shell): flowCanvasChip-11665 awaits the lazy studio zh catalogue before reading the tooltip #26800 fixed forflowCanvasChip-11665. Push CI stayed green because a push run tests only the packages a merge touched.d33bfcf7, card Studio: an edit the Data, Automations or Interfaces pillar is still holding (not yet saveable) is discarded silently when the builder leaves the pillar, switches item or reloads — no confirm, no beforeunload #26705) adds the zh catalogue preload to this suite and toPackageFormDialog.validationTimingunder the widened claim 6452362760. Thedomain:ui#1seat posted ACCEPT on that head (6452738035), with 43 checks green andmergeable_state: clean.domain:uiseat.domain:devxstays as the generator filed it;area:devpathadded. ⛔ Triage does not re-run or dispatch CI.Restart-when: #26839 closes unmerged, or the next 4-hourly
CIrun (about 00:05Z) is red on a head that carries #26839. If that run is green, it closes this card.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Triage: closing as completed: the 00:05Z full run is green · triage seat ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-28T00:59Z⛔ Not a claim.
CIschedule run 40606905083 (3217fc5d, 00:09Z) is success. The 20:05Z red (thediscardDraftLabel-12690zh catalogue race from feat(ui): the remaining Studio inspector strings and the package, form and editor strings move into the studio i18n namespace (#25922 slice S3) #26815) was fixed by PR fix(app-shell): an edit a Studio pillar holds unsent guards departure like a dirty pillar #26839, merged before that run's head.showcase_task?$top=1; when that seed task is already done, acceptance[0] fails and acceptance[5] cascades (main push red 21:56Z and 22:08Z) #26952 (the Dogfoodpackaged-action-disabled-dispatch-liveseed-order flake) is a separate card and stays open.Generated by Claude Code