Skip to content

[REQ-089][CODE] 让 Web/Memory/deep-link 生产入口从 manifest 组合 surfaces(composeRoutes) #495

Description

@jinjunnn

父票: #182. 基线: docs/design/2026-07-22-req089-route-manifest-authority/baseline.md §4 子票2。

负责哪些AC:AC3/AC5 —— 建 composeRoutes,MemoryRouter(生产)与 Web Router(fixture)从 manifest 派生路由表并绑定单一 leaf;上游 app.tsx route 树降为薄适配 + path-形状 ratchet;production-entry-asserted 测试(从真实 route 入口验证,非仅纯函数),覆盖 Home→Draft→Session、Settings/Dialog/Recovery、back/forward/reload 的 route state 不丢不串 scope。
边界:含 deep-link parser 迁移 —— deep-link 生产入口(layout.tsx collectNewSessionDeepLinks/collectOpenProjectDeepLinks → deep-links.ts)改为从 manifest 派生的 deep-link parse;OS 层协议注册(setAsDefaultProtocolClient)是 transport 留在 main,scheme 字面量与 hostname→route 映射由 manifest 声明。
out-of-scope:不删 alias/legacy flags(子票3);session 路由的具体 surface wiring 排在 #181 之后(依 REQ-088/#181 翻转 + owner decision A;其余路由 home/new-session/directory/系统面不依赖 #181 可先行,不因 #181 阻塞本票其余部分)。
退出条件:deep-links.ts 不再持有独立 new URL+hostname 分派与 directory/prompt schema;opencode://new-session/opencode://open-project 的往返由 manifest golden 断言(与 URL 路由共用 path/query 模板)——否则删/改 URL 层会把 deep-link parser 留成幸存的平行真相;composeRoutes 为唯一注入点,production-entry 测试绿。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:productUser-facing product behaviortype:featureNew user or system capability

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions