Files
OpenFlare/docs/plan/20260619-edge-phase3-tasks.md
T
ryan 0b34792709 refactor(edge): Server 协议统一与 wsclient 收敛(Phase 3 Batch 3)
- openflare/agent/relay/flared 协议类型改为 pkg/protocol 别名,删除重复 struct
- 新增 edge/wsclient Preset 表,三组件 wsclient 改为薄包装
- 更新设计文档、计划与 changelog
2026-06-19 15:00:46 +08:00

2.8 KiB
Raw Blame History

边缘运行时 Phase 3 — 任务拆解

状态:Batch 3 已完成(2026-06-19) 前置:边缘运行时重构设计 Phase 0–2 已完成


任务依赖图

Batch 1(并行,互不影响)
├── T1  edge/config/duration.go
├── T2  edge/observability/linux.go
└── T3  edge/heartbeat/loop.go(仅 relay/flared)

Batch 2(串行,依赖 Batch 1 或需独立评审)
├── T4  Agent heartbeat 架构对齐(runner ↔ heartbeat service)
└── T5  agent/protocol → pkg/protocol(影响 Server 侧)

Batch 1 — 并行任务

ID 任务 修改范围 风险 委派
T1 抽取 MillisecondDuration edge/config/ + agent/relay/flared/config 低 ✅ 子代理 A
T2 抽取 Linux 指标采集 edge/observability/ + agent/relay/observability/collector.go 中 ✅ 子代理 B
T3 统一心跳 ticker 循环 edge/heartbeat/loop.go + relay/flared/heartbeat 低 ✅ 子代理 C

隔离规则

  • T1 禁止修改 heartbeat/、observability/、agent/runner.go
  • T2 禁止修改 config/、heartbeat/
  • T3 禁止修改 agent/ 任何文件(Agent 心跳留在 runner,Batch 2 处理)

Batch 2 — 并行任务(已完成)

ID 任务 修改范围 状态
T4 Agent heartbeat 架构对齐 heartbeat/cycle.go + 精简 agent/runner.go ✅ 子代理 D
T5 agent/protocol → pkg/protocol pkg/protocol/agent.go + protocol/alias.go ✅ 子代理 E

Batch 3 — 并行任务(已完成)

ID 任务 修改范围 状态
T6 Server 侧协议统一 pkg/protocol/ + internal/apps/openflare/{agent,relay,flared}/ ✅ 子代理 F
T7 wsclient 收敛 edge/wsclient/ + 三组件 wsclient/ 薄包装 ✅ 子代理 G

T6 要点

  • openflare/agent 的 NodePayload、观测类型、WAF 类型改为 pkg/protocol 别名
  • 保留 Server 专有响应:RegistrationResponse(access_token)、HeartbeatResponse(含 *model.OpenFlareNode)
  • openflare/relay、openflare/flared 心跳/配置载荷改为 pkg/protocol 别名

T7 要点

  • 新增 internal/apps/edge/wsclient/,配置表驱动(HeaderKey + WSPath)
  • Agent 保留 SendStatus + protocol.WebSocketConnection 适配
  • relay/flared/agent 的 wsclient/ 仅保留 New() 工厂

验收标准

go build ./cmd/agent ./cmd/relay ./cmd/flared
go test ./internal/apps/edge/... ./internal/apps/agent/... ./internal/apps/relay/... ./internal/apps/flared/... ./internal/apps/openflare/... ./pkg/protocol/... -count=1
make code-check