feat(protocol): complete ADR-0087 — load-seam handshake, chain backfill 12–15, release artifacts#2972
Merged
Merged
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.
|
Contributor
📓 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:
|
This was referenced Jul 15, 2026
Contributor
Author
|
CI 说明: Generated by Claude Code |
This was referenced Jul 15, 2026
os-zhuang
marked this pull request as ready for review
July 15, 2026 15:25
68 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
补齐 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