Commit a0199d7
committed
feat(protocol): complete ADR-0087 — load-seam handshake, chain backfill 12–15, release artifacts
Closes the remaining gaps of the ADR-0087 epic (#2643); trues the ADR up to
as-built (Addendum) and ratifies the pre-launch launch-window exemption.
P0 leftovers (D1, #2644):
- Handshake on the boot-time durable-package rehydration path: an incompatible
sys_packages row is refused with the structured OS_PROTOCOL_INCOMPATIBLE
diagnostic and skipped (boot continues).
- Handshake on AppPlugin (code-defined stacks): fail-fast before the manifest
is decomposed into the registry.
- objectstack lint: new protocol/missing-engines-range warning with a fix-it.
- create-objectstack blank template stamps engines: { protocol: '^<major>' },
re-stamped at version time by scripts/sync-template-versions.mjs and
ratcheted by template-consistency.test.ts.
Chain backfill (D2/D3, #2645/#2647):
- MetadataConversion.retiredFromLoadPath implements the load-window's second
half: retired entries replay only via migrate meta and the fixture CI.
- New conversions: object compactLayout→highlightFields (11, retired),
stack roles→positions / OWD read aliases / sharing recipient role→position
(13, retired), book audience profile→permissionSet (14, retired),
view visibleOn→visibleWhen + page component visibility→visibleWhen
(15, LIVE window — registers the ADR-0089 rename in the D2 table).
- New chain steps 12–15 with semantic TODOs (requireAuth flip, ADR-0090
profile/hierarchy/CEL/OWD-full/secure-default judgments, .strict() flip).
- migrate meta --from 10 now reaches protocol 15; verified end-to-end on a
fixture carrying every legacy shape (11 mechanical rewrites, 9 TODOs).
Release artifacts (D4, #2647):
- spec-changes.json generated from the registries (gen:spec-changes, CI
drift-checked), shipped in the npm artifact with api-surface.json, and
attached to each @objectstack/spec GitHub Release with added[]/removed[]
from the api-surface diff vs the previously published release.
- docs/protocol-upgrade-guide.md generated from the registries
(gen:upgrade-guide, CI drift-checked) — the guide is now a projection.
Verification: spec 6803 passed, cli 509 passed, runtime 509 passed,
service-package/metadata-protocol/metadata-core/service-automation/
downstream-contract/create-objectstack suites green; check:api-surface
unchanged; both new drift checks green.
Refs #2643, #2644, #2645, #2647, #2648 · ADR-0087, ADR-0089, ADR-0090
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LMCyH8zFQQsnR9r46fhz4c1 parent 750901c commit a0199d7
30 files changed
Lines changed: 1855 additions & 23 deletions
File tree
- .changeset
- .github/workflows
- docs
- adr
- packages
- cli
- src
- commands
- lint
- test
- create-objectstack/src
- templates/blank
- runtime
- src
- services/service-package
- src
- spec
- scripts
- src
- conversions
- migrations
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
389 | 389 | | |
390 | 390 | | |
391 | 391 | | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
101 | 112 | | |
102 | 113 | | |
103 | 114 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
0 commit comments