Repository navigation
4-hourly full run: red on main (CI) #26234
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-26T16:28:55.396Z · run log · commit f143cd8809aa2f26e2a2d9bccd4a9b17ad51c07a · 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: 95294be389 (run 40330891455, the last green CI schedule run) .. f143cd8809 — compare
48e84a90affix(objectql,types,rest)!: a database NOT NULL refusal on a declared field is the record validator's ValidationError at every door (fix(objectql,types,rest)!: a database NOT NULL refusal on a declared field is the record validator's ValidationError at every door #26026)edba9d2386pm-dispatch: a project seat creates its own hourly patrol routine, bound to its session (pm-dispatch: a project seat creates its own hourly patrol routine, bound to its session #26067)2445f2a01adocs(qa): identity-auth — 23 ledger edits from the 18.2.0 release sweep (docs(qa): identity-auth — 23 ledger edits from the 18.2.0 release sweep #26117)d23d897ff9docs(qa): automation ledger — 23 checklist-accuracy findings of the 18.2.0 sweep, and the retired objectui pin wording (docs(qa): automation ledger — 23 checklist-accuracy findings of the 18.2.0 sweep, and the retired objectui pin wording #26118)3a3751bb9cdocs(qa): api-backend checklist says what each pin asserts and at which layer (18.2.0 sweep, 28 lines) (docs(qa): api-backend checklist says what each pin asserts and at which layer (18.2.0 sweep, 28 lines) #26115)40bba68cfedocs(qa): approvals ledger — 19 checklist-accuracy edits from the 18.2.0 sweep (docs(qa): approvals ledger — 19 checklist-accuracy edits from the 18.2.0 sweep #26116)d1ea2363f6docs(qa): attachments-storage checklist — apply the 18.2.0 sweep's 18 ledger findings (qa(checklist): attachments-storage — 18 ledger edits from the 18.2.0 release sweep (#25807) #25839) (docs(qa): attachments-storage checklist — apply the 18.2.0 sweep's 18 ledger findings (#25839) #26124)bd28708acbrefactor(driver-sql): move resolveHashShadowKeys' body out of sql-driver.ts into sql-driver-introspection.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 7) (refactor(driver-sql): move resolveHashShadowKeys' body out of sql-driver.ts into sql-driver-introspection.ts (#25521 cut 7) #26114)ada3cbb02achore(ui): re-pin the console eager-closure ceiling after the spec shared chunks (chore(ui): re-pin the console eager-closure ceiling after the spec shared chunks #26127)1382a23149docs(qa): records-forms checklist — 60 ledger lines from the 18.2.0 sweep runs (docs(qa): records-forms checklist — 60 ledger lines from the 18.2.0 sweep runs #26125)b36f1b4f98docs(qa): platform-core ledger edits from the 18.2.0 sweep run records (docs(qa): platform-core ledger edits from the 18.2.0 sweep run records #26119)a335f1defbdevx(sdui): one manifest record per ui registry package, so ui PRs on different packages stop conflicting (devx(sdui): one manifest record per ui registry package, so ui PRs on different packages stop conflicting #26120)a9253a2086test(objectql): load the package entry with hook-run-as.test.ts, not inside its case (test(objectql): load the package entry with hook-run-as.test.ts, not inside its case #26132)7d7879b618docs(readme): slim the root README to a reader's page — contributor detail to CONTRIBUTING.md, stale lines out, ui/ named MIT (docs(readme): slim the root README to a reader's page — contributor detail to CONTRIBUTING.md, stale lines out, ui/ named MIT #26148)a2dfaeb912chore(ui-tooling): drop package tsconfig keys that restate the root's value (slice 6 of tooling surface: 15 check:*/census:* scripts no workflow runs, five censuses only their own tests reach, a 759-line wrapper around pnpm dedupe --check, 23 copy-pasted vite configs (UMD forces inlineDynamicImports), 94 tsconfigs, dead turbo inputs #25920) (chore(ui-tooling): drop package tsconfig keys that restate the root's value (slice 6 of #25920) #26139)601c773844fix(app-shell): draw the draft preview failure and empty panes with the shared view states (fix(app-shell): draw the draft preview failure and empty panes with the shared view states #26135)d9e6ac2f07fix(storage)!: a file its record lets go keeps that record's read rule (fix(storage)!: a file its record lets go keeps that record's read rule #26144)3993793dc8fix(plugin-form): report collapsible / collapsed beside group only when true (fix(plugin-form): report collapsible / collapsed beside group only when true #26042)07bdecdc0cfeat(plugin-security): translate the built-in permission sets' labels (feat(plugin-security): translate the built-in permission sets' labels #26145)4391c5067ffix(plugin-dashboard): a compareTo KPI tile shows its number when the reader picks All time (fix(plugin-dashboard): a compareTo KPI tile shows its number when the reader picks All time #26027)d00215f68drefactor(app-shell): move ObjectView's module-level helpers into sibling modules (slice 1) (refactor(app-shell): move ObjectView's module-level helpers into sibling modules (slice 1) #26152)d98d3e2ba5fix(plugin-detail): record page read mode wraps text values; highlighted dates keep their day (fix(plugin-detail): record page read mode wraps text values; highlighted dates keep their day #25998)365fe5ecc4fix(release): the stable cut folds each prerelease section into the stable section instead of copying it (fix(release): the stable cut folds each prerelease section into the stable section instead of copying it #26156)c7aa9cde24fix(i18n): zh sign-out menu item reads 退出登录, not 注销 (fix(i18n): zh sign-out menu item reads 退出登录, not 注销 #26045)83a26c38d0feat(plugin-auth): signed-out invitation preview read, an ADR-0138 D2 class-2-shaped door (feat(plugin-auth): signed-out invitation preview read, an ADR-0138 D2 class-2-shaped door #26151)f79b9d5b20refactor(spec-liveness): the renderer's ledger evidence is in-repo under ui/; objectui becomes a retired realm that fails (refactor(spec-liveness): the renderer's ledger evidence is in-repo under ui/; objectui becomes a retired realm that fails #26150)21075ce614feat(cli,cloud-connection): OS_CONSOLE_MAP_STYLE_URL names the deployment's default map style (feat(cli,cloud-connection): OS_CONSOLE_MAP_STYLE_URL names the deployment's default map style #26162)dfaad4da85fix(fields): lookup subtitle no longer repeats the referenced object's name field (fix(fields): lookup subtitle no longer repeats the referenced object's name field #26062)6d9d3ef857feat(spec,automation,app-shell)!: a flow screen field typedfilecollects an upload, and the run resumes with the uploaded file's id (feat(spec,automation,app-shell)!: a flow screen field typedfilecollects an upload, and the run resumes with the uploaded file's id #26134)dbfb52a662refactor(objectql): move execute and the transaction-routing bodies out of engine.ts into engine-execute-transactions.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 7) (refactor(objectql): move execute and the transaction-routing bodies out of engine.ts into engine-execute-transactions.ts (#25522 cut 7) #26160)66769910bdfix(plugin-grid): fill a bulk confirmText's {{ count }} hole with the run's record count (fix(plugin-grid): fill a bulk confirmText's {{ count }} hole with the run's record count #26030)7111e14ac9feat(ui): the Studio permission-set form offers the field permissionwhen— patch round of feat(spec,security): a field permission entry can carry a row condition (when) on its edit vote (#25866) #25980 (feat(spec/plugin-security): a field permission entry can carry a row condition, so a set's field lock applies only on the rows it names #25866) (feat(ui): the Studio permission-set form offers the field permissionwhen— patch round of #25980 (#25866) #26010)9993165bb9feat(spec)!: refuse an SLA escalateTo that no approver acts under, at registration (feat(spec)!: refuse an SLA escalateTo that no approver acts under, at registration #26154)fbb75998bafix(app-shell): draw the app no-access screen with the shared DataEmptyState (fix(app-shell): draw the app no-access screen with the shared DataEmptyState #26166)5e113b395afeat(spec,plugin-security,lint): sharing.controlledByParent.ownerMayEdit — a detail row's owner updates it with read on the master (feat(spec,plugin-security,lint): sharing.controlledByParent.ownerMayEdit — a detail row's owner updates it with read on the master #26005)b97fe92101ci(ui-coverage): run objectui's coverage lane nightly from the root, thresholds unchanged (ci(ui-coverage): run objectui's coverage lane nightly from the root, thresholds unchanged #26003)6b9355299dfix(cli): keep the git-ignored tmp/ out of the vitest tier walk (fix(cli): keep the git-ignored tmp/ out of the vitest tier walk #26176)51cc7f9603refactor(driver-sql): move applyIndexDriftOp and restoreBareIndexAfterFailedTighten 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 8) (refactor(driver-sql): move applyIndexDriftOp and restoreBareIndexAfterFailedTighten into sql-driver-schema-sync.ts (#25521 cut 8) #26169)3f970b934atest(cli): declare measured budgets on the generate-refuses and build spawn files (test budget (domain:cli): 119 test file(s) over 10 s of wall in the hourly full battery (Part of #23151) #23181 slice 11) (test(cli): declare measured budgets on the generate-refuses and build spawn files (#23181 slice 11) #26174)e6dfeb08fdtest(verify): pay the first boot load at collection and share one boot per configuration in two harness suites (test(verify): pay the first boot load at collection and share one boot per configuration in two harness suites #26175)1af2cea684fix(runtime,types)!: a NOT NULL refusal on a drifted column answers RestServer's body at the dispatcher and actions doors (fix(runtime,types)!: a NOT NULL refusal on a drifted column answers RestServer's body at the dispatcher and actions doors #26171)fa33378401qa(checklist): write-feedback acceptance[1] states the record-level vs singleton / named-automation boundary (qa(checklist): write-feedback acceptance[1] states the record-level vs singleton / named-automation boundary #26185)43b4715666docs(github): add issue forms that ask for the ObjectOS edition (docs(github): add issue forms that ask for the ObjectOS edition #26173)67ea3342fbrefactor(devx): move the four inline ESLint rule plugins into a private workspace package (refactor(devx): move the four inline ESLint rule plugins into a private workspace package #26177)e1aef17e2dci(release): the hotcrm downstream smoke resolves hotcrm's latest release tag at run time (ci(release): the hotcrm downstream smoke resolves hotcrm's latest release tag at run time #25965)054652bfa2fix(app-shell,react,plugin-detail): fold an override-only admin's approval levers into one menu and draw Recall once (fix(app-shell,react,plugin-detail): fold an override-only admin's approval levers into one menu and draw Recall once #26053)f143cd8809fix(console): keep the build-identity define out of the other ui test projects (fix(console): keep the build-identity define out of the other ui test projects #26197)
Filed by.github/workflows/scheduled-full-run-card.yml. Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 26, 2026
Triage: first grade —
bug·priority:p1·domain:ui(generated asdomain:devx; the failing tests are app-shell's) ·area:devpath·pm:blocked· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T16:58Z⛔ Not a claim, ⛔ not a dispatch.
Object.keys(ObjectSchema.shape)at 47, and feat(spec,plugin-security,lint): sharing.controlledByParent.ownerMayEdit — a detail row's owner updates it with read on the master #26005 (5e113b395a) adoptedsharingas the 48th top-level key. A deterministicAssertionError: expected 48 to be 47, not a flake.Test UI6/16 and 12/16 are the only red jobs (run 40356103024).domain:ui, dispatched).Blocked-by: #26231
Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Unlock scan: fix landed →
pm:on-holduntil the next 4-hourly run · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T17:54Z⛔ Not a claim.
Restart-when: the next
CIschedule run (20:00Z) is red again onTest UI. If it is green, this card closes.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Closed: main is green · triage seat ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T20:54Z⛔ Not a claim.
CIschedule run at 2026-10-26T20:04Z (run 40392443783,69aa630b9f) issuccess. All 16Test UIshards are green, including 6/16 and 12/16, which were red at 16:07Z.Lint & Type Checkat 2026-10-26T20:17Z is alsosuccess.completed.Generated by Claude Code