Skip to content

feat(cloud-connection): LocalManifestSource — local desired-state ledger (cloud ADR-0007 ⑤)#1761

Merged
os-zhuang merged 1 commit into
mainfrom
feat/adr-0007-step5-local-manifest-source
Jun 12, 2026
Merged

feat(cloud-connection): LocalManifestSource — local desired-state ledger (cloud ADR-0007 ⑤)#1761
os-zhuang merged 1 commit into
mainfrom
feat/adr-0007-step5-local-manifest-source

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

cloud ADR-0007 step ⑤(framework 侧:install-local 升格)

  • LocalManifestSource:install-local 的盘账本(.objectstack/installed-packages/)提名为一等、可导出的本地期望态拥有者——与云控制面的 sys_package_installation(管理面期望态)同构;宿主/将来的调谐器可不经 HTTP 直接读同一账本
  • MarketplaceInstallLocalPlugin 全部账本 I/O 委托给它,行为逐点等价(404/500 语义保留;恶意 manifest id 的文件名消毒在账本内,新增穿越测试)
  • ADR-0003 修订注记(ADR-0007 风险清单要求):安装行 = 期望态,任何运行路径不得当实际装了什么读;observed_* 是回报投影
  • 5 个新测试(round-trip/upsert/remove/损坏容忍/路径穿越),包内 30/30 全过

🤖 Generated with Claude Code

…ger as a first-class seam (cloud ADR-0007 ⑤)

The install-local disk ledger (.objectstack/installed-packages/) is
promoted to a named, exported LocalManifestSource: the desired-state
owner for self-hosted runtimes, isomorphic to what the cloud control
plane's sys_package_installation does for managed environments.
MarketplaceInstallLocalPlugin delegates all ledger I/O to it — behavior
identical (404/500 semantics preserved). ADR-0003 gains the cloud
ADR-0007 revision note: installation rows are desired state, never read
as runtime truth; observed_* is a reported projection.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 12, 2026 3:33am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/m and removed documentation Improvements or additions to documentation tests tooling labels Jun 12, 2026
@os-zhuang
os-zhuang merged commit 17ffc74 into main Jun 12, 2026
10 of 11 checks passed
@os-zhuang
os-zhuang deleted the feat/adr-0007-step5-local-manifest-source branch June 12, 2026 03:26
/** Create or replace an entry (upsert by manifestId). */
write(entry: InstalledManifestEntry): void {
mkdirSync(this.dir, { recursive: true });
writeFileSync(this.fileFor(entry.manifestId), JSON.stringify(entry, null, 2), 'utf8');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants