Uh oh!
There was an error while loading. Please reload this page.
feat(protocol): complete ADR-0087 — load-seam handshake, chain backfill 12–15, release artifacts - #2972
Conversation
…ll 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_01LMCyH8zFQQsnR9r46fhz4c
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📓 Docs Drift CheckThis PR changes 5 package(s): 112 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
os-zhuang
commented
Jul 15, 2026
CI 说明: Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
补齐 ADR-0087 epic(#2643)的全部剩余开发,并将 ADR true-up 到 as-built(新增 Addendum,含 launch-window 豁免政策的成文化)。
P0 遗留三项(D1,#2644 关闭时未完成的部分)
@objectstack/service-package从sys_packages再水化时执行握手——不兼容的持久化包以结构化OS_PROTOCOL_INCOMPATIBLE诊断拒绝并跳过(boot 继续),不再留到深层.parse()崩溃;无范围/无法解析的范围宽限放行(绝不误拒)。AppPlugin.init()在 manifest 分解进 registry 之前 fail-fast(assertProtocolCompat),诊断命名migrate meta命令。objectstack lint:新规则protocol/missing-engines-range(warning + fix-itengines: { protocol: '^15' }),仅对声明了 manifest 的配置生效;golden corpus 同步示范最佳实践。engines: { protocol: '^15' };scripts/sync-template-versions.mjs在版本时重新 stamp;template-consistency.test.ts增加防漂移棘轮。链回填 12–15 + ADR-0089 改名入册(D2/D3,#2645/#2647)
MetadataConversion.retiredFromLoadPath:实现 D2 窗口的后半句("retired in N+1 — but never deleted")——退役条目 loader 跳过,仅由migrate meta与 fixture CI 重放。object-compactLayout-to-highlightFieldsstack-roles-to-positions/owd-legacy-read-aliases/sharing-recipient-role-to-positionbook-audience-profile-to-permission-setview-visibleOn-to-visibleWhen/page-component-visibility-to-visibleWhenvisibleWhen#2642 的遗留登记项)requireAuth翻转、ADR-0090 的 profile/层级/CEL/'full'别名/secure default、15 的.strict()翻转)。OWD'full'别名因无确定无损目标不做机械转换(D2 scope guard)。migrate meta --from 10 --json一次到 15:11 处机械改写全部正确落位、9 条 semantic TODO 全部浮出。发布产物(D4,#2647 剩余两项)
spec-changes.json:由 registry 生成(gen:spec-changes,CI drift check),随 npm 包发布(连同api-surface.json),Release workflow 以与上一已发布版本的 api-surface diff 填充added[]/removed[]后附加到@objectstack/spec的 GitHub Release(scripts/release-spec-changes.sh,复用 ADR-0059 §3 gate 产物)。docs/protocol-upgrade-guide.md完全由 registry 投影生成(gen:upgrade-guide,CI drift check)——指南不可能再漂移。ADR true-up
retiredFromLoadPath机制、launch-window 豁免成文(GA 前可一步改名但必须同版落链;GA 后回到完整 D2 阶梯)。验证
@objectstack/spec6803 passed(新增 conversion/migration 测试),check:api-surface无变化,两个新 drift check 均绿。@objectstack/cli509 passed(含新lint-protocol-range测试)。@objectstack/runtime509 passed(含 AppPlugin 握手三例)。service-package/metadata-protocol/metadata-core/service-automation/downstream-contract/create-objectstack全绿。Refs #2643 · Closes#2645 · Closes#2647 · Refs #2644, #2648 · ADR-0087 / ADR-0089 / ADR-0090
🤖 Generated with Claude Code
https://claude.ai/code/session_01LMCyH8zFQQsnR9r46fhz4c
Generated by Claude Code