Skip to content

跟踪 core runtime 架构拆解闭环 #970

@limityan

Description

@limityan

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 在完整架构迁移达到完成标准前保持打开。阶段性进展、风险变化和剩余工作可以在评论中更新;正文只维护整体目标、方案、阶段、保护措施、风险和完成标准。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions