Repository navigation
hourly full run: red on main (Lint & Type Check) #23274
Description
os-hourly-full-run-lint-type-check — 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 (Lint & Type Check)
Swept 2026-10-13T17:26:43.679Z · run log · commit 9c7cfbf0a962ad690f1b4cbe271c95d909000d64 · conclusion failure.
Lint & Type Check 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: 4f5679c261 (run 38396454341, the last green Lint & Type Check schedule run) .. 9c7cfbf0a9 — compare
82581819b6feat(service-mailbox): the inbound-mail ingest seam — a raw RFC 822 message becomes one sys_mail_message row, associated at ingest, deduplicated, automatic mail suppressed, re-matched on request (stage 1 of connector-imap + minimal service-mailbox: shared-mailbox (forward/BCC) ingest intosys_mail_message, associated at ingest through the seam — phase 1 of #8998 inbound mail #22871) (feat(service-mailbox): the inbound-mail ingest seam — a raw RFC 822 message becomes one sys_mail_message row, associated at ingest, deduplicated, automatic mail suppressed, re-matched on request (stage 1 of #22871) #23250)5da2c0f837feat(create-objectstack): a scaffolded project installs its skills from @objectstack/skills at its spec version, never from GitHub main ([Ruling A on #22649] create-objectstack installs the skills catalog from the installed @objectstack/skills package, not from GitHub main; the scaffolded project depends on it at the spec's version #22659) (feat(create-objectstack): a scaffolded project installs its skills from @objectstack/skills at its spec version, never from GitHub main (#22659) #23248)6d7f4df3c9fix(pm): ci-failure reads aggregator roster jobs from their declared rosters, so the lint.yml verdicts rank last and point at their lanes (fix(pm): ci-failure reads aggregator roster jobs from their declared rosters, so the lint.yml verdicts rank last and point at their lanes #23253)7958bdf36dfeat(service-automation,lint,spec,verify)!: the single-brace resolver and the legacy condition path are deleted — every condition is CEL, a value-slot literal is handed on as written ([v18] retire the{var}template dialect in flow assignment slots: refuse at registration with per-spelling remedies (the C half of #11182 ruling D, on the v18 train) #19939 pass 4, S7) (feat(service-automation,lint,spec,verify)!: the single-brace resolver and the legacy condition path are deleted — every condition is CEL, a value-slot literal is handed on as written (#19939 pass 4, S7) #23252)09ef77c7d8fix(plugin-security): the permission-set echo names its runtime package, so an isDefault set records its everyone suggestion (fix(plugin-security): the permission-set echo names its runtime package, so an isDefault set records its everyone suggestion #23258)b4d573a0e8fix(spec,core): the rolling last_N_days presets close on {today} at the spec table, the save door's prescription and core's analytics preset arm (fix(spec,core): the rolling last_N_days presets close on {today} at the spec table, the save door's prescription and core's analytics preset arm #23208)c0569797a6fix(spec): tombstones for keys live in @objectstack/spec 17.7.0 name 18 as their removal version (fix(spec): tombstones for keys live in @objectstack/spec 17.7.0 name 18 as their removal version #23186)4f68ba198efeat(lint)!: every component-props finding is an error at os validate, os build and os lint (feat(lint)!: every component-props finding is an error at os validate, os build and os lint #23244)361e5f3f81test(metadata-fs): external-write-resync drives the sweep at its seam, 24 s to 3.3 s (test budget (domain:engine): 6 test file(s) over 10 s of wall in the hourly full battery (Part of #23151) #23182 row 4) (test(metadata-fs): external-write-resync drives the sweep at its seam, 24 s to 3.3 s (#23182 row 4) #23262)9543e9c636fix(metadata-protocol): the orphan adoption keeps overlays of packaged items, and the registry follows each view row it rebinds (metadata-protocol: a republish of a view container that drops a member keeps serving the dropped member's expanded view until restart #23198) (fix(metadata-protocol): the orphan adoption keeps overlays of packaged items, and the registry follows each view row it rebinds (#23198) #23264)d45d0e938afix(runtime)!: the dispatcher's read points refuse a repeated single-valued query name, as their RestServer twins do (fix(runtime)!: the dispatcher's read points refuse a repeated single-valued query name, as their RestServer twins do #23263)6c181625f9test(showcase): bring the teardown-race and approval-resume test files under the 10 s budget (test(showcase): bring the teardown-race and approval-resume test files under the 10 s budget #23273)042ef51530fix(showcase): re-land the recalc as a declared flow endpoint that writes as its caller (fix(showcase): re-land the recalc as a declared flow endpoint that writes as its caller #23277)99e944daf2docs(qa): 57 platform-checklist rows from the chore(objectui): move the console pin to objectui main (1fb1ced36243 at filing), then run every surface:browser and surface:mixed checklist item against the console built from the new pin #23104 browser pass re-pointed to the product at the pin (platform-checklist accuracy and fixture gaps from the #23104 browser pass, successor of #23121: the rows #23132 did not land (family card) #23169) (docs(qa): 57 platform-checklist rows from the #23104 browser pass re-pointed to the product at the pin (#23169) #23278)66949b7729feat(plugin-security)!: retire the four security-catalog row objects (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 8) (feat(plugin-security)!: retire the four security-catalog row objects (#15204 stage 8) #23222)bae5841bcefix(service-settings)!: the settings route family refuses a session the ADR-0069 authentication policy holds (fix(service-settings)!: the settings route family refuses a session the ADR-0069 authentication policy holds #23285)01d503432bfix(runtime)!: the notification inbox, API-key mint and share-link management domains deny an anonymous caller as their first statement (ADR-0138 D2 slice 1, ADR-0138 E2: the closed list of doors recorded in the conformance matrix, denial by domain, and D2b's publish refusal (D2, D2b) #23225) (fix(runtime)!: the notification inbox, API-key mint and share-link management domains deny an anonymous caller as their first statement (ADR-0138 D2 slice 1, #23225) #23286)b529a5c23efeat(spec)!: a page action row's url target is judged on the executor the runner runs, its name leg included (feat(spec)!: a page action row's url target is judged on the executor the runner runs, its name leg included #23289)175e8d4149docs(skills): the end state after create-objectstack installs @objectstack/skills — one pinned --copy spelling, one next.0 exception, and the 17.x to 18 skills step (docs(skills install): the end state after create-objectstack installs @objectstack/skills — one pinned spelling with --copy, one next.0 exception, and the 17→18 skills step in the upgrade guide (ruling A on #22649, second docs pass) #23275) (docs(skills): the end state after create-objectstack installs @objectstack/skills — one pinned --copy spelling, one next.0 exception, and the 17.x to 18 skills step (#23275) #23295)543b33dee6fix(metadata-protocol)!: a save or delete that names no package addresses the one package's row, and a name two packages hold is refused 409 (metadata-protocol: a package-less direct save of an item a package owns answers 200 and writes a package-less row the item read never serves; the draft save already resolves the owning package (#11087 / #22128) #23165) (fix(metadata-protocol)!: a save or delete that names no package addresses the one package's row, and a name two packages hold is refused 409 (#23165) #23290)026391d5d8test(metadata): tsc-CLI parse parity for the annotation type-check, and the file recorded as a ruled per-file budget exception (test(metadata): tsc-CLI parse parity for the annotation type-check, and the file recorded as a ruled per-file budget exception #23296)9c7cfbf0a9test(plugin-auth): bring the five scrypt-bound auth test files under the 10 s budget (test(plugin-auth): bring the five scrypt-bound auth test files under the 10 s budget #23300)
Filed by.github/workflows/scheduled-full-run-card.yml. Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 13, 2026
Diagnosis: infrastructure, not code. The checkout's full fetch died on a TLS read ·
domain:devxseat 1 ·session_012zwsLMxQBwHUYJgPyrpEvx· 2026-10-13T13:58ZReading (
node scripts/pm/ci-failure.mjs --run 38404166805, onmain6d7f4df3c9):Type Check · consumer gates(job115319264486). Its step ✨ Set up Copilot instructions #2,Checkout repository, failed duringgit fetch --no-tags --prune … +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/*. The annotations and the job log read: "error: RPC failed; curl 56 GnuTLS recv error (-24): Decryption has failed", then "N bytes of body are still expected", "fatal: early EOF" and "fatal: fetch-pack: invalid index-pack output". The checkout's own retries hit it three times.Lane verdictthen fails on gates that "did not run".TypeScript Type Checkis the roster job over those lanes, red only because a member is red.82581819b6(feat(service-mailbox): the inbound-mail ingest seam — a raw RFC 822 message becomes one sys_mail_message row, associated at ingest, deduplicated, automatic mail suppressed, re-matched on request (stage 1 of #22871) #23250),5da2c0f837(feat(create-objectstack): a scaffolded project installs its skills from @objectstack/skills at its spec version, never from GitHub main (#22659) #23248) and6d7f4df3c9(fix(pm): ci-failure reads aggregator roster jobs from their declared rosters, so the lint.yml verdicts rank last and point at their lanes #23253). None of their code was executed, because the job died before its first gate.Disposition:
actions/*except the allowlisted dispatch. So the next scheduled hourly run is the re-check.pm:on-hold). It records that fetch-depth-0 checkouts fetch about 1,236 heads and the tags on every run. A full-ref fetch over that many refs is exactly the payload this TLS read died in. A pointer is posted there as one measured instance. Its hold condition is that card's to judge.objectstack-fleet commentedon Oct 13, 2026
Second red is real, and it is this lane's: PR #23273's
.d.tsdeclaration trips dispatch-gates' scratch-dir scan ·domain:devxseat 1 ·session_012zwsLMxQBwHUYJgPyrpEvx· 2026-10-13T14:59Z38411694784on042ef51530is red, and this time it is not the checkout. LaneLint · PM dispatch-gates(job115345404875) failed its gate "PM dispatch-gates self-test", 1 of 2093 cases: "no mkdtempSync site in this tree takes a base the scan cannot read — UNRESOLVED: examples/app-showcase/types/node-shim.d.ts:30 (a base this scan cannot read: prefix: string)".Lint & Repo Gatesis red only as its roster job.6c181625f9, test budget (domain:devx): 2 test file(s) over 10 s of wall in the hourly full battery (Part of #23151) #23185, this seat's landing) declaredexport function mkdtempSync(prefix: string): string;in the showcase's node shim. The scan reads that declaration as a call site. The PR's own CI did not schedule this lane for its paths..d.tsdeclarationexport function mkdtempSync(prefix: string)as a call site, so the full battery reds on main since PR #23273 #23294 (p1). The scan must not count a.d.tsor function-signature declaration as a site, and real call sites stay judged. The declaration itself is correct and stays. This lane stops queuing other work behind it, per the main-red convention.38404166805, the checkout TLS read) stands as diagnosed in6147247363. This card closes on the next green hourly run after tooling(pm): dispatch-gates' scratch-dir scan reads a.d.tsdeclarationexport function mkdtempSync(prefix: string)as a call site, so the full battery reds on main since PR #23273 #23294 lands.node scripts/pm/ci-failure.mjs --run 38411694784listed only the roster row, and said "NONE of its members was found among this sha's check-runs". The red lane's check-run115345404875exists on that sha. The likeliest reading, not yet verified, is that a later same-name check-run on the sha (a push-event run) superseded it in the by-name grouping. It is carried to tooling(pm): dispatch-gates' scratch-dir scan reads a.d.tsdeclarationexport function mkdtempSync(prefix: string)as a call site, so the full battery reds on main since PR #23273 #23294's dev as an out-of-scope observation and is not that card's fix.objectstack-fleet commentedon Oct 13, 2026
Triage: the 14:14Z red is a different lane from 13:20Z's, and it is code, not infrastructure. Root cause read on
main; routed todomain:skills, intopm:queueTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-13T15:10Z. ⛔ Not a claim, ⛔ not a dispatch.38404166805): infrastructure, asdomain:devxseat 1 read it (6147247363). A checkout fetch died on a TLS read.38411694784, on042ef51530): the red lane isLint · PM dispatch-gates, step "Lane verdict". Its annotation reads: gate step "PM dispatch-gates self-test" failed.mainat66949b7729, withnode scripts/pm/dispatch-gates.mjs --self-test. One case fails:6c181625f9(PR test(showcase): bring the teardown-race and approval-resume test files under the 10 s budget #23273, the showcase test-budget change) added a type declaration to the showcase'snode:fsshim:export function mkdtempSync(prefix: string): string;.SCRATCH_CALL(scripts/pm/dispatch-gates.mjs:8473,/\b(?:fs\.)?(mkdtempSync|mkdirSync)\s*\(/g) matches that declaration as a call site, and cannot resolve the parameter nameprefixas a base.functiondeclaration, an ambient.d.tsline, and the shim'smkdirSyncline beside it. A pin goes with it: the shim's line is not a site, and a realmkdtempSync(prefix)call still reports UNRESOLVED.scripts/pm/**isdomain:skills(governed, so the PR waits for its approver). p1 kept: the whole-tree verdict stays red until it lands.objectstack-fleet commentedon Oct 13, 2026
Triage:
pm:queue→pm:blockedon #23294, and back todomain:devx. The fix is already dispatched there; this generated card closes on the next green hourly runTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-13T16:54Z. ⛔ Not a claim, ⛔ not a dispatch..d.tsdeclarationexport function mkdtempSync(prefix: string)as a call site, so the full battery reds on main since PR #23273 #23294 (domain:devx, p1,pm:dispatched, held byzhuangjianguo) is exactly the fix this card's diagnosis (6148727663) named: the dispatch-gates scratch-dir scan reading a.d.tsdeclaration as amkdtempSynccall site.pm:queue, a second seat could dispatch the same fix. So it waits on tooling(pm): dispatch-gates' scratch-dir scan reads a.d.tsdeclarationexport function mkdtempSync(prefix: string)as a call site, so the full battery reds on main since PR #23273 #23294, and its lane follows the carrier.PM dispatch-gateslane, at 15:12Z (bae5841bce) and 16:13Z (026391d5d8).Blocked-by: #23294
Restart-when: #23294 has merged and the next hourly Lint & Type Check is green; if it is still red, the card returns to triage with the new reading.
objectstack-fleet commentedon Oct 13, 2026
Green on the next hourly run, so this card closes ·
domain:devxseat 1 ·session_012zwsLMxQBwHUYJgPyrpEvx· 2026-10-13T18:57ZThe card's
Restart-whenis met (6150711180):.d.tsdeclarationexport function mkdtempSync(prefix: string)as a call site, so the full battery reds on main since PR #23273 #23294 merged. PR fix(pm): the scratch-dir scan does not read a declaration as a directory-creating site #23304 landed as4c54486dd7at 17:25Z. Landing record:6151272229.Lint & Type Checkis green. Run38445448652(schedule, 18:16Z, on404fc477e5, which includes the fix) finished with 14 of 14 jobs green.Lint · PM dispatch-gates, the live-tree case now reads✓ no mkdtempSync site in this tree takes a base the scan cannot read.✓ dispatch-gates self-test: 2099 cases pass.38438498939, on4c54486dd7.6147247363), with a pointer on finding(ci): fetch-depth 0 checkouts fetch ~1236 heads and ~7950 tags (main alone is 15–20× faster), and Test Core shards still turn a slow fetch into a cancelled required check — the cost #22020 budgets around #22034. It did not recur on the runs above.Not this card: the 18:13Z scheduled
Releaserun (38444963435) is still red, with ENOENT on.changeset/pre/changes.md. That is #23282, and its fix is PR #23313. It is a Tier H draft waiting on the maintainer's ruling (6152286689).