Skip to content

nightly-tiers: red on main #30316

Closed
Closed

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-11-05T05:56:19.752Z · expected every 24h while this card stands (cron 29 5 * * * UTC) · next by 2026-11-06T05:29Z · run log · commit a26abbc67350f07b4b671513d6565e11cf60ad94 · 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

  • examples/app-showcase/test/console-live-specs.live.test.ts

shard-1 — last lines of the test log

… (16667 chars elided) …
[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m differs from the no-flag run once the elapsed token is normalised �[33m 17865�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m both refuse: same exit code, refusal on stdout, generator never loaded �[33m 17350�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m both answer the same --json envelope: exit 1 and a lone `error` key �[33m 17658�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--eval` with the flag absent still runs the offline eval �[33m 8989�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--eval --generator <module>` still loads the generator and runs live �[33m 8662�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m an unresolvable generator path refuses exactly as it always has �[33m 8898�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a plain project lint is untouched �[33m 8434�[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 216743�[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 115650�[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 8834�[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 9131�[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 9017�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m offline mode is untouched: exit 0 and every golden case passes �[33m 9081�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a generator that THROWS is still a generation error, not a scoring one �[33m 8628�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⭐ every generation threw ⇒ meanScore 0 on the --json face, never 100 �[33m 8293�[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 9110�[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 9063�[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 8872�[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 9261�[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 8843�[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 8661�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a generator that cannot be loaded still takes the generator-load JSON exit �[33m 8844�[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 28611�[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 88248�[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 9527�[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 4434�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m leaves a healthy boot printing exactly the tick it always printed �[33m 5084�[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 119169�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m boots an https:// artifact, overriding the image's OS_ARTIFACT_PATH default �[33m 21211�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m boots a file:// artifact — the volume-mount workflow �[33m 18698�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m boots unpinned, and says so rather than claiming verification �[33m 18261�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses a hash mismatch, naming expected AND actual, and exits non-zero �[33m 15576�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses an unreachable artifact instead of degrading to an empty kernel �[33m 14967�[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 14936�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses an artifact built for another protocol major (acceptance #4) �[33m 15495�[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 26852�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m scans a non-empty family — refuse to reason from zero �[33m 411�[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 13299�[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 34121�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses the card's input and writes NOTHING �[33m 8694�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m accepts a valid name — the positive control for the absence check above �[33m 8220�[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 17203�[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 44938�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports 100% and exits 0 under --strict --threshold=100 �[33m 8988�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m is the SAME invocation that failed before — the control is --include-platform �[33m 9009�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m prints the hidden-bucket hint on the console face �[33m 8873�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m ⛔ still gates the package that SHIPS the baseline, with no flag at all �[33m 8909�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m accepts --no-include-platform, so the third state really is three states �[33m 9151�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/generate-scaffold-gates.e2e.test.ts �[2m(�[22m�[2m45 tests�[22m�[2m)�[22m�[33m 448054�[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 25364�[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 24104�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m prints the boot WARN a plugin logged while the banner was being assembled �[33m 12173�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m streams boot output live at --log-level debug instead of hiding it �[33m 11922�[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 177�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/build-seed-files-artifact.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 30611�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `os build` writes the bytes beside the reference, and a deployment that loads the artifact reads them �[33m 17400�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m both commands refuse a path that names no file, saying where the reference sits �[33m 13203�[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 261921�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m is TEN faces, and names the two a static reading loses �[33m 431�[2mms�[22m�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[2m Test Files �[22m �[1m�[32m29 passed�[39m�[22m�[90m (29)�[39m
@objectstack/cli:test: �[2m      Tests �[22m �[1m�[32m516 passed�[39m�[22m�[90m (516)�[39m
@objectstack/cli:test: �[2m   Start at �[22m 05:40:45
@objectstack/cli:test: �[2m   Duration �[22m 904.24s�[2m (transform 19.86s, setup 0ms, import 40.72s, tests 2467.89s, environment 5ms)�[22m
@objectstack/cli:test: 
@objectstack/cli:test: JSON report written to /home/runner/work/objectstack/objectstack/packages/cli/.nightly-tiers/vitest-report.json

  Tasks:    64 successful, 64 total
 Cached:    0 cached, 64 total
   Time:    21m14.545s 
Summary:    /home/runner/work/objectstack/objectstack/.turbo/runs/3LfvtIyWZpYgjhpNlABfddAyq2L.json


shard-2 — last lines of the test log

… (16315 chars elided) …
/cli:test:      �[33m�[2m✓�[22m�[39m loads its command set anyway, and says what it re-ran �[33m 16257�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m still explains itself when the pin is defeated, and refuses the rebuild remedy �[33m 14524�[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 15229�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/i18n-extract-key-count.e2e.test.ts �[2m(�[22m�[2m8 tests�[22m�[2m)�[22m�[33m 121169�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m every printed file count is that file's own leaf count (default) �[33m 8996�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m every printed file count is that file's own leaf count (no-metadata-forms) �[33m 8788�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m every printed file count is that file's own leaf count (no-objects-only) �[33m 9030�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m every printed file count is that file's own leaf count (neither) �[33m 8531�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m summarises the emitted keys as a partition of the skeleton, in both sub-tree modes �[33m 34697�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m --json counts describe the payload printed beside them, in both sub-tree modes �[33m 25699�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m names a flag-suppressed module and its size, without adding it in �[33m 8220�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m writes no module for an empty sub-tree, and announces none �[33m 17198�[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 69815�[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 8810�[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 16934�[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 8649�[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 8831�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m CONTROL — a clean stack reports no undeclared-key line on either face �[33m 17650�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m leaves the TEXT face saying what it always said �[33m 8933�[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 35942�[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 11912�[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 11573�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: assets/ beside the artifact holds the file — nothing printed, the file served �[33m 12452�[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 38479�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m refuses to boot with the ADR-0093 D5 "could not be loaded" diagnosis �[33m 8708�[2mms�[22m�[39m
@objectstack/cli:test:        �[33m�[2m✓�[22m�[39m boots degraded when the operator explicitly sets OS_ALLOW_DEGRADED_TENANCY=1 �[33m 11964�[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 8978�[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 8820�[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 34410�[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 25083�[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 12447�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: without the app page, plugin-auth's page serves as before �[33m 12628�[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 21827�[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 49452�[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 8925�[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 8762�[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 8467�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the three runs are DISTINGUISHABLE — the defect was that they were not �[33m 14644�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--json` prints no step line at all and stays one JSON document �[33m 8646�[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 34772�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m writes `manifest` and NO `packages` key �[33m 8567�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m carries both package manifests through to the written artifact, in order �[33m 8797�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m keeps the singular `manifest` beside it — retained, not replaced �[33m 8558�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m exits non-zero rather than writing an artifact in the unreserved shape �[33m 8839�[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 35302�[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 17861�[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 17431�[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 9510�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m returns from a composed host stack that armed an unreleasable handle in init() �[33m 9507�[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 74676�[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 17231�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m exits non-zero WITHOUT --strict, naming the key and the near-miss �[33m 8906�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: the identical stack with the key spelled `flows` exits 0 �[33m 8314�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/connector-credential-literal-doors.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 34588�[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 17626�[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 16955�[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 26980�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m runs onEnable, so the declared script action has a handler �[33m 18372�[2mms�[22m�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[2m Test Files �[22m �[1m�[32m29 passed�[39m�[22m�[90m (29)�[39m
@objectstack/cli:test: �[2m      Tests �[22m �[1m�[32m225 passed�[39m�[22m�[90m (225)�[39m
@objectstack/cli:test: �[2m   Start at �[22m 05:40:23
@objectstack/cli:test: �[2m   Duration �[22m 584.81s�[2m (transform 26.72s, setup 0ms, import 45.44s, tests 1692.64s, environment 5ms)�[22m
@objectstack/cli:test: 
@objectstack/cli:test: JSON report written to /home/runner/work/objectstack/objectstack/packages/cli/.nightly-tiers/vitest-report.json

  Tasks:    64 successful, 64 total
 Cached:    0 cached, 64 total
   Time:    15m47.995s 
Summary:    /home/runner/work/objectstack/objectstack/.turbo/runs/3LfvCNYVYepFlCOucNuoZcwnGrR.json


shard-3 — last lines of the test log

… (14652 chars elided) …
y the --check token, leaving spelling and order alone �[33m 8667�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m names a drifted bundle outside the cwd by its absolute path �[33m 8919�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m keeps the short relative form for an --out below the cwd �[33m 8983�[2mms�[22m�[39m
@objectstack/cli:test: Sourcemap for "/home/runner/work/objectstack/objectstack/packages/spec/dist/kernel/index.mjs" points to missing source files
@objectstack/cli:test: Sourcemap for "/home/runner/work/objectstack/objectstack/packages/spec/dist/chunk-FZMTUNHK.mjs" points to missing source files
@objectstack/cli:test: Sourcemap for "/home/runner/work/objectstack/objectstack/packages/spec/dist/chunk-ZJA7ERIM.mjs" points to missing source files
@objectstack/cli:test: Sourcemap for "/home/runner/work/objectstack/objectstack/packages/spec/dist/chunk-OELP36X4.mjs" points to missing source files
@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 52700�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m honours --no-metadata-forms under --no-objects-only (the reported defect) �[33m 8749�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m keeps the baseline out of the stack module even with --metadata-forms ON �[33m 8854�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m is unchanged under the default --objects-only, in both flag positions �[33m 17394�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m --json mirrors the file set in BOTH flag states �[33m 17691�[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 53298�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m bare: all four structural advisories at once (the card's measurement) �[33m 17729�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m mixed: a registry advisory (structured) beside a structural one (string) �[33m 17705�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m control: a config with nothing to warn about is empty on BOTH faces �[33m 17856�[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 36112�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m attaches to packages[i].manifest.docs and ⛔ not to the artifact top level �[33m 9344�[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 8923�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports the whole collection on the step line, package directories named �[33m 9116�[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 8719�[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 60316�[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 29370�[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 11705�[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 8781�[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 8874�[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 112271�[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 28603�[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 27815�[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 28584�[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 27267�[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 38911�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m reports a boot failure as exit 1, not as a clean 0 �[33m 9069�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/serve-config-boot-seed-files.e2e.test.ts �[2m(�[22m�[2m1 test�[22m�[2m)�[22m�[33m 13112�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m each seeded version holds a stored file of its own, and the file door serves the fixture's bytes �[33m 12938�[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 62430�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m refuses on the human face, naming the flag it requires �[33m 8826�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m the --json face stays a machine face — one JSON document, nothing on stderr �[33m 8913�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m nothing is minted — the payload key set is exactly `error` �[33m 8892�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m is judged on the flag being TYPED, not on the path resolving �[33m 9240�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `--eval --generator` still loads the generator and runs live �[33m 8979�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m offline `--eval` with no generator is untouched �[33m 8739�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m a plain project lint is untouched �[33m 8832�[2mms�[22m�[39m
@objectstack/cli:test: Sourcemap for "/home/runner/work/objectstack/objectstack/packages/spec/dist/index.mjs" points to missing source files
@objectstack/cli:test: Sourcemap for "/home/runner/work/objectstack/objectstack/packages/spec/dist/chunk-WCF55HIQ.mjs" points to missing source files
@objectstack/cli:test: Sourcemap for "/home/runner/work/objectstack/objectstack/packages/spec/dist/system/index.mjs" points to missing source files
@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 43734�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/invocation-loudness.e2e.test.ts �[2m(�[22m�[2m14 tests�[22m�[2m)�[22m�[33m 63959�[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 17027�[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 8406�[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 8612�[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 26315�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m states the posture in --help �[33m 8791�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/build-connector-spec-file-artifact.e2e.test.ts �[2m(�[22m�[2m2 tests�[22m�[2m)�[22m�[33m 36559�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m `os build` writes the document in place of the path, keeping the other keys; `os validate` accepts the same stack �[33m 18613�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m both commands refuse a path that names no file, saying where the reference sits �[33m 17937�[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 16360�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os validate �[33m 8905�[2mms�[22m�[39m
@objectstack/cli:test:      �[33m�[2m✓�[22m�[39m os build �[33m 7449�[2mms�[22m�[39m
@objectstack/cli:test:  �[32m✓�[39m �[30m�[45m integration �[49m�[39m test/generate-scaffolds-reach-stack.e2e.test.ts �[2m(�[22m�[2m13 tests�[22m�[2m)�[22m�[33m 93831�[2mms�[22m�[39m
@objectstack/cli:test: 
@objectstack/cli:test: �[2m Test Files �[22m �[1m�[32m29 passed�[39m�[22m�[90m (29)�[39m
@objectstack/cli:test: �[2m      Tests �[22m �[1m�[32m192 passed�[39m�[22m�[90m (192)�[39m
@objectstack/cli:test: �[2m   Start at �[22m 05:40:45
@objectstack/cli:test: �[2m   Duration �[22m 464.18s�[2m (transform 5.34s, setup 0ms, import 9.03s, tests 1307.71s, environment 4ms)�[22m
@objectstack/cli:test: 
@objectstack/cli:test: JSON report written to /home/runner/work/objectstack/objectstack/packages/cli/.nightly-tiers/vitest-report.json

  Tasks:    64 successful, 64 total
 Cached:    0 cached, 64 total
   Time:    14m4.387s 
Summary:    /home/runner/work/objectstack/objectstack/.turbo/runs/3LfuzzFkGAgtIyCMdnAsX01z7WL.json


shard-4 — last lines of the test log

… (17135 chars elided) …
1 › SUM/COUNT roll-up is computed server-side on atomic create (267ms)
@objectstack/example-showcase:test:   ✓  23 [chromium] › e2e/live/summary-rollup.spec.ts:42:1 › roll-up recomputes when a child is added then deleted (201ms)
@objectstack/example-showcase:test:   ✓  52 [chromium] › e2e/showcase-smoke.spec.ts:159:7 › surface renders cleanly: Command Center (JSX) (1.8s)
@objectstack/example-showcase:test:   ✓  53 [chromium] › e2e/showcase-smoke.spec.ts:159:7 › surface renders cleanly: CRM Workbench (2.1s)
@objectstack/example-showcase:test:   ✓  24 [chromium] › e2e/live/user-filters.spec.ts:24:3 › ADR-0053 interface mode — Task Triage tabs element › filter tabs render exclusively, persist to URL, and restore on reload (5.1s)
@objectstack/example-showcase:test:   ✓  54 [chromium] › e2e/showcase-smoke.spec.ts:159:7 › surface renders cleanly: Task Desk (2.2s)
@objectstack/example-showcase:test:   ✓  55 [chromium] › e2e/showcase-smoke.spec.ts:159:7 › surface renders cleanly: Renewals Pipeline (2.2s)
@objectstack/example-showcase:test:   ✓  25 [chromium] › e2e/live/user-filters.spec.ts:46:3 › ADR-0047 data mode — viz dropdown › visualization switcher is a single dropdown offering the whitelist (3.5s)
@objectstack/example-showcase:test:   ✓  56 [chromium] › e2e/showcase-smoke.spec.ts:159:7 › surface renders cleanly: All reports (1.9s)
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:   56 passed (2.3m)
@objectstack/example-showcase:test:  �[32m✓�[39m test/showcase-smoke.live.test.ts �[2m(�[22m�[2m1 test�[22m�[2m)�[22m�[33m 141129�[2mms�[22m�[39m
@objectstack/example-showcase:test:      �[33m�[2m✓�[22m�[39m every Playwright test in e2e/ passes against the real showcase stack �[33m 141127�[2mms�[22m�[39m
@objectstack/example-showcase:test:   ✓  26 [chromium] › e2e/live/user-filters.spec.ts:71:3 › ADR-0047 interface mode — Task Workbench › locked surface: dropdowns only, no view tabs, no switcher (2.2s)
@objectstack/example-showcase:test:   ✓  27 [chromium] › e2e/live/user-filters.spec.ts:81:3 › ADR-0047 interface mode — Task Workbench › grid renders data columns even when the source view is hollow (1.5s)
@objectstack/example-showcase:test:   ✓  28 [chromium] › e2e/live/user-filters.spec.ts:98:3 › ADR-0047 interface mode — Task Workbench › dropdown selection filters, keeps counts, persists, and restores (3.4s)
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:   1) [chromium] › e2e/live/record-history-display.spec.ts:56:1 › the timeline stream's Changes chip shows display values (localized dates, option labels, resolved lookups, real actor) instead of raw audit payloads 
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:     Error: expect(received).toContain(expected) // indexOf
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:     Expected substring: "Live E2E showcase_manager"
@objectstack/example-showcase:test:     Received string:    "Activity (4) All Activity Discussion Changes Updated Account \"History display e2e 1793857316942\": Owner · Dev Admin · just now Industry: Technology → Finance; Lifecycle: Prospect → Active · Dev Admin · just now Updated Account \"History display e2e 1793857316942\": Customer Since · Dev Admin · just now Created Account \"History display e2e 1793857316942\" · Dev Admin · just now"
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:       114 |   //    to their ids.
@objectstack/example-showcase:test:       115 |   expect(text).toMatch(/Owner/);
@objectstack/example-showcase:test:     > 116 |   expect(text).toContain(other.name);
@objectstack/example-showcase:test:           |                ^
@objectstack/example-showcase:test:       117 |   expect(text).not.toContain(other.id);
@objectstack/example-showcase:test:       118 | });
@objectstack/example-showcase:test:       119 |
@objectstack/example-showcase:test:         at /home/runner/work/objectstack/objectstack/ui/e2e/live/record-history-display.spec.ts:116:16
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:     attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
@objectstack/example-showcase:test:     test-results/record-history-display-the-cf456-stead-of-raw-audit-payloads-chromium/test-failed-1.png
@objectstack/example-showcase:test:     ────────────────────────────────────────────────────────────────────────────────────────────────
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:     attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
@objectstack/example-showcase:test:     test-results/record-history-display-the-cf456-stead-of-raw-audit-payloads-chromium/video.webm
@objectstack/example-showcase:test:     ────────────────────────────────────────────────────────────────────────────────────────────────
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:     Error Context: test-results/record-history-display-the-cf456-stead-of-raw-audit-payloads-chromium/error-context.md
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test:   1 failed
@objectstack/example-showcase:test:     [chromium] › e2e/live/record-history-display.spec.ts:56:1 › the timeline stream's Changes chip shows display values (localized dates, option labels, resolved lookups, real actor) instead of raw audit payloads 
@objectstack/example-showcase:test:   27 passed (2.0m)
@objectstack/example-showcase:test:  ELIFECYCLE  Command failed with exit code 1.
@objectstack/example-showcase:test:  �[31m❯�[39m test/console-live-specs.live.test.ts �[2m(�[22m�[2m1 test�[22m�[2m | �[22m�[31m1 failed�[39m�[2m)�[22m�[33m 148783�[2mms�[22m�[39m
@objectstack/example-showcase:test: �[31m     �[31m�[31m every spec in ui's test:e2e:live:nightly passes against the workspace backend�[39m�[33m 148781�[2mms�[22m�[39m
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: �[31m⎯⎯⎯⎯⎯⎯⎯�[39m�[1m�[41m Failed Tests 1 �[49m�[22m�[31m⎯⎯⎯⎯⎯⎯⎯�[39m
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: �[41m�[1m FAIL �[22m�[49m test/console-live-specs.live.test.ts�[2m > �[22mConsole live specs outside the required job (live tier)�[2m > �[22mevery spec in ui's test:e2e:live:nightly passes against the workspace backend
@objectstack/example-showcase:test: �[31m�[1mAssertionError�[22m: 1 of 28 Console live test(s) failed, 0 run-level error(s): expected { …(2) } to deeply equal { failing: [], errors: [] }�[39m
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: �[32m- Expected�[39m
@objectstack/example-showcase:test: �[31m+ Received�[39m
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: �[2m  {�[22m
@objectstack/example-showcase:test: �[2m    "errors": [],�[22m
@objectstack/example-showcase:test: �[32m-   "failing": [],�[39m
@objectstack/example-showcase:test: �[31m+   "failing": [�[39m
@objectstack/example-showcase:test: �[31m+     "record-history-display.spec.ts › the timeline stream's Changes chip shows display values (localized dates, option labels, resolved lookups, real actor) instead of raw audit payloads",�[39m
@objectstack/example-showcase:test: �[31m+   ],�[39m
@objectstack/example-showcase:test: �[2m  }�[22m
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: �[36m �[2m❯�[22m test/console-live-specs.live.test.ts:�[2m233:11�[22m�[39m
@objectstack/example-showcase:test:     �[90m231|�[39m                 'Console build not served, browser not launchable) bef…
@objectstack/example-showcase:test:     �[90m232|�[39m               �[33m:�[39m �[32m''�[39m)�[33m,�[39m
@objectstack/example-showcase:test:     �[90m233|�[39m         )�[33m.�[39m�[34mtoEqual�[39m({ failing�[33m:�[39m []�[33m,�[39m errors�[33m:�[39m [] })�[33m;�[39m
@objectstack/example-showcase:test:     �[90m   |�[39m           �[31m^�[39m
@objectstack/example-showcase:test:     �[90m234|�[39m         expect(ran, 'playwright reported no test that ran — a run of n…
@objectstack/example-showcase:test:     �[90m235|�[39m         expect(run.status, `playwright exited ${run.status} with every…
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: �[31m�[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯�[22m�[39m
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: �[2m Test Files �[22m �[1m�[31m1 failed�[39m�[22m�[2m | �[22m�[1m�[32m1 passed�[39m�[22m�[90m (2)�[39m
@objectstack/example-showcase:test: �[2m      Tests �[22m �[1m�[31m1 failed�[39m�[22m�[2m | �[22m�[1m�[32m1 passed�[39m�[22m�[90m (2)�[39m
@objectstack/example-showcase:test: �[2m   Start at �[22m 05:39:54
@objectstack/example-showcase:test: �[2m   Duration �[22m 148.93s�[2m (transform 79ms, setup 0ms, import 106ms, tests 289.91s, environment 0ms)�[22m
@objectstack/example-showcase:test: 
@objectstack/example-showcase:test: JSON report written to /home/runner/work/objectstack/objectstack/examples/app-showcase/.nightly-tiers/vitest-report.json
@objectstack/example-showcase:test:  ELIFECYCLE  Test failed. See above for more details.
::error::command (/home/runner/work/objectstack/objectstack/examples/app-showcase) /opt/hostedtoolcache/node/22.23.4/x64/bin/pnpm run test --reporter=default --reporter=json --outputFile.json=.nightly-tiers/vitest-report.json exited (1)
@objectstack/example-showcase#test:  ERROR  command (/home/runner/work/objectstack/objectstack/examples/app-showcase) /opt/hostedtoolcache/node/22.23.4/x64/bin/pnpm run test --reporter=default --reporter=json --outputFile.json=.nightly-tiers/vitest-report.json exited (1)

  Tasks:    66 successful, 67 total
 Cached:    0 cached, 67 total
   Time:    7m33.361s 
Summary:    /home/runner/work/objectstack/objectstack/.turbo/runs/3LfuG3h8FYWPz3vu6bcfRzsByxD.json
 Failed:    @objectstack/example-showcase#test

 ERROR  run failed: command  exited (1)

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

Activity

  1. added
    bugSomething isn't working
    priority:p1High: required for production / M2
    domain:devxDomain lane — seat card indexed by label:pm:seat
    on Nov 5, 2026
  2. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    Contributor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p1 kept · domain:devx kept · 2026-11-05T07:04Z

    ⛔ Not a claim.

    • Read fresh. The nightly e2e / live tiers are red on main (a26abbc6, run 41974775282), in examples/app-showcase/test/console-live-specs.live.test.ts: a spec in ui's test:e2e:live:nightly fails against the booted showcase. No PR reds on this tier, so this card is its only channel. A platform suite that is red gets fixed (「平台测试清单反复变红,肯定要修啊」), so p1 kept.
    • Name the failing spec first. If it is a product defect in ui/**, that half is domain:ui's. ⛔ No rename, skip or delete.

    Generated by Claude Code

  3. added
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 5, 2026
  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    Contributor

    domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8

    Claim: PM loop round 1
    Session: session_017ihL2ebbZkr2QAEG1x7UC8
    Account: marchtian
    Branch: claude/issue-30316-nightly-record-history
    Worktree: objectstack-issue-30316
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: diagnosis first. The one red is ui/e2e/live/record-history-display.spec.ts:116 (run 41974775282, job Nightly tiers (4/4), 1 of 28 Console live specs): the Changes chip's owner line reads Owner · Dev Admin with no value, so expect(text).toContain(other.name) misses Live E2E showcase_manager. Green on eee41490bc (run 41779968654), red on a26abbc673; 114 merges in the range. The seat names the merge that changed it. If the spec reads a deliberate, documented product change, the fix is ui/e2e/live/record-history-display.spec.ts only, re-pointed to what the product now draws, keeping every display-value assertion. If it is a product defect, the fix is the owning lane's: a finding filed to it with the evidence, and this card stays open on it. ⛔ No rename, skip, .fixme or deletion of the spec, and no assertion is dropped.
    Container & model: S, mode:subagent, model: default tier, effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — test-tier card
    Thread-read: 6651948124
    Premise: holds (run 41974775282 on a26abbc673: console-live-specs.live.test.ts:233 reports record-history-display.spec.ts › the timeline stream's Changes chip shows display values … failing).
    Serial constraints cleared: no open PR touches ui/e2e/live/record-history-display.spec.ts.

  5. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    Contributor

    domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8
    os-dev-report

    {
      "issue": 30316,
      "status": "done",
      "path": "c",
      "branch": "claude/issue-30316-nightly-record-history",
      "pr": null,
      "diagnosis": {
        "class": "race in the spec's wait, widened by CI load; not a product change",
        "culprit_sha": null,
        "culprit_note": "no merge in eee41490bc..a26abbc673 changes what the owner line draws",
        "closed_on_main_by": "c1240a38ac (#30294): the Changes chip holds audit entries only",
        "evidence": [
          "ui/e2e/live/record-history-display.spec.ts:90 waits for any [data-stream-change] line with the text Owner; the sys_activity row (Updated Account NAME: Owner, from the record page payload) matches before the sys_audit_log read lands",
          "a26abbc673:ui/packages/plugin-detail/src/recordTimelineStream.ts:161 the changes chip keeps every field_change item, sys_activity update rows included",
          "a26abbc673:ui/packages/plugin-detail/src/recordTimelineStream.ts:132 mergeTimelineStream drops the activity updated rows only once field changes are present; before the audit read lands, all four lines are activity rows",
          "a26abbc673:ui/packages/app-shell/src/views/RecordDetailView.tsx:2774 the audit read is its own request after the record page POST, then sys_user and lookup reads",
          "origin/main:ui/packages/plugin-detail/src/recordTimelineStream.ts:311 the changes chip returns fieldHistoryEntriesOf(items), audit-sourced entries only, so the wait resolves only on an audit line",
          "job 127070973522: showcase-smoke.live.test.ts (56 Playwright tests) runs at the same time as the 28 Console live specs on one runner"
        ]
      },
      "repro": {
        "stack": "a26abbc673 built (turbo build cli + showcase closure, exit 0), ui/e2e/live/ci/start-backend.sh, Console vite build with VITE_BASE_PATH=/, vite preview",
        "server_audit_rows": "GET sys_audit_log after the three PATCHes: 4 rows, old_value and new_value present for signed_on, industry+status, owner_id",
        "spec_alone_a26": "1 passed; repeat-each=8: 8 passed",
        "nightly_list_a26": "pnpm run test:e2e:live:nightly: 28 passed (no concurrent showcase smoke)",
        "probe_a26_audit_delay_1500ms": "wait resolved at 3220 ms on: Activity (4) ... Updated Account NAME: Owner · Dev Admin · just now Industry: Technology → Finance; Lifecycle: Prospect → Active ... (the CI received string); audit lines drawn at 4478 ms",
        "probe_eee41490bc_ui_audit_delay_1500ms": "same text at wait resolution: the race predates the range",
        "probe_a26_with_8fa370c918_reverted": "audit read still sent twice per open (5 of 5): #30082 does not add the second read",
        "probe_origin_main_ui_audit_delay_0_1500_3000ms": "wait resolves only after the audit lines land; the line 116 assertion holds in 3 of 3; real spec 1 passed",
        "probe_file": "temporary, uncommitted, deleted"
      },
      "gates": "none run: no PR, no diff",
      "files_changed": [],
      "deviations": [
        "the worktree was checked out detached at a26abbc673 for the repro and returned to the branch; ui/ was restored from eee41490bc and from origin/main for two console builds, then reset; tree clean",
        "no branch push: no diff to land",
        "run 41584589032 artifact download refused (403 from the blob host): whether the earlier red was this spec is NOT MEASURED"
      ],
      "mcp_calls": "2: mcp__github__get_job_logs (run 41584589032 failed_only; job 127070973522), read only",
      "api_writes": "1: this comment, POST issues/30316/comments via post-stamped.mjs",
      "filed_issues": [],
      "security_findings": "none"
    }
  6. added
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    and removed
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Nov 5, 2026
  7. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    Contributor

    domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8

    Seat reading · parked for the next nightly · 2026-11-05T07:56Z

    ⛔ Not a close. The card stays assigned to this seat.

    • Cause: a race in the spec's wait, not a product defect and not a merge in the range. Dev report 6652764498 has the measurements. At a26abbc673 the Changes chip also lists sys_activity update rows, which arrive with the record page. The sys_audit_log read arrives later. The wait at ui/e2e/live/record-history-display.spec.ts:90 (any [data-stream-change] line with Owner) can resolve on the activity row Updated Account "…": Owner, before the audit lines replace it. That is the exact CI string. A probe with the audit read delayed 1.5 s reproduces it on both a26abbc673 and the green eee41490bc UI. The server's audit rows are correct. The spec alone (8/8, repeat-each) and the full test:e2e:live:nightly (28/28) are green locally at a26abbc673.
    • Already closed on main. c1240a38ac (feat(ui): the timeline's Changes chip holds the audit's field changes only; the CRM opens field history on its four main objects #30294, 05:31:55Z) is not in a26abbc673 (05:01Z), the nightly's commit. With it, the Changes chip holds audit entries only, so the wait can resolve only on an audit line. With main's UI and audit delays of 0, 1.5 and 3 s, line 116 held 3/3.
    • No spec change. A no-op re-point would not change what the next nightly reads. ⛔ No skip, rename or assertion dropped.
    • Next act: this seat reads the next nightly (the card's own next by line: tomorrow's 05:29 UTC cron). If the nightly is green with c1240a38ac in it, the seat closes the card with the run id. If it is red, the seat re-dispatches with the new log.
  8. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    Contributor

    domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8

    Release: claim 6652255275 (session_017ihL2ebbZkr2QAEG1x7UC8, no branch, nothing pushed) · 2026-11-05T13:33Z · the seat clocks out by the maintainer's order in its project thread (「是的 下班」), on the off-duty order 「server 和 devx 处理完当前任务就下班」. The card goes back to pm:queue with the assignee cleared.
    Produce: diagnosis only. Dev report 6652764498 and seat reading 6652810618: a race in the spec's wait, already closed on main by c1240a38ac (#30294). No code change.
    Resume-from: seat reading 6652810618

    For whoever picks this up

    • The only act left is to read the next Nightly Tiers schedule run (cron 29 5 * * *). The red nightly ran on a26abbc673, which lacks c1240a38ac.
    • If the next run is green on a commit that has c1240a38ac: close this card with the run id.
    • If it is red: read job Nightly tiers (4/4) and start from the dev report's probe (an audit read delayed 1.5 s reproduces the CI string).
    • ⛔ No skip, rename or dropped assertion on ui/e2e/live/record-history-display.spec.ts.
  9. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    on Nov 5, 2026
  10. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 5, 2026
  11. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    Contributor

    domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8

    Claim: PM loop round 1
    Session: session_017ihL2ebbZkr2QAEG1x7UC8
    Account: marchtian
    Branch: none (no code change planned)
    Worktree: none
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: none. The card's only act left is the next Nightly Tiers schedule run reading, per Release: 6659328530 and seat reading 6652810618. If that run is green on a commit carrying c1240a38ac (#30294), the seat closes the card with the run id. If it is red, the seat reads the job log and re-dispatches, with ui/e2e/live/record-history-display.spec.ts as the surface. ⛔ No skip, rename or dropped assertion.
    Container & model: S, mode:subagent, model: default tier, effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — test-tier card
    Thread-read: 6659328530
    Premise: holds (the red nightly ran on a26abbc673, which lacks c1240a38ac; the next nightly has not run yet).
    Serial constraints cleared: no open PR touches ui/e2e/live/record-history-display.spec.ts.

  12. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    Contributor

    domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8

    Seat verdict · close · nightly green on the fix · domain:devx#2 · 2026-11-06T06:07Z

    The claim 6659838299 named one act: read the next Nightly Tiers schedule run. That run is 42169098716 (schedule, created at 2026-11-06T05:33Z) on d996c3817e. That commit carries c1240a38ac (#30294; git merge-base --is-ancestor exits 0).

    • The run concluded success. Jobs Nightly tiers (1/4) to (4/4) were all success, and File or refresh the red card was success.
    • The red run 41974775282 on a26abbc673, which lacks the fix, is the last red one. No code change came from this card. The race was fixed on main by c1240a38ac.
    • If ui/e2e/live/record-history-display.spec.ts reds again on a commit that carries the fix, the nightly's own red-card step files a fresh card.
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

    bugSomething isn't workingdomain:devxDomain lane — seat card indexed by label:pm:seatpriority: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