Skip to content

nightly-tiers: red on main #24473

Open
Open

Description

@github-actions

os-nightly-tiers — machine-findable marker for this generated card. ⛔ Do not delete this line: it is how the nightly finds this card instead of filing a new one every night.

nightly-tiers: red on main

Swept 2026-10-20T06:04:22.186Z · expected every 24h while this card stands (cron 29 5 * * * UTC) · next by 2026-10-21T05:29Z · run log · commit 795ff708d86b66a8d14573fa5e728fb382e3b4e5 · trigger schedule · tiers job result failure.

The Swept line above is this nightly's heartbeat, and it states the cadence that makes
「stalled」 decidable: while the tiers stay red this card is refreshed on that schedule, so a
timestamp still sitting there past the next by deadline means either the standing caller
died or the nightly went green — nothing here files or closes anything on green, so both
readings end at this card. ⛔ Do not carry a cadence over from a sibling patrol anchor: they
differ by up to 4× and each states its own.

The e2e and live test tiers — the files named *.e2e.test.* and *.live.test.* — run here
nightly on main under OS_TEST_TIERS=nightly and nowhere else (the per-PR and merge-queue
Test Core runs under queue). A red here is a real suite that no pull request will red on;
this card is the channel that sees it. Nothing is blocked by it.

⛔ The remedy is never to rename, skip or delete the failing test to make the nightly green.
Reproduce locally with OS_TEST_TIERS=nightly pnpm --filter <pkg> test, fix what it names, and
let the next nightly refresh this card.

Failing files

  • packages/cli/test/json-stdout-purity.e2e.test.ts

shard-1 — last lines of the test log

