Codex
14b182d09b
修复 ChatGPT Web 生图调用起始预扣额度
2026-05-24 18:50:14 +08:00
zhefox
9b95fa4d95
fix(gateway): handle responses-shaped OpenAI chat bodies and SSE passthrough
2026-05-22 11:39:38 +08:00
fawney19
d6eb41aa78
Merge remote-tracking branch 'origin/pr/536'
...
# Conflicts:
# apps/aether-gateway/src/execution_runtime/stream/execution.rs
2026-05-21 23:03:14 +08:00
zhefox
68d8f86dc6
fix(gateway): stop stream polling on downstream disconnect and preserve Codex cache keys
2026-05-21 22:26:14 +08:00
zhefox
77c2d91eb0
fix(gateway): drain downstream-disconnected streams and stop inferring cancelled usage
2026-05-21 20:30:44 +08:00
zhefox
71f9afc526
fix(gateway): move openai responses helper import to ai_serving module
2026-05-21 18:09:57 +08:00
zhefox
8ca4a10f24
fix(gateway): require terminal events for OpenAI responses streams
2026-05-21 17:46:21 +08:00
zhefox
b7b7b4f718
fix(gateway): report terminal stream failure errors consistently
2026-05-21 16:15:03 +08:00
zhefox
12abde2aeb
fix(usage): handle terminal stream failures and preserve usage updates
2026-05-21 15:52:51 +08:00
zhefox
e59e6c3797
fix(gateway): sanitize Claude thinking and handle missing stream finish
2026-05-21 12:30:42 +08:00
Entropy.Xu
129c7c90c0
fix(provider): 修复 Windsurf 原生工具桥接
2026-05-21 01:02:02 +08:00
ZheFox
5a9f19cbf2
fix(gateway): filter upstream SSE control-only blocks
2026-05-20 22:33:41 +08:00
ZheFox
2cacf66a37
fix(gateway): route openai image streams with images surface
2026-05-20 18:13:34 +08:00
fawney19
f5deed8709
refactor(proxy): improve tunnel throughput and observability
2026-05-19 23:49:36 +08:00
mayrain
b4d17a392a
feat(kiro): simulate prompt cache usage accounting
2026-05-19 10:47:17 +08:00
fawney19
c563c192b7
Merge remote-tracking branch 'origin/pr-483' into merge-pr-483
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/planner/standard/openai/chat/decision/payload.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/chat/decision/request.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/responses/decision/payload.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/responses/decision/request.rs
# apps/aether-gateway/src/execution_runtime/chatgpt_web_image.rs
2026-05-19 02:23:14 +08:00
fawney19
afedd90c80
Merge commit 'refs/pull/481/head' of github-fawney19:fawney19/Aether
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/api.rs
# apps/aether-gateway/src/ai_serving/planner/standard/family/request.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/chat/decision/request.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/responses/decision/request.rs
2026-05-19 01:46:41 +08:00
ZheFox
691ccaaa04
fix(usage): track OpenAI image SSE completion and usage estimates
2026-05-18 01:32:45 +08:00
ZheFox
2803e9317d
fix(usage): bill cancelled terminal usage and preserve terminal telemetry
2026-05-16 23:43:40 +08:00
fawney19
a2f91b4108
Cancel upstream stream on downstream disconnect
2026-05-16 22:04:11 +08:00
mayrain
5bf236957e
feat(grok): add runtime image surfaces
2026-05-16 21:15:38 +08:00
fawney19
54a8312e46
feat: add adaptive pool metrics and self-check
2026-05-15 02:21:11 +08:00
fawney19
ef4cc55c9a
Record per-candidate upstream error bodies
2026-05-11 02:30:45 +08:00
fawney19
0f42a6ed82
Fix Codex image progress heartbeat merge regressions
2026-05-10 02:10:23 +08:00
fawney19
79d07ac79a
Improve request trace upstream diagnostics
2026-05-09 10:46:04 +08:00
Entropy.Xu
3b4f27f767
Add Codex image progress heartbeat
2026-05-09 01:21:26 +08:00
Entropy.Xu
4baee436ba
feat(image): 接入 ChatGPT Web 生图反代
2026-05-06 11:52:33 +08:00
fawney19
6083461822
Add editable response header rules
2026-05-06 01:29:42 +08:00
fawney19
f959f02d40
Implement transport profile routing
2026-05-05 22:21:23 +08:00
Yao177
c3d97b8c16
fix(proxy): record manual proxy node traffic
...
- add manual proxy traffic mutations to the data layer
- record sync and stream outcomes for manual proxy requests
- prevent tunnel proxy nodes from receiving manual traffic updates
2026-05-03 18:38:04 +08:00
fawney19
c130d0e2c9
refactor ai serving modules and crates
2026-05-02 13:23:54 +08:00
fawney19
07a319259b
Normalize canonical API formats
2026-04-29 10:20:41 +08:00
Entropy.Xu
6e1eaf8aec
fix(kiro): 修复 Kiro WebSearch MCP 调用 ( #344 )
...
* fix(kiro): 接入 Kiro MCP web_search 工具调用
* fix(kiro): 对齐 Kiro IDE MCP 鉴权与 profileArn 头部
* fix(responses): 保留 Responses 嵌套与自定义工具参数
* test(ci): 通过 Rust Action 三项检查
2026-04-27 12:20:26 +08:00
fawney19
5b914aa78c
migrate ai format conversion to responses adapters
2026-04-26 23:59:53 +08:00
Entropy.Xu
d784c540b6
fix(kiro): 隐藏 OAuth 刷新重试流程 ( #339 )
2026-04-25 21:29:45 +08:00
fawney19
00744c0ce5
feat(observability): 引入错误链路 error_flow 元数据并区分上游/客户端错误
...
- 网关在本地 failover 时构建 error_flow 元数据(分类/决策/传播策略),写入 report_context
- scheduler-core 解析并透传 error_flow 至候选 extra_data
- admin usage 详情拆分 request/upstream/client/failure_summary 错误域,敏感上游错误标记为 suppressed
- 前端 RequestDetailDrawer 拆出"返回客户端"与"上游响应"双错误卡片
- HorizontalRequestTimeline 节点详情展示真实请求错误及 error_flow 标签
2026-04-25 17:01:07 +08:00
fawney19
f30b1f3f6b
fix(usage): 流式终端 usage 以更完整值为准,Codex CLI 显式选择 response 解析器
...
- 新增 StandardizedUsage::signal_score/is_more_complete_than/choose_more_complete,流式合并与终端落库均按信号完整度择优
- OpenAI Chat/CLI 解析器支持仅 usage 的终结 chunk 与 response.completed usage
- Codex provider 注入 provider_stream_event_api_format=openai:cli,解析器选择改由 report_context 显式决定
- usage_mapper 扩展嵌套 response/message/item 兼容 Claude message_start/message_delta 及 Gemini stream chunks
- usage SQL upsert 在终态(completed/failed/cancelled)时按 GREATEST 写入 token/费用镜像列
2026-04-25 00:57:01 +08:00
fawney19
3cc54deb9c
fix(gateway): SSE 流跳过成功探测与 prefetch,统计聚合 SQL 显式 CAST BIGINT
...
- stream: event-stream 响应跳过 direct finalize prefetch 与成功失败转移探测,避免消费流首帧
- stream_pump: 仅在已知 content-length 时缓冲非 SSE 响应
- maintenance: usage_billing_facts 聚合列显式 CAST 为 BIGINT,避免类型不匹配
2026-04-24 18:14:59 +08:00
fawney19
f695238e8a
feat(billing): 引入 billing v3 settlement snapshot 及 usage_billing_facts 视图
...
- 新增迁移 20260424000000:为 usage_settlement_snapshots 添加 settlement_snapshot、
billing_dimensions、billing_input/output/cache tokens、billing_total_cost_usd 等列,
并创建 usage_billing_facts 视图(从 settlement snapshot 覆盖原始 usage token/cost 字段)
- event_enrichment:构建结构化 settlement_snapshot(含 pricing_snapshot、billing_plan_snapshot、
resolved_dimensions、cost_breakdown 等),写入 request_metadata
- pricing:新增 pricing_source() 方法区分 provider_override / global_default / unpriced
- sql.rs:settlement snapshot 写入新列;用量汇总查询改用 usage_billing_facts 视图
- maintenance/runtime:所有统计查询的 FROM usage 替换为 FROM usage_billing_facts
- admin observability:在 settlement 响应中暴露 settlement_snapshot / billing_dimensions,
并从 metadata 中剥离对应字段
- request_metadata:允许 settlement_snapshot / billing_dimensions 字段传播
- stream execution:在首个数据帧到达时记录 TTFB,补全流式请求的 streaming 事件
2026-04-24 17:52:33 +08:00
fawney19
f29649e3a8
feat(stream): 在流式执行中引入 StreamingStandardTerminalObserver 用量采集
...
- 在 execute_stream_from_frame_stream 中集成 StreamingStandardTerminalObserver,对流式响应逐行观察并在结束时合并终态摘要
- 新增 observe_stream_usage_bytes / finalize_stream_usage_observer / merge_stream_terminal_summary 辅助函数
- 更新 codex-cli 流式集成测试:补充 response.completed 含完整 usage 字段的 mock 数据,并断言用量写入 usage_repository
2026-04-24 11:34:41 +08:00
fawney19
5d710d9d10
feat(rust): 支持 image 同步转流式 SSE、free_team_first 调度预设及账户错误自动重试
...
- openai:image 同步响应桥接为流式 SSE(image_generation.completed / image_edit.completed 事件)
- image 请求解析与前置校验移除模型白名单,支持任意自定义模型名
- 调度器新增 free_team_first 预设(mode: both / free_only / team_only)
- pool config 解析重构:新增 POOL_ALLOWED_SCHEDULING_PRESETS 白名单,规范化 mode 字段
- 错误分类器新增账户/账单错误模式集,升级为 RetryUpstreamFailure 而非 StopSemanticClientError
- 修复 stream execution 中上游 headers 与输出 headers 混用导致 content-type 判断错误的问题
- codex image 工具始终写入 action 字段(generate/edit),仅 generate 操作填充默认 size/quality
- 前端:pool 节点组只展示实际执行过的候选节点,全部 skipped 时折叠为最后一个节点
- Redis 测试就绪检测从 TCP 连接改为 PING/PONG 协议验证
2026-04-24 10:07:24 +08:00
fawney19
342d4a268c
feat(stream-bridge): 支持上游 sync 响应转 SSE 流式输出,记录 client/upstream 流模式差异
...
- 新增 sync_to_stream 桥接模块,将非 SSE 上游响应转换为 SSE 格式回传给流式客户端
- stream_pump 检测非 SSE 响应头后缓冲整包并通过桥接逻辑重写为 SSE 帧
- proxy handler 同步支持 sync→stream 聚合与转换(覆盖 openai/claude/gemini 四种格式)
- sync_products 补全 openai:cli 的完整流式事件聚合(text delta、reasoning、tool call 等)
- usage runtime 写入 client_requested_stream / upstream_is_stream 到 request_metadata
- SQL 查询层将两个布尔字段从 request_metadata jsonb 中提取并回传给前端
- 前端 status.ts 新增 resolveUsageStreamLabelSegments,优先读取 client_requested_stream
- RequestDetailDrawer 在流式转换场景下显示"客户端→上游"两段 Badge
2026-04-23 21:53:50 +08:00
fawney19
25a2b417be
refactor: 优化调度候选排序与用量写入链路并改进 Fernet 缓存与前端批量列表
2026-04-21 16:19:07 +08:00
fawney19
c1b9d94c84
feat(adaptive): 完善自适应 RPM 学习并将 Pool 调度状态与健康分解耦
...
- orchestration 新增 AdaptiveSuccess 效果,在成功回报路径上根据利用率窗口扩张 learned_rpm_limit
- 429 路径改用 429_observation/adjustment 记录以及基于历史的置信度评估,新增 last_rpm_peak 边界字段
- Pool 调度状态不再因 health_score 低或熔断而降级/拦截,前端同步移除相关按钮与文案兜底
- 新增前端 poolTrace 工具(附测试)承接原 HorizontalRequestTimeline 内的候选合并逻辑
2026-04-20 00:27:48 +08:00
fawney19
3363592751
Refactor usage body capture and stream terminal reporting
2026-04-18 17:48:21 +08:00
fawney19
569242d72f
refactor gateway orchestration and failover effects
2026-04-18 11:35:11 +08:00
fawney19
3321bb3ccc
Implement independent provider pool scheduling runtime
2026-04-17 23:05:49 +08:00
fawney19
704858390d
feat(gateway): 流式执行支持 local tunnel 传输并改进 SSE 错误通知
...
- 流式执行优先尝试 local tunnel 路径,不可用时降级到直连
- stream_pump 适配 Reqwest 和 LocalTunnel 双响应类型
- SSE passthrough 流中断时向下游发送 aether.error 终端事件
- 提取 frame 编码辅助函数消除重复代码
- 新增本地隧道流式场景的集成测试
2026-04-15 21:10:16 +08:00
fawney19
707d9ac274
perf(gateway): 流式处理代码层性能优化
...
- 将 spawn 内 buffered_body 从 Vec<u8> 改为 VecDeque<u8>, drain 前端从 O(n) 变 O(1)
- 消除 prefetched body/chunks 的不必要 clone, 改为直接 move
- Pending/Streaming 非终态候选状态写入改为 tokio::spawn fire-and-forget
- 连接池默认 max_connections 从 30 提升到 50
2026-04-15 11:55:45 +08:00
fawney19
cfb4f4582b
perf(gateway): 限制流式响应体缓冲区大小为 256KB
...
流式转发过程中 provider 和 client 的 body buffer 可能无限增长,
对长响应造成内存压力。添加 256KB 上限, 超出时截断早期数据,
并在上报日志中跳过已截断的 body 以避免输出不完整内容。
2026-04-15 08:46:19 +08:00