v0.4.0-rc.1 — 企业级生产发布候选 (Enterprise Release Candidate)
Pre-release
Pre-release
v0.4.0-rc.1 — 企业级生产发布候选(Enterprise Release Candidate)
本次 RC 在 v0.3.3 基础上落地完整企业级演进路线图(审计 P0-P3 全清零 + 6 步路线图全合并),代码与测试层面具备企业级生产商用发布条件。
RC 说明:代码冻结候选。发布前须 ops 补两项确认(见下方「部署前置条件」),确认后转 v0.4.0 正式版。
鉴定结论
| 维度 | 状态 |
|---|---|
| 审计 P0-P3 | ✅ 全清零(PR #17/#24),无阻断缺陷 |
| 测试 | ✅ 536 全绿,CI 8/8 |
| 企业级路线图 | ✅ 6 步全合并 |
| 发布判定 | 代码层面具备企业级生产商用发布条件 |
路线图(6 步,2026-08-31)
- P2 收尾(PR #17)— 幂等键去重(
_idempotency_keyTTL 600s,防客户端断连重复副作用)+ infra_log 双流汇集(基础层错误桥接至环形缓冲,运维可查)。 - 可观测性(PR #19/#20)— 新增
metrics.py(Prometheus 文本暴露,纯进程内注册表零外部依赖)。计数器plugin_executions_total/plugin_errors_total/mcp_tool_calls_total/mcp_tool_errors_total/sandbox_spawns_total;瞬时 gaugeactive_plugins/active_sessions/vram_used_mb。transport 未鉴权GET /metrics短路(text/plain; version=0.0.4),供 Prometheus/K8s scrape。493 测试,CI 8/8。 - 压测(PR #21)— (a) 确定性并发安全回归
tests/test_load.py(8 项入 CI):50 路并发 execute 无丢失 +max_concurrent限流;指标 8 线程×500 inc 零竞态;token-meter 1000 条高频无丢失;沙箱 spawn 风暴 10 轮零泄漏。(b) live MLX 吞吐基准scripts/bench_mlx_load.py:concurrency 8/16 → 6.25 req/s 持平、延迟线性涨 → 瓶颈在下游单引擎,插件层零开销。501 测试,CI 8/8。 - 多节点(PR #22)— 新增
cluster_bridge.py桥接 fusion-cowork 分布式状态层。插件 enabled/disabled + vRAM 跨节点同步;节点心跳 + 失效 failover(stale 节点 evict 清理状态/vRAM)。降级语义:FUSION_CLUSTER_ENABLED未启用或 cowork 缺失时全 no-op,单机行为不变。9 项回归测试。510 测试,CI 8/8。 - 长时稳定性 soak(PR #23)— (a) 确定性长时回归
tests/test_soak.py(8 项入 CI):token-meter 50k record 容量封顶、日志缓冲 10k 封顶、会话 2000 LRU 封顶、计数器 100k 单调无溢出。(b) live MLX soakscripts/soak_mlx.py(60s):23 调用,RSS 50.0→50.3MB 后半段 plateau delta 0.1MB 无泄漏,exec_total==calls,err_total=0。verdict: STABLE。518 测试,CI 8/8。 - P3 工程化清理(PR #24)— (a) TokenMeter WAL 追加写(JSON Lines O(batch) + 周期压缩 snapshot,
seq单调去重防崩溃恢复重复,旧版 list 向后兼容)。(b)cpu_limit默认 0.0=不限(RLIMIT_CPU 累计秒,1.0 会 SIGXCPU 杀合法计算)。(c) 结构化 JSON 日志logging_setup.py(correlation_idContextVar 全链路关联)+ SSE 队列 maxsize=256 满队丢弃不阻塞 +_enable_with_retry仅 vRAM 暂态重试。18 项回归测试。518→536 测试,CI 8/8。
安全
- Bearer 鉴权 + 非 loopback 绑定强制 token(
FUSION_PLUGIN_AUTH_TOKEN),拒绝对外裸奔 - API 密钥 Fernet 加密存储
- 会话上限 LRU(256),错误响应脱敏截断(300 字符)
- 远程传输鉴权拒绝走 stderr 收窄改动面
运维闭环
- 看门狗心跳判死 + atexit 兜底回收(防子进程孤儿)
- token WAL 崩溃恢复(停机 flush→单文件可恢复)
- 结构化 JSON 日志便于 ELK/Loki 聚合
⚠️ 部署前置条件(ops 侧,非代码阻断)
- 多节点 CI 未覆盖:
tests/test_cluster_bridge.py用pytest.importorskip("fusion_cowork"),CI 单仓环境无 fusion_cowork → 9 项测试静默跳过。生产前须在含 fusion_cowork 的 monorepo 环境跑一次该文件,确认集群桥真实生效(本地已验证 510 绿)。 - Soak 实测仅 60s:生产前须运维延长
scripts/soak_mlx.py --duration 86400跑 24h,确认无慢泄漏(second-half plateau delta 法)。
两项均为「发布前 ops 跑一次确认」,非代码缺陷。确认后转 v0.4.0 正式版。
已知边界
- 多节点 HA 的 quorum/脑裂配置在 fusion-cowork 侧,本仓
cluster_bridge只桥接状态,不解决分布式共识(超本仓范围)。 - 系统级吞吐上限受 fusion-mlx 单引擎约束(吞吐 8→16 并发持平 ~6.25 req/s),多并发场景需多引擎/多节点分摊。
测试
536 passed, CI 8/8 green on main.
Full Changelog: v0.3.3...v0.4.0-rc.1