Packages

CMDC Gateway — HTTP + SSE + WebSocket 协议网关,接入 CMDC Agent 能力

Current section

Files

Jump to
cmdc_gateway CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to `cmdc_gateway` are documented in this file.
## [0.2.0] - 2026-04-24
### Added — A2A Inter-Agent Communication(ADP Ch15)
- `CMDCGateway.AgentCard` — 生成 A2A 兼容的 Agent Card JSON(capabilities + endpoints)
- `GET /.well-known/agent.json` — 免认证暴露 Agent Card,供其他 A2A Agent 发现
### Added — Guardrails & Safety Control Plane(ADP Ch18 + CMDC v0.2 RFC)
- `POST /v1/sessions/:id/switch_model` — 运行时切模型(RFC C8,async 202)
- `POST /v1/sessions/:id/attach_tool` — 运行时加载工具(RFC C9)
- `DELETE /v1/sessions/:id/tools/:name` — 运行时卸载工具(RFC C9)
- `POST /v1/sessions/:id/steer` — 中段注入指令(Phase 10A)
- `POST /v1/sessions/:id/abort` — 结构化 abort,支持 reason/kill_tools(RFC B6,async 202)
- `GET /v1/sessions/:id/status` — 扩展 session status(pending + queue_sizes,RFC C11)
- `POST /v1/sessions` 新增 userData + promptMode 透传(RFC A1 / Phase 10B)
### Fixed — Meter 自动订阅修复(P0)
- `Meter.init/1` 启动时 `EventBus.subscribe_all/0` 全局订阅
- 自动 `record_token_usage/2` on `{:agent_end, _, %CMDC.TokenUsage{}}` 事件
(支持 cached/reasoning/cost_usd 细粒度字段)
- 移除对 `{:prompt_received}` 的订阅,避免与 Router 手动 `record_prompt/1` 重复计数
### Changed — EventTranslator 白名单扩容
- 新增 7 种事件翻译:`model_switched``tool_attached``tool_detached`
`tool_call_unknown``memory_flushed``plugin_event``steering`
### Changed — 依赖与质量
- `{:cmdc, "~> 0.2"}` 依赖升级
- 新增 `excoveralls` 开发依赖
- Router 的 `CMDC.steer/2` 返回值修正(移除永不匹配的 `:ok` 子句)
- `switch_model`/`abort` 改为 202 Accepted + `async: true`(cast 语义)
- 代码质量 lift:`mix credo --strict` 零 issue(修 `with/else` 单子句 + `try/rescue` 显式 +
cyclomatic complexity + alias 字母序)
### Stats
- 107 个单元 + 集成测试,全部通过(其中 13 个 v0.2 新端点测试)
- `mix compile --warnings-as-errors` 通过
- `mix credo --strict` 0 issue
## [0.1.0] - 2026-04-08
### Added
- `CMDCGateway.Router` — Plug/Cowboy HTTP 路由,13 个 REST 端点
- `CMDCGateway.SessionStore` — ETS Session 注册表,含 tenant_id/api_key 多租户字段
- `CMDCGateway.RateLimiter` — per-api-key 令牌桶限流
- `CMDCGateway.Plugs.Auth` — API Key 认证中间件(X-API-Key / Bearer Token)
- `CMDCGateway.Plugs.RateLimitPlug` — 限流 Plug,返回标准 429 + Retry-After
- `CMDCGateway.Meter` — per-api-key 用量计量(prompt 次数 + token 统计)
- `CMDCGateway.EventTranslator` — 内部 CMDC 事件 → 对外 JSON schema(15 种事件)
- `CMDCGateway.SSEHandler` — Server-Sent Events 流式推送 + 30 秒心跳
- `CMDCGateway.WSHandler` — Cowboy WebSocket 双向通信(事件推送 + 控制消息)
- `CMDCGateway.CallbackTool` — HTTP 回调工具动态注册与代理执行
- `GET /healthz` 健康检查端点(无需认证)
- 84 个单元测试 + 集成测试,全部通过