-
f531a26: feat(protocol): complete ADR-0087 — load-seam handshake, chain backfill 12–15, release artifacts (#2643)
Closes the remaining ADR-0087 gaps (see the ADR's as-built Addendum):
- P0 load seams (D1). The protocol handshake now runs on the boot-time
durable-package rehydration path (
@objectstack/service-packagerefuses an incompatiblesys_packagesrow with the structuredOS_PROTOCOL_INCOMPATIBLEdiagnostic and keeps booting) and onAppPluginfor code-defined stacks (fail-fast before the manifest is decomposed).objectstack lintgainsprotocol/missing-engines-range(warning + fix-it) and thecreate-objectstackblank template stampsengines: { protocol: '^<major>' }(re-stamped at version time byscripts/sync-template-versions.mjs) — the two ends of the grandfathering ratchet. - Chain backfill (D2/D3).
MetadataConversion.retiredFromLoadPathimplements the load-window's second half (retired entries replay only viamigrate meta/ fixture CI). Steps 12–15 land: theapi.requireAuthflip (semantic), the ADR-0090 wave (3 retired conversions + 5 semantic TODOs), theBookAudiencerename (retired conversion), and the ADR-0089 visibility unification (visibleOn/visibility→visibleWhenas LIVE load-window conversions) + the.strict()flip (semantic). The protocol-11compactLayout→highlightFieldsrename is backfilled as a retired step-11 conversion.migrate meta --from 10now reaches protocol 15. - Release artifacts (D4).
spec-changes.jsonis generated from the registries (gen:spec-changes, CI drift-checked), ships in the npm artifact together withapi-surface.json, and is attached to each@objectstack/specGitHub Release withadded[]/removed[]filled from the api-surface diff against the previously published release. The upgrade guide (docs/protocol-upgrade-guide.md) is generated from the same registries and CI drift-checked — a projection that cannot drift.
- P0 load seams (D1). The protocol handshake now runs on the boot-time
durable-package rehydration path (
-
f531a26: Scaffolded projects are now container-ready out of the box: the
blanktemplate ships aDockerfile(two-stage build onto the officialghcr.io/objectstack-ai/objectstackruntime image), adocker-compose.yml(app + Postgres single-host stack), and a.dockerignore, plus a Deploy section in the project README.docker build -t my-app .works immediately afternpm create objectstack.
- eaff014: Scaffolded projects now install the current framework release instead of a stale major. The bundled
blanktemplate had^6.0.0ranges frozen in while the registry was publishing 14.x, sonpm create objectstackproduced a project eight majors behind the docs — and the template's code no longer compiled against 14.x anyway (Field.longTextremoved,api.restno longer adefineStackkey,sharingModelnow required by the ADR-0090 security gate). The template is updated to the current API, and the scaffolder now rewrites every@objectstack/*range in the generatedpackage.jsonto^<its own version>(all packages version in lockstep), so generated projects track the release even if the committed template drifts again. A consistency test ratchets the template's major and the README's template table against the registry. The template README also documents the seeded dev-admin sign-in that data-API curls need.
-
7cf283a: Make
os validatethe author-time verification gate and steer scaffolds toward it.os validatenow runs the same CEL/predicate gate asos build/os compile(ADR-0032): everyvisible/disabled/requiredWhen/validation/flow/sharing predicate is checked for CEL syntax andrecord.<field>existence on the target object. It already ran the protocol schema and widget-binding checks; the expression gate closes the gap so a bare field ref (doneinstead ofrecord.done) — which silently hides an action on every record at runtime (#2183/#2185) — fails validation instead of shipping.os validateis now a read-only superset of the build's checks (no artifact emitted).create-objectstacknow emits anAGENTS.md(and.github/copilot-instructions.md) into every generated project instructing coding agents to runnpm run validateafter editing metadata, aligns the blank template'sdev/startscripts with the example apps (objectstack dev/objectstack start), and sharpens the post-create "Next steps" output.
-
15fc484: Upgrade
@object-ui/*packages to v6.0.@objectstack/cli:@object-ui/consoleand@object-ui/studiofrom^5.4.2→^6.0.0— bundled Studio + Console assets now ship the v6 UI shell (new design language, refreshed sidebar, redesigned record header).@objectstack/account:@object-ui/i18nfrom^5.4.2→^6.0.0— i18n runtime now matches the v6 console/studio API.- Root devDependency
@object-ui/consolefrom^5.4.2→^6.0.0so workspace scripts and the docs build pick up v6. create-objectstack:tarfrom^7.4.3→^7.5.15(security + perf fixes when unpacking remote templates).
Heads-up for consumers:
@object-ui/*v6 is a major release of the bundled UI; pages rendered through the CLI'sstudio/consolemounts may look different from v5. The protocol surface is unchanged.
- 15e0df6: chore: unify all package versions to a single patch release