MMEXA
65f43a7aef
同步完整网关回归的画像与目录契约并说明测试环境
2026-10-01 18:39:17 +08:00
AAEE86
926f5cc928
test: slim gateway startup helpers and configure nextest
2026-09-24 10:13:01 +08:00
AAEE86
7e033d0571
feat(codex): add dynamic CLI client profile
2026-09-23 15:57:37 +08:00
elky
b5ed802277
chore(codex): bump default client version to 0.153.4
2026-09-06 19:58:35 +08:00
elky
e29442a06a
merge(main): resolve subscription usage policy conflicts
2026-09-05 14:21:16 +08:00
ZheFox
5ca4f87951
fix(codex): unify management model catalogs and refresh fingerprints
2026-09-05 13:14:24 +08:00
elky
579f2c7cc1
feat(security): harden gateway boundaries and usage policies
...
Consolidate subscription usage policy enforcement, privacy-safe persistence, and gateway security hardening into one reviewable change.
Includes bounded HTTP and execution envelopes, header and protocol guards, DNS and relay validation, authentication and secret projection hardening, secure backup/install paths, and regression coverage.
2026-09-04 03:45:52 +08:00
ZheFox
4da8c57fe3
fix(ai): align Gemini and Responses compatibility
2026-08-27 22:13:20 +08:00
ZheFox
b13d9b9b40
fix(codex): restore upstream model discovery
2026-08-15 19:36:28 +08:00
elky
edb8362adc
fix(provider): omit default model test temperature
2026-08-12 16:56:18 +08:00
MMEXA
2316df5c9a
feat(codex): align Search and execution protocol
2026-07-12 03:04:15 +08:00
MMEXA
dfa121dd5b
feat(openai): align GPT-5.6 and Codex request contracts
2026-07-11 07:40:12 +08:00
MMEXA
5eddf4f9ee
细化 Antigravity 测试模型项目元数据补全
2026-07-08 22:45:30 +08:00
elky
6f00e9fc67
Improve gateway transport and usage runtime
2026-06-25 22:36:27 +08:00
fawney19
b59c724455
Normalize endpoint API root handling
2026-05-29 02:29:33 +08:00
fawney19
2c28d9979c
Merge commit 'refs/pr/585'
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/planner/passthrough/provider/family/request.rs
# apps/aether-gateway/src/tests/ai_execute/stream_provider_gemini/local_cli.rs
# apps/aether-gateway/src/tests/ai_execute/sync/gemini/cli.rs
# apps/aether-gateway/src/tests/control/admin/provider_query.rs
# crates/aether-provider-transport/src/gemini_cli/mod.rs
# crates/aether-provider-transport/src/gemini_cli/request.rs
# crates/aether-provider-transport/src/gemini_cli/url.rs
# crates/aether-provider-transport/src/lib.rs
2026-05-28 13:19:42 +08:00
MMEXA
adca142d1e
fix: adapt gemini cli to v1internal endpoint
2026-05-28 00:24:56 +08:00
Mas0nShi
8b7643e150
Merge remote-tracking branch 'origin/main' into fix/gemini-cli-v1internal
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/transport.rs
# apps/aether-gateway/src/handlers/admin/provider/oauth/dispatch/batch/parse.rs
# apps/aether-gateway/src/handlers/shared/catalog.rs
# crates/aether-admin/src/provider/quota.rs
# crates/aether-model-fetch/src/strategy.rs
# crates/aether-provider-pool/src/lib.rs
# crates/aether-provider-pool/src/service.rs
# crates/aether-provider-transport/src/provider_types.rs
# frontend/src/features/providers/components/ProviderDetailDrawer.vue
# frontend/src/utils/__tests__/providerKeyQuota.spec.ts
# frontend/src/utils/providerKeyQuota.ts
# frontend/src/views/admin/PoolManagement.vue
2026-05-22 17:13:57 +08:00
Mas0nShi
9533bd7043
fix: route Gemini CLI generateContent through stream
2026-05-22 09:30:55 +08:00
Mas0nShi
66f21de50e
fix: unwrap Gemini CLI model test envelopes
2026-05-21 17:39:10 +08:00
Mas0nShi
3e6ce6cf4a
fix: hydrate Gemini CLI project metadata
2026-05-21 17:10:17 +08:00
Mas0nShi
e53d5f07e8
feat: support Gemini CLI v1internal quota
2026-05-21 15:38:10 +08:00
Entropy.Xu
129c7c90c0
fix(provider): 修复 Windsurf 原生工具桥接
2026-05-21 01:02:02 +08:00
Entropy.Xu
9466d92a7a
fix(provider): 接入 Windsurf 模型拉取和格式转换
2026-05-21 01:02:02 +08:00
fawney19
69af74b1e0
Merge PR #488 and #489
2026-05-19 03:16:35 +08:00
MMEXA
b480f3aaff
fix(gateway): normalize Gemini Vertex embedding transport
2026-05-18 15:39:29 +00:00
mayrain
936e1ae37b
feat(grok): add admin oauth and quota support
2026-05-16 21:15:38 +08:00
ZheFox
a0eed2cc51
fix: split Codex chat and responses defaults
2026-05-14 15:33:03 +08:00
mayrain
9f26383de5
fix: route provider model tests through candidates
2026-05-12 20:11:16 +08:00
fawney19
1d62722d47
Improve Codex model fetching
2026-05-04 01:16:56 +08:00
fawney19
07a319259b
Normalize canonical API formats
2026-04-29 10:20:41 +08:00
fawney19
ea3dc3257e
clean up legacy openai cli adapter names
2026-04-26 23:59:53 +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 and Entropy.Xu
fa328e18a1
feat: provider api_formats 可空继承、OpenAI 图片 edit/variation 与用量配额多项补强
...
- 鉴权: provider_api_keys.api_formats 改为可空,OAuth 托管 key 自动继承 provider endpoints 激活格式,相关 handler/测试同步更新
- 图片 planner: OpenAI 图片路由新增 edit/variation 操作并完善参数校验、响应合并与流式处理
- 用量: user me usage 返回区分 client_requested_stream/upstream_is_stream,前端 usage 列表筛选与展示增强
- 统计: stats_daily_model 新增 cache_creation_ephemeral_5m/1h tokens 字段与回填链路
- 配额/observability: quota repository 新增内存与 SQL 扩展,admin observability usage 字段扩充
- 其它: OAuth 导入/轮询收敛、provider 汇总与 pool admin 读写链路小修、新增 system_config 缓存与 provider template handler
Closes #318
Co-authored-by: Entropy.Xu <[email protected] >
2026-04-23 14:42:51 +08:00
RWDai and fawney19
425227509a
Fix/provider query cli model tests ( #312 )
...
* fix(admin): support openai cli provider-query model tests
* fix(admin): support claude and gemini cli provider-query model tests
* fix(admin): preserve provider-query prompts on cli fallback
* test(usage): relax async status wait for local usage checks
* fix(gateway): align provider-query CLI auth and headers
* fix(gateway): resolve provider-query clippy lint
---------
Co-authored-by: fawney19 <[email protected] >
2026-04-18 23:05:39 +08:00
RWDai and fawney19
dd4641d618
Fix/provider query non kiro tests ( #311 )
...
* fix(admin): enable local provider-query tests for non-kiro providers
* test(admin): cover non-kiro provider-query model execution
* fix(admin): preserve provider-query test errors and failover retries
* fix(admin): handle provider-query test alias and HTTP retry edges
* fix(admin): extend provider-query failover coverage and fallback behavior
* fix(admin): prefer supported endpoints for provider-query tests
* fix(admin): prefer provider-query endpoints with compatible keys
* fix(admin): fall back to compatible provider-query endpoints
* fix(admin): align provider-query local tests with transport policy
---------
Co-authored-by: fawney19 <[email protected] >
2026-04-17 19:45:20 +08:00
Entropy.Xu and fawney19
ac1a126756
fix(kiro,pool,model): 对齐 Kiro 管理链路并修复全局模型删除行为 ( #305 )
...
* feat(pool): 号池支持跳过额度耗尽账号
- 新增 pool_advanced.skip_exhausted_accounts 开关及高级设置 UI, 默认关闭并兼容旧配置
- 为 Codex/Kiro 增加额度耗尽判定, 接入请求侧候选跳过并新增 account_quota_exhausted skip reason
- 号池列表将额度耗尽账号标记为 blocked/额度耗尽, 并补充前后端相关测试
* fix(kiro): 对齐账号管理与 provider-query 的 Rust 行为
- 修复 Kiro 单条导入误走 import-refresh-token 的前端分流, 并为误用路径返回明确错误提示
- 为 Kiro 导入与本地请求链补齐 bearer 兼容, 同步放开账号启停等 Key 更新操作的 auth_type 校验
- 实现 Kiro provider-query 本地模型测试与 failover 执行链, 并修复结果弹窗在无 trace 时无法展示 attempts/响应体的问题
* fix(model): 删除全局模型时级联清理关联提供商模型
- 对齐 Python 版本删除逻辑, GlobalModel 删除前先在事务内清理关联的 Provider Model 记录
- 修复已绑定 Provider 的模型在 Rust SQL 仓库下会被外键约束拦住、无法正常删除的问题
- 增加管理端回归测试, 覆盖绑定 Provider Model 的 GlobalModel 删除场景
* fix(kiro,ci): 恢复 Kiro OAuth 持久化并修复 Rust CI
* Fix oauth-managed provider key semantics
---------
Co-authored-by: fawney19 <[email protected] >
2026-04-17 12:57:06 +08:00
AAEE86
ab82841426
feat(model-fetch): 对齐 Rust 上游模型抓取行为到 Python 语义
...
将 Rust 版上游可用模型抓取逻辑收敛到 Python 版行为,统一后台自动抓模
与管理员 provider-query 的模型发现路径,消除标准 /models、固定模型目录、
Antigravity、Vertex AI 等 provider 在两端实现上的分叉。
核心变更:
- 在 aether-model-fetch 中引入统一抓模策略层
- 覆盖标准 /models、Vertex API Key、Vertex Service Account、
Antigravity fetchAvailableModels、固定模型目录五类抓模路径
- 将 provider-query 与后台自动抓模都切换到共享抓模入口,避免重复拼接
URL、headers 和 provider 特判逻辑
标准模型抓取对齐:
- 按 Python 语义调整抓模优先级:
openai:chat > openai:cli > openai:compact
claude:chat > claude:cli
gemini:chat > gemini:cli
- 从抓模候选中移除 openai:responses
- 为 openai:cli/openai:compact、claude:cli、gemini:* 补齐 Python 同款
User-Agent / 浏览器指纹请求头
- Claude 抓模保留 after_id 分页语义
- Gemini 抓模统一为 v1beta/models?key=... 语义
provider-query 对齐:
- 返回结果改为按 model id 聚合,并合并/排序 api_formats
- 最终模型列表按 model id 排序,行为与 Python 保持一致
- 固定目录 provider(codex/kiro/claude_code/gemini_cli)不再依赖活跃
endpoint,即使无 endpoint 也能返回预设模型目录
- Antigravity 多 key 查询改为按账户可用性 + tier 排序,首个成功结果即
停止,并接入 provider 级缓存
- 仅配置 openai:responses 的 provider 不再被视为抓模成功路径
自动抓模对齐:
- 自动抓模成功时写入 allowed_models、upstream_models cache,并同步
upstream_metadata
- upstream_metadata 合并逻辑对齐 Python,对 quota_by_model 做模型级合并,
并保留已有 reset_time
- 自动抓模失败时不覆盖已有 allowed_models
- 固定目录 provider 在无 endpoint 场景下也可成功更新 allowed_models
Antigravity 对齐:
- 使用 POST /v1internal:fetchAvailableModels 抓取可用模型
- 按 Python 规则处理 URL fallback 和 429/404/408/5xx fallback 状态
- 强制要求 auth_config.project_id
- 过滤 Python 黑名单模型
- 解析并持久化 upstream_metadata.antigravity.quota_by_model
Vertex AI 对齐:
- API Key 模式仅抓取 publishers/google/models
- Service Account 模式新增 JWT token exchange,并按 Python region 顺序
抓取 google + anthropic publishers
- 模型 owned_by / display_name / api_format 推断与 Python 对齐
- 软 404 处理行为与 Python 收敛
Gemini CLI / 固定目录对齐:
- Gemini CLI 改为返回 Python 预设模型目录
- 在可用时通过 loadCodeAssist 补充 plan_type/project_id 元数据
- Codex/Kiro/Claude Code 改为共享固定模型目录实现
测试:
- 扩展 aether-model-fetch 单元测试,覆盖格式优先级、openai:responses 排除、
请求头、Claude 分页、Gemini query auth、固定目录与 metadata 合并
- 调整 provider-query 控制面测试到 Python 语义
- 新增自动抓模运行时测试,覆盖固定目录成功、Antigravity metadata 合并、
失败保留旧 allowed_models
验证:
- cargo nextest run -p aether-model-fetch --lib
- cargo nextest run -p aether-gateway control::admin::provider_query model_fetch::runtime::tests
2026-04-12 10:14:29 +08:00
fawney19
b901a6ffc7
chore: 移除废弃的 build-hub workflow,格式化测试代码
2026-04-09 14:01:37 +08:00
fawney19
fe81eafe2c
feat: 增强 provider query 端点选择逻辑,支持 openai:responses 格式与 key 级 api_formats 过滤
...
- provider_query_selected_fetch_endpoints 支持按 key.api_formats 过滤可用端点
- 端点选择增加 endpoint_supports_rust_models_fetch 检查
- 支持优先级列表之外的自定义 api_format 端点
- 新增 openai:responses 端点的 provider query 集成测试
- 各 crate 补充缺失的 tracing instrument 和小修正
- 前端 Pool 管理页面补充状态逻辑
2026-04-09 13:55:18 +08:00
fawney19
b0b40c16ff
feat: 全栈功能增强 - 扩展 provider/pool 管理、完善调度与数据层、重构前端 Pool 页面
...
后端:
- 扩展 pool_admin payloads 和 provider query models,增强 endpoint key 管理
- 完善 scheduler-core 候选排序与请求候选逻辑
- 增强 usage-runtime 写入、provider-transport 网络层与 OAuth 刷新
- 改进 AI pipeline 响应转换与流式处理
- 扩展 global_models/provider_catalog 数据层查询能力
- 增强 video-tasks-core 多 provider 支持
- 新增大量集成测试覆盖 pool/keys/provider_query/frontdoor
前端:
- 重构 PoolManagement 页面,拆分状态管理/对话框逻辑到独立模块
- 新增 poolAdvancedDialog/poolSchedulingDialog/poolManagementState/poolMobilePresentation 工具函数及测试
- 改进 Dialog 组件与 provider tabs 显示
部署:
- 更新 Rust CI workflow 和 Dockerfile 构建配置
Closes #275
Co-authored-by: AAEE86 <[email protected] >
2026-04-09 13:51:50 +08:00
fawney19
5d96d6673b
refactor: 大规模模块拆分与代码精简,新增 ai-pipeline/data-contracts 独立 crate
...
- 新增 aether-ai-pipeline 和 aether-data-contracts crate,将 pipeline 逻辑与数据契约从 gateway 中解耦
- 重构 admin handlers:拆分单体模块为 auth/billing/endpoint/features/model/observability/provider/system 等独立子模块
- 合并 chat/cli 重复代码路径:精简 conversion、finalize、planner 中的 sync/chat/cli 分支
- 重构 scheduler/executor/data 层,引入 facade 模式降低模块间耦合
- 移除冗余的 intent 模块,将 plan_fallback/policy/stream_path/sync_path 迁移至 executor
- 前端适配:调整 admin API 调用和 provider 模型测试对话框
2026-04-07 02:50:19 +08:00
fawney19
763ff03a7b
refactor: 拆分 gateway 单体为独立 crate,新增 systemd 部署方案
...
将 gateway 内部的 model-fetch、provider-transport、scheduler-core、
usage-runtime、video-tasks-core 模块提取为独立 crate;重构 gateway
内部模块结构(state/router/cache/data/query 等);移除大量遗留模块
文件;新增 systemd 二进制部署骨架及相关文档;更新前端 usage 相关
API 和组件。
2026-04-05 20:23:16 +08:00