Skip to content

docs: ForgeLink Runtime Architecture V2 实施方案 - #30

Merged
dooooling merged 2 commits into
mainfrom
docs/runtime-v2-plan
Aug 25, 2026
Merged

docs: ForgeLink Runtime Architecture V2 实施方案#30
dooooling merged 2 commits into
mainfrom
docs/runtime-v2-plan

Conversation

@dooooling

Copy link
Copy Markdown
Owner

变更内容

新增 \docs/FORGLINK_RUNTIME_V2_IMPLEMENTATION_PLAN.md\(3160 行):Driver Runtime / Device Session / Plugin Runtime 重构实施方案,作为 Phase 0 RFC(PR-1)底稿。

核心设计:

  • 目标:多 Driver 并存、Manifest 唯一事实源、Core 不直接 dlopen(Phase 8 cutover 后生效)、DeviceActor 每设备唯一调度入口、Poll coalesce/stale-drop、进程级 crash/hang 隔离
  • 模块拆分:driver-contract(语义契约)/ driver-abi(C ABI 类型)/ driver-package / driver-host-protocol / driver-runtime / native-driver-loader + apps/driver-host;device-manager 保留 registry/binding/mapping,session ownership 迁入 driver-runtime;driver-sdk 转 Transitional 兼容外壳
  • 规范级别:Normative / Target / Transitional / Proposed 四级标记,含两个待决策门 D1(自研 Driver 是否一律经 Host)与 D2(路线图冻结)
  • 关键语义:§15.1 状态×Observation Quality 映射、§23.3 Host crash 以 AcceptedForExecution 划分 Failed vs Indeterminate(与 control-engine 保守结算一致)、§16.3 跨进程 deadline 用 remaining_budget_ns、§24 IPC 安全(UDS/Pipe ACL + auth token)、§28.1 错误分类不透传北向白名单
  • 实施路径:Phase 012 + PR-118 拆分,S7 Protocol Reset 先于 ABI v2

文档经三轮内部评审修订:章节编号/标题统一、开发顺序矛盾收敛、信封类型定义补全(Device*Request 包装 driver-contract 类型,禁止 control-engine 类型进入 driver-runtime)。

验证结果

  • 纯文档变更,不涉及代码;\cargo check --workspace\ 不受影响
  • 文档内事实性断言已对照仓库核实:DriverErrorInfo 定义于 observation-model/src/raw.rs:35 且字段一致;四个 driver.json 确为 v1 无 schema_version;§23.3 复用的 driver_call_failed/connection_failed 均在 control-engine 白名单(validate.rs:660);§33 S7 canonical 规则与 PR fix: S7 真机联调三处协议缺陷 + DWORD 兼容(Wireshark 官方 dissector 核对) #29 真机联调结论及 Wireshark packet-s7comm.c 常量吻合
  • ⚠️ GitHub Actions 额度已耗尽,CI 无法运行(启动即失败,非本变更引起)

已知限制

  • 本文为 Draft for Implementation:D1/D2 为 Proposed 决策门,批准前不得视为 Normative;Phase 0 将把本文收敛为 docs/architecture/runtime-v2.md 正式架构章节
  • 待 D1/D2 决策后方可开始 Phase 1 实施

…ctor / Driver Host 重构计划)

- 三轮内部评审修订:章节编号/标题层级统一,开发顺序三处矛盾收敛为
  S7 Protocol Reset(Phase 10) -> ABI v2(Phase 11) 单一顺序(§46)
- 引入 Normative/Target/Transitional/Proposed 规范级别与 D1/D2 决策门,
  Edge Core 明确为内部核心层而非第四种 Runtime Role
- device-manager 职责边界(§4.4/§6.7):保留 registry/binding/mapping,
  session ownership 迁入 driver-runtime;新增 driver-abi 契约拆分与
  driver-sdk 兼容外壳策略
- §12.1 DeviceActor 调度信封定义(Device*Request 包装 driver-contract
  类型),禁止 control-engine 领域类型进入 driver-runtime 防反向依赖
- §15.1 状态 x Observation Quality 映射;§23.2/23.3 Host crash 以
  AcceptedForExecution 为确定性边界(Failed vs Indeterminate)
- §16.3 跨进程 deadline 用 remaining_budget_ns;§24 IPC 安全
  (UDS/Pipe ACL + auth token);§28.1 错误分类不透传北向白名单
D1 APPROVED:Phase 8 后所有生产 Driver 必须经 Driver Host;
Pure Rust 默认 per_driver;高风险 Vendor SDK 应 per_device;
in-process 仅开发测试。(§5.2 / §22.2 / §37.9 / §43.2 / §49 同步)

D2 APPROVED:即时冻结 FINS/FOCAS/ADS/新 Driver/ABI v1 新能力;
Milestone B 验收通过后解除;现有协议 bug、安全、正确性修复与
Runtime V2 工作不受限。(§3 / §37.1 / §46 / §47 同步)

新增 §1.1.1 决策记录表;文档状态升级为 Decision Record Revision
@dooooling
dooooling merged commit f91064d into main Aug 25, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant