Skip to content

feat(runtime): /actions /mcp 两域 handler 体抽出 — ADR-0076 D11 步骤③ PR-9 (#2462) - #3568

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

feat(runtime): /actions /mcp 两域 handler 体抽出 — ADR-0076 D11 步骤③ PR-9 (#2462)#3568
os-zhuang merged 1 commit into
mainfrom
feat/d11-step3-extract-actions-mcp

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

动机(#2462 D11 步骤③,深耦合批第二刀)

PR-8 子系统就位后,/actions/mcp 抽体成为机械刀。dispatch() 的 if 链至此只剩 /meta/data

改动

  • domains/actions.ts:ADR-0066 D4 权限门 + ADR-0104 参数契约跑在 actionExec.* 上。env 预解析段收敛为两个新 deps 缝——getDefaultEnvironmentId + resolveProjectKernelObjectQL(ADR-0006 Phase 5 直调方 kernel 交换;this.kernel 写入副作用留 dispatcher)。顺删冗余首尾斜杠正则(ADR-0076: remaining objectql/protocol layering work (cross-repo window) #2462 预扫的 CodeQL redos 孪生),split+filter 已覆盖。
  • domains/mcp.ts:JSON-RPC transport + /mcp/skill 下载 + OAuth resource-metadata + principal-bound 工具桥全家。/mcp/skill 先于 /mcp 的匹配优先级用有序注册项复刻(含 ? 变体共四条)。buildMcpBridge 留公共薄委托给直调方(测试)。
  • 静态坑第二例HttpDispatcher.isMcpEnabled 被抽出体引用——内联为 isMcpServerEnabled() 双站点,包装删除。
  • authz identity pin 随体搬家buildMcpBridge(context) 的 discover file/re/key 指向 domains/mcp.ts(pin 语义不变)。

验证

runtime 649 绿;http-conformance 41 绿;dogfood 全套 351 绿;全仓 build 绿。零行为变化。

关联 #2462。剩最后一刀:/meta + /data(终刀)→ catch-all 退役 → 解锁步骤①。

🤖 Generated with Claude Code

…6 D11 step ③ PR-9 (#2462)

The deep-coupling batch rides the PR-8 subsystem out:

- domains/actions.ts: ADR-0066 D4 gate + ADR-0104 param contract on
  actionExec.*; the env pre-resolution block becomes two deps seams —
  getDefaultEnvironmentId + resolveProjectKernelObjectQL (the ADR-0006
  Phase-5 direct-caller kernel swap; the this.kernel write side effect
  stays dispatcher-owned). The redundant leading/trailing-slash regex
  (CodeQL redos twin flagged in #2462) drops for split+filter.
- domains/mcp.ts: transport + /mcp/skill + OAuth resource-metadata +
  the principal-bound bridge; legacy /mcp/skill-before-/mcp precedence
  reproduced with ordered entries incl. '?' forms. buildMcpBridge kept
  as a public thin delegate for direct callers (tests).
- Statics gotcha round 2: HttpDispatcher.isMcpEnabled — extracted body
  referenced the class static; inlined to isMcpServerEnabled() at both
  sites and the wrapper dropped.
- The authz-conformance identity pin for buildMcpBridge(context)
  follows the body: discover file/re/key now point at domains/mcp.ts.

Verified: runtime 649, http-conformance 41, dogfood 351, full build
green.

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.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Jul 27, 2026 6:38am

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 2 package(s): packages/qa, @objectstack/runtime.

18 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/qa, packages/runtime)
  • content/docs/permissions/delegated-administration.mdx (via packages/qa)
  • 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 f5bfac8 into main Jul 27, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the feat/d11-step3-extract-actions-mcp branch July 27, 2026 06:46
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