Skip to content

feat(runtime): /packages 域 handler 体抽出(最大单域)— ADR-0076 D11 步骤③ PR-5 (#2462)#3537

Merged
os-zhuang merged 1 commit into
mainfrom
feat/d11-step3-extract-packages
Jul 27, 2026
Merged

feat(runtime): /packages 域 handler 体抽出(最大单域)— ADR-0076 D11 步骤③ PR-5 (#2462)#3537
os-zhuang merged 1 commit into
mainfrom
feat/d11-step3-extract-packages

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

动机(#2462 D11 步骤③,系列第五刀)

抽出 /packages——迄今最大单域(~680 行):handlePackages 本体 + 两个独占 helper(assemblePackageManifest 离线导出、applyPublishedSeeds 发布后种子落地)。覆盖 list/install/enable/disable、ADR-0033 草稿 publish/discard、ADR-0067 commit 历史与回滚、ADR-0070 export/认领孤儿/复制、删除。

改动

  • domains/packages.ts(679 行):体逐字搬迁;setPackageDisabled/PLURAL_TO_SINGULAR import 随体走;动态 './seed-loader.js' import 改 '../seed-loader.js'(PR#2415 的教训——动态 import 是搬迁暗雷,这次随调用方一起搬)。
  • resolveActiveOrganizationId 留 dispatcher(metadata 域多处共用)经 deps 暴露。
  • DomainHandlerDeps 扩四项:errorFromThrown(spec 校验 issues 透传为字段锚定 422)、resolveActiveOrganizationIdannounceKernelEvent(发布后 metadata:reloaded 广播——changed 判断留域侧、trigger 存在性判断进 deps)、可选 logger
  • 步骤②(feat(runtime): /discovery 单一归属 + /packages 统一管线(ADR-0076 D11 步骤②) #3142)的单管线行为保持;/packages 裸 startsWith 匹配原样复刻。
  • dispatcher 再瘦 ~680 行。

验证

接缝套件 34 测试(新增 4:列表 / 无 registry 503 / 409 重复安装护栏 + ?overwrite=true / 缺 id 400);runtime 全量 639 绿;http-conformance 41 断言绿;下游闭包 --force 含 DTS 全绿。

关联 #2462(D11 步骤③ PR-5)。小体量域至此全部迁完;剩余全是大头:/automation /actions /auth /meta /data /mcp /ai。

🤖 Generated with Claude Code

…1 step ③ PR-5 (#2462)

The largest extraction so far: handlePackages (~470 lines) plus its two
EXCLUSIVE helpers assemblePackageManifest and applyPublishedSeeds
(~190 more) move to domains/packages.ts. resolveActiveOrganizationId
stays on the dispatcher (metadata-domain call sites share it) and is
exposed through deps instead.

DomainHandlerDeps grows: errorFromThrown (spec-validation issues carry
through as field-anchored 422s), resolveActiveOrganizationId,
announceKernelEvent (the metadata:reloaded publish announcement — the
domain keeps the changed-list check, the deps side owns the
trigger-existence check), and optional logger (seed-loader falls back
to console as before). The dynamic './seed-loader.js' import moved to
'../seed-loader.js' (the PR#2415 lesson: dynamic imports are the
extraction landmine — this time the import moved WITH the caller).

Step-② (#3142) single-pipeline behavior preserved; the '/packages'
bare-startsWith match is reproduced as-is.

Verified: seam suite 34 tests (4 new incl. the 409 duplicate-install
guard + ?overwrite=true), runtime 639 green, http-conformance 41 green,
dependent closure builds with DTS (--force).

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

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
spec Building Building Preview, Comment Jul 27, 2026 3:10am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/xl labels Jul 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/runtime.

17 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/api/index.mdx (via @objectstack/runtime)
  • content/docs/api/wire-format.mdx (via @objectstack/runtime)
  • content/docs/automation/hook-bodies.mdx (via @objectstack/runtime)
  • content/docs/concepts/north-star.mdx (via packages/runtime)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/runtime)
  • content/docs/deployment/index.mdx (via @objectstack/runtime)
  • content/docs/deployment/production-readiness.mdx (via @objectstack/runtime)
  • content/docs/deployment/single-project-mode.mdx (via @objectstack/runtime)
  • content/docs/deployment/vercel.mdx (via @objectstack/runtime)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/runtime)
  • content/docs/permissions/authentication.mdx (via @objectstack/runtime)
  • content/docs/permissions/authorization.mdx (via packages/runtime)
  • content/docs/plugins/packages.mdx (via @objectstack/runtime)
  • content/docs/protocol/kernel/http-protocol.mdx (via @objectstack/runtime)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/runtime)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/runtime)
  • content/docs/releases/implementation-status.mdx (via @objectstack/runtime)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang merged commit d729a31 into main Jul 27, 2026
15 of 16 checks passed
@os-zhuang
os-zhuang deleted the feat/d11-step3-extract-packages branch July 27, 2026 03:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xl tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant