mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-30 22:26:38 +08:00
0b34792709
- openflare/agent/relay/flared 协议类型改为 pkg/protocol 别名,删除重复 struct - 新增 edge/wsclient Preset 表,三组件 wsclient 改为薄包装 - 更新设计文档、计划与 changelog
2.8 KiB
2.8 KiB
边缘运行时 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