Repository navigation
v0.3.9 — Command Code CLI bridge (native Responses), cache-hit billing, client-abort accounting
v0.3.9
新增
- Command Code CLI 桥接(新 crate
crates/maxllm-commandcode):把厂商自有的
cmd -p <query> --output-format json客户端包成 OpenAI 服务,原生实现 Responses 契约
(POST /v1/responses,流式 SSE 事件按response.created→in_progress→
output_item.added→content_part.added→output_text.delta→output_text.done→
content_part.done→output_item.done→response.completed→data: [DONE]顺序,
每个事件带单调sequence_number),并同时提供 Chat Completions。
reasoning.effort映射到 CLI 的--effort。19 个单测,clippy-D warnings通过。 - commandcode.ai provider(native Responses 优先)与 open-design.ai provider
(原生 Rust 实现),均已进/v1/models与独立路由。 - prompt-cache 计费:
/v1/responses读取上游返回的缓存命中数,统一两套 usage 解析器;
admin 按模型的 cache rate 给缓存命中计费(线上实测 MiniMax 命中率 98.5%,批量成本降到 1/4)。 - 可观测性:stream 截断、用量与成本可见且可自纠正;
client_aborted_total与
provider 故障分开统计;/health不再把 half-open 熔断器算作 open;看板按 provider
分别报 client abort 与截断。
修复
- 未知模型自动改写:上游 404(vLLM 风格)或 failover 时,把 body 里的
model改写成
该 provider 的default_model后重试一次,避免整条 fallback 链集体 400。 - 客户端中断不再记成 provider 故障:被下游中断的流按 client abort 记账,
不再污染熔断器与截断率;fast-path 的中断抓取也不再产生幽灵request_logs行。 - 熔断器不再每 60 秒抖动(stream demotion hold 升级);上游已消失的 provider 其
resilience 状态会被清理;native Responses 路径的tool_choice: "any"修复。 - 落盘的录制 body 在写盘前脱敏凭据与 PII;
/health半开探测不再误开熔断器。
运维 / 工具
scripts/:新增openobserve_alerts.py、stream_outcomes.py(按“谁关的流”区分 200
的归属)、redact_recordings.py、rotate_logs.py;pool_health.py改为探测每个具名
auto 池;check_responses_policy.py校验「凡是能上 Responses 的上游都必须 native」。docs/ops_review_20261108.md:生产网关运维评审(截断、用量核算、可观测性缺口)。
验证
- CI(
workflow_dispatch,refv0.3.9):Check / Test / Clippy / Format /
Responses policy / Build Release 全部通过。 - 本地门禁:
cargo fmt --all -- --check、cargo clippy --workspace --all-targets -- -D warnings、
cargo test --workspace全绿。
注:本仓库的 push 事件不触发 Actions,CI 需手动
gh workflow run CI --ref v0.3.9;
因此 v0.3.9 未发布 Docker 镜像(docker job 需要push事件)。