… (6698 chars elided) …
 — the handler-authored hook IS refused here (error, exit 1) — the red-first leg of #16544 �[33m 7515�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m CONTROL — the explicit body is refused here, before and after, so the intake reading is about the door �[33m 7236�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m NEGATIVE CONTROL — a handler-authored hook the family has nothing to say about still passes (exit 0) �[33m 7102�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m INTAKE — `os validate` accepts the inline action target (exit 0, valid, no invalid_type) �[33m 7497�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m PARITY — `os build` accepts the same config (it lowered before its parse all along) �[33m 7263�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m INTAKE — a nameless `functions` array entry is accepted too (the pass names it `anon_fn`; exit 0, valid) �[33m 7808�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/lint-strict-warnings.e2e.test.ts �[2m(�[22m�[2m8 tests�[22m�[2m)�[22m�[33m 81539�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ the fixture REALLY warns — ≥1 warning and 0 errors on the run under test �[33m 6922�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m without --strict the same stack exits 0 — the default is unchanged �[33m 7603�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ with --strict the same stack exits 1 — passed:false, strict:true, failing === warnings �[33m 7582�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ the console face says why — the count and the flag, and the count is the measured one �[33m 15013�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the console face without the flag exits 0 and claims no strict failure �[33m 7584�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m suggestions stay advisory under --strict �[33m 7338�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m an error still fails with and without the flag, and --strict counts the warnings on top �[33m 14757�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a clean stack exits 0 under --strict, in both faces �[33m 14730�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/lint-conversion-notices.e2e.test.ts �[2m(�[22m�[2m6 tests�[22m�[2m)�[22m�[33m 55018�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ the fixture REALLY converts — `--json` publishes the notice the run produced �[33m 7959�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ converts nothing — the field is PRESENT and EMPTY, so it tracks the run �[33m 8029�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ the human face says it too — the notice is printed, with its expiry �[33m 7804�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ the human face stays SILENT when nothing converted �[33m 7788�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m catch-all at load — `[]` honestly, because the normalize step never ran �[33m 7777�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m REGRESSION GUARD — the notice is NOT folded into `issues`, and the counts are unchanged �[33m 15652�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/build-json-undeclared-key-parity.e2e.test.ts �[2m(�[22m�[2m6 tests�[22m�[2m)�[22m�[33m 59916�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports the planted key in the payload, and the stack still builds (exit 0) �[33m 7665�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m carries the SAME undeclared-key set `os validate --json` reports on the same tree �[33m 14980�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m folds them in BESIDE the authoring-rule advisories, in the shape `os validate --json` uses �[33m 7336�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m adds NO new top-level key to the payload — this fills a declared key, it is not a new surface �[33m 7366�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m CONTROL — a clean stack reports no undeclared-key line on either face �[33m 15355�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m leaves the TEXT face saying what it always said �[33m 7203�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/lint-eval-empty-generator-refusal.e2e.test.ts �[2m(�[22m�[2m10 tests�[22m�[2m)�[22m�[33m 94777�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses on the human face, naming the flag and the empty value it was given �[33m 6984�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the --json face stays a machine face — one JSON document, nothing on stderr �[33m 7001�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m nothing is minted — the payload key set is exactly `error` �[33m 7330�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m differs from the no-flag run once the elapsed token is normalised �[33m 14470�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m both refuse: same exit code, refusal on stdout, generator never loaded �[33m 14833�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m both answer the same --json envelope: exit 1 and a lone `error` key �[33m 14934�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--eval` with the flag absent still runs the offline eval �[33m 7277�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--eval --generator <module>` still loads the generator and runs live �[33m 7364�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m an unresolvable generator path refuses exactly as it always has �[33m 7113�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a plain project lint is untouched �[33m 7464�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/starter-field-consumers.e2e.test.ts �[2m(�[22m�[2m15 tests�[22m�[2m)�[22m�[33m 179643�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/migrate-apply-refuses-before-ddl.e2e.test.ts �[2m(�[22m�[2m10 tests�[22m�[2m)�[22m�[33m 25198�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/lint-eval-json-unscorable-stack.e2e.test.ts �[2m(�[22m�[2m13 tests�[22m�[2m)�[22m�[33m 96330�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a top-level poisoned getter: stdout is JSON, the case FAILED, the cause is named �[33m 7318�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a poisoned getter BELOW the top level is caught too — the schema parse walks there �[33m 7242�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⛔ a silent swallow would be caught: the unscorable case is not scored as clean �[33m 7288�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m offline mode is untouched: exit 0 and every golden case passes �[33m 7468�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a generator that THROWS is still a generation error, not a scoring one �[33m 7252�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ every generation threw ⇒ meanScore 0 on the --json face, never 100 �[33m 7204�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m off-shape stack manifest-as-string is a SCORED case with schema errors, never a generationError �[33m 7712�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m off-shape stack objects-as-string is a SCORED case with schema errors, never a generationError �[33m 7662�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m off-shape stack objects-as-number is a SCORED case with schema errors, never a generationError �[33m 7534�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m off-shape stack objects-as-null is a SCORED case with schema errors, never a generationError �[33m 7473�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m off-shape stack nested-wrong-types is a SCORED case with schema errors, never a generationError �[33m 7187�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m off-shape stack bare-string is a SCORED case with schema errors, never a generationError �[33m 7633�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a generator that cannot be loaded still takes the generator-load JSON exit �[33m 7348�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/run-dev-cwd-tsconfig-redirect.e2e.test.ts �[2m(�[22m�[2m3 tests�[22m�[2m)�[22m�[33m 21381�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m loads its command set anyway, and says what it re-ran �[33m 7303�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m still explains itself when the pin is defeated, and refuses the rebuild remedy �[33m 6480�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m CONTROL — from the repo root nothing is redirected, so nothing is re-exec'd �[33m 7594�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/artifact-pinned-boot.e2e.test.ts �[2m(�[22m�[2m7 tests�[22m�[2m)�[22m�[33m 59315�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m boots an https:// artifact, overriding the image's OS_ARTIFACT_PATH default �[33m 10311�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m boots a file:// artifact — the volume-mount workflow �[33m 9604�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m boots unpinned, and says so rather than claiming verification �[33m 10042�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses a hash mismatch, naming expected AND actual, and exits non-zero �[33m 7608�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses an unreachable artifact instead of degrading to an empty kernel �[33m 7294�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m never prints the credential of a pre-signed URL — on the real refusal path �[33m 7004�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses an artifact built for another protocol major (acceptance #4) �[33m 7430�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/diff-usage-error-stream.e2e.test.ts �[2m(�[22m�[2m12 tests�[22m�[2m)�[22m�[33m 23496�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/refusal-renders-once.e2e.test.ts �[2m(�[22m�[2m10 tests�[22m�[2m)�[22m�[33m 75407�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-boot-diagnostics-noise-budget.e2e.test.ts �[2m(�[22m�[2m3 tests�[22m�[2m)�[22m�[33m 10394�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-runtime-assets-branding-warning.e2e.test.ts �[2m(�[22m�[2m3 tests�[22m�[2m)�[22m�[33m 30322�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m no assets/ and OS_RUNTIME_ASSETS_DIR unset: ONE line naming the app, the file, the directory and OS_RUNTIME_ASSETS_DIR; the file still 404s �[33m 9697�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: OS_RUNTIME_ASSETS_DIR names a directory holding the file — nothing printed, the file served �[33m 10356�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: assets/ beside the artifact holds the file — nothing printed, the file served �[33m 10265�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/generate-scaffold-gates.e2e.test.ts �[2m(�[22m�[2m37 tests�[22m�[2m)�[22m�[33m 308693�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-ready-degraded-boot.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 5717�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m prints ready AND the missing core service in the same output, with no unconditional tick �[33m 2697�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m leaves a healthy boot printing exactly the tick it always printed �[33m 3016�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/init-created-files-summary.e2e.test.ts �[2m(�[22m�[2m4 tests�[22m�[2m)�[22m�[33m 15276�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/create-refuses-invalid-project-name.e2e.test.ts �[2m(�[22m�[2m6 tests�[22m�[2m)�[22m�[33m 30031�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses the card's input and writes NOTHING �[33m 7516�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m accepts a valid name — the positive control for the absence check above �[33m 7453�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses a name only the COMPOSED length catches, which `os init` must keep accepting �[33m 15058�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/compile-artifact-packages.e2e.test.ts �[2m(�[22m�[2m4 tests�[22m�[2m)�[22m�[33m 31030�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m writes `manifest` and NO `packages` key �[33m 7627�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m carries both package manifests through to the written artifact, in order �[33m 7732�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m keeps the singular `manifest` beside it — retained, not replaced �[33m 7842�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m exits non-zero rather than writing an artifact in the unreserved shape �[33m 7821�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/i18n-check-platform-bucket.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[33m 38971�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports 100% and exits 0 under --strict --threshold=100 �[33m 7752�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m is the SAME invocation that failed before — the control is --include-platform �[33m 7643�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m prints the hidden-bucket hint on the console face �[33m 7941�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⛔ still gates the package that SHIPS the baseline, with no flag at all �[33m 7963�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m accepts --no-include-platform, so the third state really is three states �[33m 7664�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/migrate-plan-exits.e2e.test.ts �[2m(�[22m�[2m1 test�[22m�[2m)�[22m�[33m 4981�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m returns from a composed host stack that armed an unreleasable handle in init() �[33m 4980�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/flow-credential-literal-doors.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 31297�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os validate — LIT prints one warning per literal and still passes; DARK prints none �[33m 15748�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os lint — LIT reports one warning per literal and still passes; DARK reports none �[33m 15542�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/generate-agent-retired.e2e.test.ts �[2m(�[22m�[2m9 tests�[22m�[2m)�[22m�[33m 22950�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-boot-diagnostics.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 19497�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m prints the boot WARN a plugin logged while the banner was being assembled �[33m 9725�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m streams boot output live at --log-level debug instead of hiding it �[33m 9768�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[42m unit �[49m�[39m test/vitest-resolution-base-collapse.e2e.test.ts �[2m(�[22m�[2m13 tests�[22m�[2m)�[22m�[32m 135�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-app-runtime-hooks.e2e.test.ts �[2m(�[22m�[2m1 test�[22m�[2m)�[22m�[33m 15367�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m runs onEnable, so the declared script action has a handler �[33m 7967�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/config-miss-stdout-purity.e2e.test.ts �[2m(�[22m�[2m174 tests�[22m�[2m)�[22m�[33m 248815�[2mms�[22m�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[31m⎯⎯⎯⎯⎯⎯⎯�[39m�[1m�[41m Failed Tests 1 �[49m�[22m�[31m⎯⎯⎯⎯⎯⎯⎯�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[41m�[1m FAIL �[22m�[49m �[30m�[45m integration �[49m�[39m test/json-stdout-purity.e2e.test.ts�[2m > �[22mos migrate organization-ownership --json�[2m > �[22mstill shows the operator every boot diagnostic — on stderr
