You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(cli): pin serve config-boot for the authored shape #3887 reported (#4360)
#3887 filed `Service 'manifest' is async - use await` from a bare
`defineStack()` config with no `dist/objectstack.json`. #4110 fixed that
crash under #4085 and never linked #3887, which stayed open — and every
fixture pinning the fix is a plain object literal, so the shape the issue
actually reported was left unexercised.
That is not a cosmetic difference. `defineStack` parses and normalizes, so
an authored config reaches boot carrying defaults no literal in the file
writes: `datasource: 'default'` on every object, a full descriptor on every
field. And such a fixture only resolves where a real `node_modules` does —
`@objectstack/spec` is external to the config bundler
(BUNDLE_REQUIRE_EXTERNALS) — so it cannot live in the OS tmpdir beside the
others. That resolution constraint is why no test had ever booted an
authored config, and why the gap outlived the fix.
Verified against the issue's verbatim repro: boots, registers the app, and
serves reads/writes on `cfg_note` over REST. The new boot asserts the app
reaches the started plugin set and that a driver resolved behind the stamped
datasource; breaking the fixture's manifest id turns it red while the server
still starts, so the claim is the app's, not the banner's.
Scope stated in the file: this pins the authored shape end to end, not
fault 1's mechanism — ADR-0116 (#4131) made plugin ordering a declared,
kernel-enforced contract, so reverting the CLI-side append alone no longer
reproduces the crash.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
test(cli): pin `os serve` config-boot for the shape #3887 actually reported — a config authored through `defineStack()` from `@objectstack/spec`, with no compiled `dist/objectstack.json`. #4110 fixed the crash (#4085) but every fixture pinning it is a plain object literal, so nothing exercised what a real project sends into boot: `defineStack` parses and normalizes, stamping `datasource: 'default'` on every object and full descriptors on every field. Such a fixture only resolves where a real `node_modules` does — `@objectstack/spec` is external to the config bundler — which is why it had to live under the package and why the gap outlived the fix. Test-only. Releases nothing.
0 commit comments