1. 核心目标
将 bitfun-core 从承载大量 concrete runtime / product logic 的中心模块,逐步收敛为兼容层与产品组装入口。重构完成后,核心能力应按稳定接口、runtime owner、product capability 和产品入口分层组合,避免不同交付形态都被迫依赖全量底层实现。
目标依赖方向:
Product Surfaces -> Product Assembly / Capabilities -> Harness / Tool Runtime / Agent Runtime SDK -> Runtime Services -> Stable Contracts / External Providers
本重构不以新增 crate 数量为目标。每次 owner 迁移都必须同时减少、迁移或显著简化既有 core 路径,并保持旧路径兼容和产品行为等价。
2. 重构方案
- 接口与实现分离:下层只暴露 typed ports、DTO、event facts、capability availability 和 hook contracts;具体 filesystem、terminal、Git、AI、MCP、remote、Tauri 等实现由上层组装注册。
- Product Assembly 负责组装:不同平台、产品形态和交付形态通过组装器选择 provider 和 capability,不把平台 handle 或 app state 下沉到 runtime owner。
- Owner crate 承接真实逻辑:Agent Runtime、Runtime Services、Tool Runtime、Harness、Product Domains 只迁移可被测试证明等价的事实、策略、状态机或 runtime 决策。
- Core 保留兼容层:在迁移期保留旧 import path、adapter、具体 IO 接线和产品入口兼容,避免一次性大改导致功能漂移。
- Feature / 构建收益后置:只有 owner 边界稳定后,才评估 default feature、no-default build、交付形态裁剪和构建收益。
3. 关键阶段
| 阶段 |
目标 |
准出要求 |
| 分层与 owner 基线 |
明确 core、runtime services、agent runtime、tool runtime、harness、product domains 的边界 |
文档、AGENTS、boundary check 与实际代码一致 |
| 低风险 owner 收敛 |
迁移纯策略、DTO、manifest、catalog、facts、状态派生和无副作用决策 |
focused tests 证明旧行为等价,旧路径继续可用 |
| 高风险 runtime 迁移 |
逐步迁移 scheduler、event、permission、tool execution、remote、MiniApp、function-agent 等 concrete runtime owner |
先补等价保护,再移动实现;不得混入用户可见行为变更 |
| Harness / capability 组装 |
将多步骤 workflow、capability pack 和 hook/event contract 纳入可扩展组装体系 |
hook 顺序、错误策略、timeout、权限和旧路径兼容均可测 |
| Feature / 构建收益评估 |
基于稳定 owner 边界评估 feature matrix、依赖裁剪和构建收益 |
使用 cargo metadata / cargo tree / build check 数据证明收益与风险 |
4. 质量保护
- 每个 owner 迁移必须有旧路径兼容、focused regression、boundary check 和最小必要 build/check 证据。
- 涉及权限、工具曝光、session 生命周期、scheduler 时序、remote workspace、MiniApp worker / host、Git / AI provider 的变更,必须先补可观测等价测试。
- Runtime / contract crate 不允许吸收 Tauri、app state、process execution、network client、Git provider、AI provider 等 concrete dependency,除非该 crate 明确就是 concrete integration owner。
- 文档只维护稳定设计和活跃计划;已完成事实归档,避免计划文档继续膨胀为流水账。
- 如果发现需要改变功能逻辑、权限边界、事件语义、工具 schema 或交付形态,必须单独评审,不能伪装成结构重构。
5. 主要风险
| 风险 |
控制方式 |
| 只新增抽象,旧逻辑仍留在 core,导致代码膨胀 |
owner PR 必须迁移或简化现有路径;纯 facade / guard 不算完成 |
| 边界模糊,runtime owner 反向依赖 core 或平台实现 |
boundary check、cargo tree、AGENTS 和 crate feature 持续约束 |
| 高风险路径迁移导致功能降级或时序漂移 |
先迁移 facts / decisions,再迁移 lifecycle;无法证明等价则暂停 |
| 为追求构建收益提前裁剪 feature |
feature / build-benefit 只在 owner 稳定后处理 |
| 不同产品形态遗漏 provider 或 capability |
Product Assembly 必须显式注册能力,并验证桌面、CLI、server、remote 等入口的能力范围 |
| 文档与代码漂移 |
每次阶段性变更只更新 plan / completed / issue 状态;设计文档仅在目标设计变化时更新 |
6. 完成标准
bitfun-core 不再是 concrete runtime 和产品能力的默认聚合点,而是兼容 facade 与组装入口。
- Agent Runtime、Runtime Services、Tool Runtime、Harness、Product Domains 均可通过稳定接口独立承接对应 owner 逻辑。
- 不同平台和交付形态可以通过 feature 或 Product Assembly 最小化依赖,而不影响既有功能范围。
- 高风险路径均具备等价保护、旧路径兼容和明确回滚边界。
- 构建收益、依赖裁剪和 feature matrix 有数据证明,且没有功能降级、权限漂移或性能劣化。
7. Issue 生命周期
本 Issue 在完整架构迁移达到完成标准前保持打开。阶段性进展、风险变化和剩余工作可以在评论中更新;正文只维护整体目标、方案、阶段、保护措施、风险和完成标准。
1. 核心目标
将
bitfun-core从承载大量 concrete runtime / product logic 的中心模块,逐步收敛为兼容层与产品组装入口。重构完成后,核心能力应按稳定接口、runtime owner、product capability 和产品入口分层组合,避免不同交付形态都被迫依赖全量底层实现。目标依赖方向:
Product Surfaces -> Product Assembly / Capabilities -> Harness / Tool Runtime / Agent Runtime SDK -> Runtime Services -> Stable Contracts / External Providers本重构不以新增 crate 数量为目标。每次 owner 迁移都必须同时减少、迁移或显著简化既有 core 路径,并保持旧路径兼容和产品行为等价。
2. 重构方案
3. 关键阶段
cargo metadata/cargo tree/ build check 数据证明收益与风险4. 质量保护
5. 主要风险
6. 完成标准
bitfun-core不再是 concrete runtime 和产品能力的默认聚合点,而是兼容 facade 与组装入口。7. Issue 生命周期
本 Issue 在完整架构迁移达到完成标准前保持打开。阶段性进展、风险变化和剩余工作可以在评论中更新;正文只维护整体目标、方案、阶段、保护措施、风险和完成标准。