Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions docs/architecture/core-decomposition.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Rust 编译和链接面。
| `bitfun-agent-tools` | 轻量 tool DTO / contract、portable tool context facts / provider、runtime restriction、host path normalization / runtime artifact URI / remote POSIX path pure contract、provider-neutral tool path resolution / absolute-path check / runtime artifact reference assembly、file guidance marker、file-read freshness comparison、oversized tool-result preview/rendering policy、tool execution result/error/invalid-call presentation policy、allowed-list / collapsed-tool execution gate policy、provider-neutral path policy root matching / denial message、pure manifest/exposure and GetToolSpec presentation/schema/static metadata/detail/result assembly / execution-plan contract、provider-backed tool catalog / GetToolSpec runtime facade、provider-backed GetToolSpec execution result helper / Tool-result vector adapter、generic contextual manifest resolver、generic catalog snapshot provider / GetToolSpec catalog provider、generic registry / static-provider / dynamic-provider / decorator-ref / snapshot-decorator adapter / runtime assembly container、generic readonly/enabled snapshot filter | partial:product registry snapshot access、`ToolUseContext` adapter、session file-read state storage、tool-result filesystem writes、`GetToolSpec` Tool impl 和 concrete tools 仍在 core,并由 core `tools/product_runtime.rs` 作为单一 product runtime owner 组装;core 当前从 `bitfun-tool-packs` provider plan 物化内置工具列表,static-provider 安装 assembly、decorator reference、generic snapshot decorator adapter、provider-backed catalog runtime facade、readonly/enabled 过滤规则、provider-neutral tool path resolution / runtime artifact reference assembly、file guidance/freshness policy、oversized result rendering、tool execution presentation 与 path policy 判定已委托给 `bitfun-agent-tools` |
| `bitfun-tool-packs` | 由 feature group 隔离的工具 provider plan | partial:提供 basic / git / mcp / browser-web / computer-use / image-analysis / miniapp / agent-control feature-group 元数据和 product provider group plan;不得声明 concrete tools 已迁移 |
| `bitfun-services-core` | Config、session、workspace、storage、filesystem、system services | partial:部分 pure helper 已迁出;通用本地 filesystem operations/tree/search/listing/service facade 已迁入;config/workspace/runtime/persistence 以及 filesystem 的 remote overlay、product runtime binding 仍在 core |
| `bitfun-services-integrations` | Git、MCP、remote SSH、remote connect、file watch integrations | partial:MCP runtime 已迁入;remote SSH 仍只迁移低风险 contracts/helpers;remote-connect 已拥有 wire DTO、request builder、tracker state / registry lifecycle、tracker event reduction、dialog submission orchestration port/provider、file IO/path resolution helper、remote file command / response assembly、dialog/cancel/execution accepted response helper、workspace/session response assembly helper 与 image-context adapter contract;concrete scheduler/session restore/terminal adapter、workspace-root source、persistence/workspace service reads 与 product execution 仍在 core |
| `bitfun-services-integrations` | Git、MCP、remote SSH、remote connect、file watch integrations | partial:MCP runtime 已迁入;remote SSH 仍只迁移低风险 contracts/helpers;remote-connect 已拥有 wire DTO、request builder、tracker state / registry lifecycle、tracker event reduction、dialog submission orchestration port/provider、file IO/path resolution helper、remote file command / response assembly、dialog/cancel/execution accepted response helper、workspace/session response assembly helper、remote model selection policy、remote chat history presentation assembly helper 与 image-context adapter contract;concrete scheduler/session restore/terminal adapter、workspace-root source、persistence/workspace service reads 与 product execution 仍在 core |
| `bitfun-product-domains` | Miniapp 和 function-agent 产品子域 | partial:pure decision、port、MiniApp create/update/draft/apply/import state transition、storage/builtin contract、imported meta timestamp policy、seed meta timestamp policy、runtime detection concrete owner、worker/host/export 纯决策已迁入;filesystem IO、worker process、host dispatch execution、built-in asset seeding、export skeleton 与 Git/AI service runtime 仍在 core |
| `terminal-core` | 已有 terminal package,移动到 workspace 顶层 `src/crates/terminal` 路径 | done:已在 workspace 顶层 |
| `tool-runtime` | 已有 tool runtime,移动到 workspace 顶层路径 | done:已在 workspace 顶层 |
Expand Down Expand Up @@ -99,14 +99,14 @@ owner 边界,否则不要把一个 feature group 继续拆成更小的 crate
不等于 remote-connect runtime 或多模态执行路径已经迁移。
- remote-connect command/response wire DTO、remote model catalog DTO、poll response assembly /
model catalog poll delta、
tracker state / registry lifecycle、remote tool preview slimming、legacy image context fallback /
tracker state / registry lifecycle、remote tool preview slimming、remote model selection policy、legacy image context fallback /
preference、restore target decision、cancel decision、cancel-task orchestration、
RemoteRelay/Bot dialog submission orchestration port/provider、remote workspace path/MIME/full-read/chunk/info helper、
remote file command / response assembly、dialog/cancel/execution accepted response helper 与 remote file transfer
size/chunk/name policy、workspace/session response assembly helper 可由
size/chunk/name policy、workspace/session response assembly helper、remote chat history presentation assembly helper 可由
`bitfun-services-integrations` 拥有;core 只保留 tracker host adapter、
global dispatcher compatibility wrapper、session restore 执行、terminal pre-warm adapter、
concrete scheduler submit adapter、workspace-root source、persistence/workspace service reads 与
concrete scheduler submit adapter、workspace-root source、persistence/workspace service reads、remote chat history projection / image compression / enhanced-input cleanup
`ImageContextData` concrete adapter implementation。
不要把 tracker state、wire DTO、dialog orchestration 或纯策略 helper 回写到 core。
- remote-connect runtime owner 进一步外移前必须保持迁移前快照:remote command/response
Expand Down Expand Up @@ -327,9 +327,16 @@ owner 边界,否则不要把一个 feature group 继续拆成更小的 crate
另起 port/provider 设计和等价评审;HR3 进一步把这些仍 core-owned 的
service/agent runtime 绑定入口集中到 `src/crates/core/src/service_agent_runtime.rs`:
remote dialog/cancel/file/tracker host adapter、remote model catalog/session-model
selection adapter、remote chat history persistence/message conversion adapter、
selection adapter、remote chat history persistence/projection adapter、
remote image-context conversion 和 coordinator runtime-port binding 均由该入口承载,不改变 remote-connect、
remote-SSH 或 scheduler 执行路径。
本轮进一步把 remote chat history 的 message ordering、tool preview、assistant
presentation assembly 迁入 `bitfun-services-integrations`;core 只把已持久化的
`DialogTurnData` 投影为 owner DTO,并继续持有 persistence read、mobile image
compression 和 enhanced remote user input cleanup。
remote session/model selection 的 alias/config-reference 归一策略也迁入
`bitfun-services-integrations`;core 继续负责读取 `AIConfig` 并注入 model reference
resolver。
HR-C 已把 agent-session reply route、steering buffered outcome、round injection
kind / target / message / source traits、goal-mode DTO、prompt compression contract 与
workspace related-path fact 等纯契约迁入 `bitfun-runtime-ports`,core 只保留兼容
Expand Down
25 changes: 22 additions & 3 deletions docs/plans/core-decomposition-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -1083,14 +1083,14 @@ product-full = ["git", "mcp", "remote-ssh", "remote-connect", "announcement", "f
- [x] 已补齐 remote runtime 迁移前的第一层 port baseline:`SessionTranscriptReader`、`AgentTurnCancellationPort`、`RemoteControlStatePort`、`RuntimeEventSink` 与 remote image attachment/request DTO;完整 `remote-connect` runtime 仍需后续单独迁移并补 queue/event/image 行为等价测试。
- [x] `RemoteSessionStateTracker`、`TrackerEvent`、tracker registry lifecycle 与 remote tool preview slimming helper 已迁入 `bitfun-services-integrations`;core 只保留 tracker host adapter、dispatcher、session restore、terminal pre-warm 与实际 dialog submission routing。
- [x] 已补齐 remote-connect runtime 迁移前快照:remote command/response wire shape、session restore target、active turn poll snapshot、cancel decision、legacy image fallback / unified image context preference、tracker completion/fanout 与 RemoteRelay/Bot queue policy 均有 focused regression。
- [x] 已将 remote-connect wire / poll 边界与纯运行时策略 helper 迁入 `bitfun-services-integrations`:command/response wire DTO、remote model catalog DTO、poll response assembly / model catalog poll delta、legacy image context fallback / explicit context preference、restore target decision、cancel decision、remote workspace file IO/path helper、remote file command / response assembly、dialog/cancel/interaction response helper、workspace/session response assembly helper、image-context adapter contract 与 remote file transfer size/chunk/name policy 由 owner crate 提供;core 仅保留 dispatcher、session restore 执行、workspace-root source、persistence/workspace service reads、`ImageContextData` concrete impl、terminal pre-warm adapter 与实际 dialog submission routing。
- [x] H3 remote-connect closure:RemoteRelay/Bot dialog submission orchestration、agent type normalization、turn id resolution、restore decision、terminal pre-warm decision、queue policy、remote workspace file IO/path helper、remote file command / response assembly、dialog/cancel/interaction response helper 与 image-context adapter contract 归属 `bitfun-services-integrations`;core 继续作为 concrete scheduler/session restore/terminal adapter、workspace-root sourceworkspace/session response adapter,不改变产品行为。
- [x] 已将 remote-connect wire / poll 边界与纯运行时策略 helper 迁入 `bitfun-services-integrations`:command/response wire DTO、remote model catalog DTO、poll response assembly / model catalog poll delta、remote model selection policy、legacy image context fallback / explicit context preference、restore target decision、cancel decision、remote workspace file IO/path helper、remote file command / response assembly、dialog/cancel/interaction response helper、workspace/session response assembly helper、remote chat history presentation assembly、image-context adapter contract 与 remote file transfer size/chunk/name policy 由 owner crate 提供;core 仅保留 dispatcher、session restore 执行、workspace-root source、persistence/workspace service reads、model config loading / resolver injection、remote chat history projection / image compression / enhanced-input cleanup、`ImageContextData` concrete impl、terminal pre-warm adapter 与实际 dialog submission routing。
- [x] H3 remote-connect closure:RemoteRelay/Bot dialog submission orchestration、agent type normalization、turn id resolution、restore decision、terminal pre-warm decision、queue policy、remote model selection policy、remote workspace file IO/path helper、remote file command / response assembly、dialog/cancel/interaction response helper、remote chat history presentation assembly 与 image-context adapter contract 归属 `bitfun-services-integrations`;core 继续作为 concrete scheduler/session restore/terminal adapter、workspace-root sourceworkspace/session response adapter、model config resolver adapter 与 persisted history projection adapter,不改变产品行为。
- [x] 已迁移的集成能力保持 core 旧路径 re-export。
- [x] 产品完整 runtime 通过 `services-integrations/product-full` 启用已迁移集成能力。

**当前安全迁移状态:**

- `bitfun-services-integrations` 已承接 `file_watch`、`git`、remote-SSH 纯 contract/helper、MCP protocol/config/runtime/dynamic provider、announcement 纯 types,以及 remote-connect 的 wire DTO、poll/model catalog、tracker、file/image/dialog helperRemoteRelay/Bot orchestration policy。
- `bitfun-services-integrations` 已承接 `file_watch`、`git`、remote-SSH 纯 contract/helper、MCP protocol/config/runtime/dynamic provider、announcement 纯 types,以及 remote-connect 的 wire DTO、poll/model catalog、model selection policy、tracker、file/image/dialog helperRemoteRelay/Bot orchestration policy 与 remote chat history presentation assembly
- core 继续持有 `ConfigService` store adapter、OAuth data-dir 注入、`BitFunError` 映射、legacy facade、全局 tool registry / manifest 组装、SSH runtime manager / fs / terminal、workspace-root source、persistence/workspace service reads、`ImageContextData` concrete impl、terminal adapter、concrete scheduler/session restore 执行和 announcement scheduler/state/content/fetch runtime。
- Deep Review queue/cost/context、session manifest、stream dedupe、search fallback、session rollback persistence 等 latest-main 行为仍属于 core runtime 或对应产品 runtime;继续迁移 remote-connect / MCP / search / session 前必须先补运行状态 port 合约和等价测试。

Expand Down Expand Up @@ -1785,6 +1785,15 @@ HR3:service / agent runtime deep owner migration 的主要风险和控制点
`ConversationCoordinator` 的 runtime-port binding;这让后续 service/agent
runtime 深迁移有唯一审查入口,但不改变 remote-connect / remote-SSH /
scheduler / registry 的实际执行路径。
- 当前 service/agent 深迁移新增完成项:remote chat history 的 message ordering、
tool preview、assistant presentation assembly 已迁入 `bitfun-services-integrations`。
core 只保留 persisted `DialogTurnData` 读取、owner DTO 投影、mobile image compression
和 enhanced remote user input cleanup;remote-SSH、terminal pre-warm、scheduler submit、
workspace-root source 与 session/workspace persistence read 没有迁移或行为调整。
- 当前 service/agent 深迁移新增完成项:remote session/model selection 的 alias、
default/auto、primary/fast 与 config-reference 归一策略已迁入 `bitfun-services-integrations`。
core 继续负责读取 `AIConfig` 并注入 `resolve_model_reference`,保留缺失 config service
的既有错误边界。
- 当前 HR-C 结论:portable contract closure 已完成,新增迁移范围限于
runtime-ports 可承载的 DTO/trait/fact;concrete remote/runtime 执行路径仍按上方 HR3
风险门禁作为后续可选深迁移主题处理。
Expand All @@ -1803,6 +1812,9 @@ HR3:service / agent runtime deep owner migration 的主要风险和控制点
- 可优化点:对 remote-connect 保持 owner crate 只管 orchestration policy,
core 继续拥有 workspace-root source、persistence/workspace service reads 和 concrete scheduler submit,
直到有端到端 remote product regression。
- 可优化点:继续沿用本轮模式拆分“presentation assembly”和“runtime execution”:前者可在
owner crate 中用 DTO + focused contract test 保护,后者必须等到 remote product regression、
port/provider 设计和回滚路径齐备后再移动。
- 必须新增或复用的保护:remote command/response wire、restore -> terminal pre-warm ->
scheduler submit 顺序、file full/chunk/info、image context fallback/preference、
mode-scoped subagent availability、background delivery、DeepResearch citation
Expand Down Expand Up @@ -2043,6 +2055,13 @@ owner 深迁移混入本里程碑。
re-export。queue wait timer 因依赖
`Instant` / `Duration` 且服务 DeepReview admission timing,仍保留 core-owned,后续若外移需
单独证明不是把 runtime state 放入 DTO/trait crate。
- 已迁移的 remote-connect presentation assembly:remote chat history 的 user/assistant
message shape、thinking/text/tool item ordering、tool preview slimming、in-progress assistant
skip 与 tool input exposure policy 由 `bitfun-services-integrations` 组装;core 只负责把
persisted session 数据投影为 `RemoteChatHistoryTurn`,并继续持有 image compression 与增强输入清理。
- 已迁移的 remote model policy:remote session model id normalization、model selection
alias handling 与 config-reference resolution policy 由 `bitfun-services-integrations` 提供;
core adapter 只负责读取 `AIConfig` 并注入 resolver,保持原有 config service 缺失错误。
- concrete scheduler/session restore、workspace-root source、persistence/workspace service reads、
`ImageContextData` concrete impl、remote-SSH runtime、terminal adapter、agent registry/scheduler、
round injection buffer、goal-mode coordinator binding、request-context assembly 与 prompt compression runtime 继续
Expand Down
Loading
Loading