@objectstack/cli:test: �[31m�[1mAssertionError�[22m: expected '' to contain '[StandaloneStack] no compiled artifact'�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[32m- Expected�[39m
@objectstack/cli:test: �[31m+ Received�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[32m- [StandaloneStack] no compiled artifact�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[36m �[2m❯�[22m test/json-stdout-purity.e2e.test.ts:�[2m347:61�[22m�[39m
@objectstack/cli:test:     �[90m345|�[39m   it('still shows the operator every boot diagnostic — on stderr', () …
@objectstack/cli:test:     �[90m346|�[39m     �[35mconst�[39m run �[33m=�[39m �[34mrunOf�[39m()�[33m;�[39m
@objectstack/cli:test:     �[90m347|�[39m     for (const line of BOOT_DIAGNOSTICS) expect(run.stderr).toContain(…
@objectstack/cli:test:     �[90m   |�[39m                                                             �[31m^�[39m
@objectstack/cli:test:     �[90m348|�[39m   })�[33m;�[39m
@objectstack/cli:test:     �[90m349|�[39m })�[33m;�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[31m�[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯�[22m�[39m
@objectstack/cli:test: 
@objectstack/cli:test: 
@objectstack/cli:test: �[2m Test Files �[22m �[1m�[31m1 failed�[39m�[22m�[2m | �[22m�[1m�[32m41 passed�[39m�[22m�[90m (42)�[39m
@objectstack/cli:test: �[2m      Tests �[22m �[1m�[31m1 failed�[39m�[22m�[2m | �[22m�[1m�[32m551 passed�[39m�[22m�[90m (552)�[39m
@objectstack/cli:test: �[2m   Start at �[22m 05:43:40
@objectstack/cli:test: �[2m   Duration �[22m 848.14s�[2m (transform 13.30s, setup 0ms, import 27.08s, tests 2408.11s, environment 3ms)�[22m
@objectstack/cli:test: 
@objectstack/cli:test: JSON report written to /home/runner/work/objectstack/objectstack/packages/cli/.nightly-tiers/vitest-report.json
@objectstack/cli:test:  ELIFECYCLE  Test failed. See above for more details.
::error::command (/home/runner/work/objectstack/objectstack/packages/cli) /opt/hostedtoolcache/node/22.23.3/x64/bin/pnpm run test --shard=1/2 --reporter=default --reporter=json --outputFile.json=.nightly-tiers/vitest-report.json exited (1)
@objectstack/cli#test:  ERROR  command (/home/runner/work/objectstack/objectstack/packages/cli) /opt/hostedtoolcache/node/22.23.3/x64/bin/pnpm run test --shard=1/2 --reporter=default --reporter=json --outputFile.json=.nightly-tiers/vitest-report.json exited (1)

  Tasks:    61 successful, 62 total
 Cached:    0 cached, 62 total
   Time:    17m43.697s 
Summary:    /home/runner/work/objectstack/objectstack/.turbo/runs/3Kwk9o2niTDBEvLG0zc8n0L3WW9.json
 Failed:    @objectstack/cli#test

 ERROR  run failed: command  exited (1)

shard-2 — last lines of the test log

… (8213 chars elided) …
olVersion`, with no `runtime` key left �[33m 19972�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-port-readback.e2e.test.ts �[2m(�[22m�[2m16 tests�[22m�[2m)�[22m�[33m 53849�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m POSITIVE CONTROL: a real kernel-assigned boot reads back as the port runServe() returns �[33m 26887�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m THE LOAD-BEARING ARM: a child that drifts off a HELD port is REJECTED, not returned �[33m 26762�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-process-child-env.e2e.test.ts �[2m(�[22m�[2m8 tests�[22m�[2m)�[22m�[33m 79793�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m inheriting the worker env (the pre-#11267 shape): the untrusted origin is ACCEPTED �[33m 27518�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m through childEnv(): the untrusted origin is REJECTED �[33m 25856�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m THE LOAD-BEARING ARM: a child that DRIFTS off a held port is REFUSED, not probed �[33m 26404�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m src/commands/validate-json-strict-exit.e2e.test.ts �[2m(�[22m�[2m7 tests�[22m�[2m)�[22m�[33m 242746�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a config with advisories: --json --strict exits exactly as --strict does �[33m 43067�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the failing --json run still emits exactly one parseable document, carrying the cause �[33m 22319�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: a config with nothing to warn about exits 0 on BOTH faces under --strict �[33m 43571�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m conversions-only: a retiring conversion the PRODUCER applied fails --strict on BOTH faces �[33m 45343�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m conversions-only, without --strict: the same config exits 0 and still lists the conversion �[33m 22103�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: the same flow under the CANONICAL node type converts nothing and exits 0 on both faces �[33m 43802�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: without --strict, the same advisory-raising config still exits 0 under --json �[33m 22516�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/jsx-gate-manifest-notice.e2e.test.ts �[2m(�[22m�[2m43 tests�[22m�[2m)�[22m�[33m 285669�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/start-port-banner-agreement.e2e.test.ts �[2m(�[22m�[2m3 tests�[22m�[2m)�[22m�[33m 41205�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m an explicit --port beats an inherited $OS_PORT, and the banner agrees �[33m 9179�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m with no --port, an inherited $OS_PORT is still honoured and still agrees �[33m 8551�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m still agrees when the CHILD moves the port under it — the auto-shift case �[33m 23472�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/run-dev-stderr-nonblocking.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[33m 2297�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/login-json-noninteractive.e2e.test.ts �[2m(�[22m�[2m20 tests�[22m�[2m)�[22m�[33m 91471�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m logs in with both flags under --json — one record, exit 0 �[33m 12830�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m still prompts, and still succeeds, for a consumer that answers �[33m 12937�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-host-fallback-base.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[33m 5824�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/build-json-advisory-parity.e2e.test.ts �[2m(�[22m�[2m8 tests�[22m�[2m)�[22m�[33m 156508�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the planted fixture reaches the code path: exit 0, both advisories on the TEXT face �[33m 20980�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m carries the #3366 capability hint in the payload, as the `{token,message}` record validate ships �[33m 18184�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m carries the ADR-0046 doc advisory in the payload, as the issue RECORD validate ships �[33m 13795�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports the SAME sets `os validate --json` reports on the same tree, per class �[33m 26795�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m folds them in BESIDE the authoring-rule advisories — the fold added to the list, it did not replace it �[33m 11981�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m adds NO new top-level key to the payload — this fills a declared key, it is not a new surface �[33m 13016�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m CONTROL — a clean stack reports neither advisory, on either face �[33m 25606�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the ONLY residue between the two payloads is the structural advisory set — deferred to #11896, not ported �[33m 26134�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-no-artifact.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[33m 78250�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m serves an app defined only by objectstack.config.ts �[33m 16400�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m serves a config authored through defineStack(), the shape every real project has (#3887) �[33m 16235�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m serves a config with no application at all �[33m 16655�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses, and names where it looked, when there is no config and no artifact �[33m 12233�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m serves on, and says why, when the config carries an app it cannot register �[33m 16719�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/published-entry-stderr-nonblocking.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[32m 233�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-package-registry-always-on.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[33m 51205�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/hook-body-build-reach.e2e.test.ts �[2m(�[22m�[2m7 tests�[22m�[2m)�[22m�[33m 90424�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the directive reaches nothing; only inference lands (unchanged by the retirement) �[33m 12774�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m and says nothing about it — no warning, no error, exit 0 �[33m 13041�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the covered route works end to end: an explicit `body.capabilities` survives the build �[33m 12930�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m --strict-body names require(), not the free identifier `__require` �[33m 12858�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m accept behaviour is UNCHANGED: the default build still warn-and-bundles at exit 0 �[33m 13004�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m prints the recorded warning, naming the hook and the forbidden pattern �[33m 12793�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m carries the warnings in --json under `bodyExtractionWarnings` �[33m 13013�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/i18n-extract-check-hint.e2e.test.ts �[2m(�[22m�[2m6 tests�[22m�[2m)�[22m�[33m 126798�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m echoes this run's own argv with `--check` removed, flag for flag �[33m 12393�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m following the printed command makes the next --check pass (reported invocation) �[33m 37857�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m following the printed command makes the next --check pass (shell-hostile flag value) �[33m 38527�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m removes only the --check token, leaving spelling and order alone �[33m 12469�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m names a drifted bundle outside the cwd by its absolute path �[33m 12368�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m keeps the short relative form for an --out below the cwd �[33m 13174�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/i18n-extract-metadata-forms-flag.e2e.test.ts �[2m(�[22m�[2m4 tests�[22m�[2m)�[22m�[33m 76683�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m honours --no-metadata-forms under --no-objects-only (the reported defect) �[33m 12858�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m keeps the baseline out of the stack module even with --metadata-forms ON �[33m 12108�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m is unchanged under the default --objects-only, in both flag positions �[33m 26470�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m --json mirrors the file set in BOTH flag states �[33m 25231�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/validate-json-warning-parity.e2e.test.ts �[2m(�[22m�[2m3 tests�[22m�[2m)�[22m�[33m 77135�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m bare: all four structural advisories at once (the card's measurement) �[33m 26227�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m mixed: a registry advisory (structured) beside a structural one (string) �[33m 25499�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: a config with nothing to warn about is empty on BOTH faces �[33m 25398�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/build-package-docs-attachment.e2e.test.ts �[2m(�[22m�[2m4 tests�[22m�[2m)�[22m�[33m 51872�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m attaches to packages[i].manifest.docs and ⛔ not to the artifact top level �[33m 12263�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m [#22190] keeps the flat doc on the top level when the manifest id names no package — no guess �[33m 13317�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports the whole collection on the step line, package directories named �[33m 13192�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a single-package project keeps its flat docs at the top level, with no packages[] invented �[33m 13087�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/start-signal-forwarding.e2e.test.ts �[2m(�[22m�[2m4 tests�[22m�[2m)�[22m�[33m 93597�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os start: SIGTERM to the parent leaves no child process and a free port �[33m 23772�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os dev (control): SIGTERM to the parent leaves no child process and a free port �[33m 23015�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os start: SIGINT to the parent leaves no child process and a free port �[33m 23517�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os dev (control): SIGINT to the parent leaves no child process and a free port �[33m 23290�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/migrate-unloadable-host-config-exit.e2e.test.ts �[2m(�[22m�[2m12 tests�[22m�[2m)�[22m�[33m 86850�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-organizations-mount-failure.e2e.test.ts �[2m(�[22m�[2m4 tests�[22m�[2m)�[22m�[33m 54581�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m refuses to boot with the ADR-0093 D5 "could not be loaded" diagnosis �[33m 12635�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m boots degraded when the operator explicitly sets OS_ALLOW_DEGRADED_TENANCY=1 �[33m 16694�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m surfaces the plugin's own error verbatim and exits, without the absent-package wording �[33m 12634�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m still exits 1 when OS_ALLOW_DEGRADED_TENANCY=1 is set — the hatch must not swallow a refusal �[33m 12609�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-organizations-host-resolution.e2e.test.ts �[2m(�[22m�[2m3 tests�[22m�[2m)�[22m�[33m 42197�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m boots a walled posture with the package installed in the APP, not the framework �[33m 16678�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m still refuses to boot a walled posture when the app does not ship the package �[33m 12785�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses when the package is reachable only through NODE_PATH — the pnpm shim shape (#4719) �[33m 12726�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/create-example-retired.e2e.test.ts �[2m(�[22m�[2m11 tests�[22m�[2m)�[22m�[33m 51671�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/build-docs-step-count.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[33m 73434�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ABSENT `src/docs/`: the step line reads `0 collected`, and the artifact carries no docs �[33m 13337�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m EMPTY `src/docs/`: also `0 collected` — a present-but-empty directory is not a collection �[33m 12869�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m TWO docs: the step line reads `2 collected` — the other end of the pair �[33m 12810�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the three runs are DISTINGUISHABLE — the defect was that they were not �[33m 21170�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--json` prints no step line at all and stays one JSON document �[33m 13228�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/migrate-exit-code.e2e.test.ts �[2m(�[22m�[2m5 tests�[22m�[2m)�[22m�[33m 62931�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports a boot failure as exit 1, not as a clean 0 �[33m 12751�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-organization-record-page.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 34344�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m an app with its own sys_organization default boots, and its page is the single default �[33m 17162�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: without the app page, plugin-auth's page serves as before �[33m 17171�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/generate-object-namespace-prefix.e2e.test.ts �[2m(�[22m�[2m7 tests�[22m�[2m)�[22m�[33m 110740�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/lint-generator-requires-eval.e2e.test.ts �[2m(�[22m�[2m7 tests�[22m�[2m)�[22m�[33m 88598�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses on the human face, naming the flag it requires �[33m 12539�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the --json face stays a machine face — one JSON document, nothing on stderr �[33m 12738�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m nothing is minted — the payload key set is exactly `error` �[33m 12770�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m is judged on the flag being TYPED, not on the path resolving �[33m 12287�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--eval --generator` still loads the generator and runs live �[33m 13006�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m offline `--eval` with no generator is untouched �[33m 12474�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a plain project lint is untouched �[33m 12776�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/generate-schema-retired.e2e.test.ts �[2m(�[22m�[2m10 tests�[22m�[2m)�[22m�[33m 63260�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/requires-retired-capability.e2e.test.ts �[2m(�[22m�[2m3 tests�[22m�[2m)�[22m�[33m 26095�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os validate --json: STACK_CAPABILITY_UNKNOWN, exit 1 — the retired token carries the prescription, the typo keeps the typo hint �[33m 13036�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os build --json: STACK_CAPABILITY_UNKNOWN, exit 1 — the retired token carries the prescription, the typo keeps the typo hint �[33m 13049�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/invocation-loudness.e2e.test.ts �[2m(�[22m�[2m11 tests�[22m�[2m)�[22m�[33m 40022�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/validate-top-level-strict.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 26213�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m exits non-zero WITHOUT --strict, naming the key and the near-miss �[33m 13215�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: the identical stack with the key spelled `flows` exits 0 �[33m 12990�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/qa-empty-glob-exit-code.e2e.test.ts �[2m(�[22m�[2m6 tests�[22m�[2m)�[22m�[33m 37767�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m states the posture in --help �[33m 12509�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/rule-line-explain-pointer.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 20081�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os validate �[33m 10717�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os build �[33m 9358�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/generate-scaffolds-reach-stack.e2e.test.ts �[2m(�[22m�[2m11 tests�[22m�[2m)�[22m�[33m 123730�[2mms�[22m�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[2m Test Files �[22m �[1m�[32m41 passed�[39m�[22m�[90m (41)�[39m
@objectstack/cli:test: �[2m      Tests �[22m �[1m�[32m327 passed�[39m�[22m�[90m (327)�[39m
@objectstack/cli:test: �[2m   Start at �[22m 05:46:03
@objectstack/cli:test: �[2m   Duration �[22m 1069.65s�[2m (transform 17.35s, setup 0ms, import 28.34s, tests 3114.39s, environment 6ms)�[22m
@objectstack/cli:test: 
@objectstack/cli:test: JSON report written to /home/runner/work/objectstack/objectstack/packages/cli/.nightly-tiers/vitest-report.json

  Tasks:    62 successful, 62 total
 Cached:    0 cached, 62 total
   Time:    23m41.359s 
Summary:    /home/runner/work/objectstack/objectstack/.turbo/runs/3KwktWcmdD6xtqsUFPKD8yXx1EZ.json


Filed by .github/workflows/test-nightly-tiers.yml. Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 19, 2026

    @objectstack-fleet
    Contributor

    Triage reading: cured on main by #24455, pending the next nightly · pm:on-hold · area:devpath · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-19T07:01Z

    Triage seat (objectstack-wide, seat post #6015). ⛔ Not a claim, ⛔ not a dispatch. The grade stays as generated (p1, domain:devx).

    • What went red. The nightly ran on ec951e29e4. The one failing file is packages/cli/test/create-refuses-invalid-project-name.e2e.test.ts, the os init leg: the exit code was 2 where 0 was expected.
      • On that commit, init ran <pm> install in a tmpdir() scaffold with no packageManager pin.
      • So under Corepack it resolved pnpm@latest from the public registry, and the leg failed on the registry, not on the name rule.
    • The fix is already on main. test(cli): tmpdir fixtures that run pnpm reach no registry (dev-no-watch pin, doctor readers, init leg) #24455 (83e31cd402, 2026-10-19T05:32Z) added --no-install to that leg. The test comment at :183–:190 on origin/main fb9c22aa09 records why.
      • git merge-base --is-ancestor 83e31cd402 ec951e29e4 is false: the nightly ran three minutes before the fix landed.
    • What closes this card. The next nightly is the card's own next by slot (cron 29 5 * * * UTC, tomorrow).
      • If it is green, this card is not refreshed. The domain:devx seat closes it as completed, citing that run.
      • If the same file reds again, the reading is wrong. Lift pm:on-hold and re-queue at p1.
    • ⛔ Nothing to dispatch now. A claim would only re-do test(cli): tmpdir fixtures that run pnpm reach no registry (dev-no-watch pin, doctor readers, init leg) #24455.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:devxpm:on-holdpriority:p1High: required for production / M2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions