refactor: 拆分 admin handler 大文件为模块目录,消除 shared.rs 反模式

- endpoint_keys/pool/architecture 等大文件拆分为独立模块目录
- 删除 crud/query/strategy/system 中的 shared.rs,内容归位到各自模块
- endpoints_admin/models/oauth/write 等模块拆出 payloads/responses/support 子文件
- system/core 下多个 *_routes.rs 合并到 system_routes.rs
- 更新 refactor-execution-plan 文档进度
This commit is contained in:
fawney19
2026-04-07 12:15:19 +08:00
parent 29055c575f
commit 4fb9882b54
109 changed files with 8151 additions and 7047 deletions

View File

@@ -586,13 +586,32 @@
- [x] 2026-04-07M3 第十五轮已将 `handlers/admin/endpoint/keys.rs` 的 provider key 管理逻辑整体迁入 `handlers/admin/provider/endpoint_keys.rs`,旧入口现退化为 thin wrapper`endpoint` 子域不再实际拥有 key reveal/export/create/update/refresh/batch 逻辑,只保留路由装配。架构护栏同步要求 `endpoint/keys.rs` 只委托 `provider::endpoint_keys`
- [x] 2026-04-07M3 第十六轮已将 `handlers/admin/system/pool/**` 五个实现文件整体迁入 `handlers/admin/provider/pool_admin/**`,旧 `system/pool/mod.rs` 现退化为 thin wrapper`system` 子域不再实际拥有 pool overview/list/resolve-selection/batch-import/batch-action/cleanup 逻辑,只保留入口装配。架构护栏同步要求 `system/pool/mod.rs` 只委托 `provider::pool_admin`
- [x] 2026-04-07M3 第十七轮已将 `handlers/admin/endpoint` 下的 provider-owned endpoint CRUD 整簇迁入 `handlers/admin/provider/endpoints_admin/**`;旧 `endpoint/routes.rs` 现退化为 thin wrapper`endpoint` 子域只继续拥有 `health/rpm/keys` 入口。架构护栏同步要求 `endpoint/routes.rs` 只委托 `provider::endpoints_admin`
- [x] 2026-04-07M3 第二十七轮已将 `handlers/admin/provider/ops` 的 admin action helper 所有权固定在 `handlers/admin/provider/ops/providers/*``handlers/admin/provider/ops/mod.rs` 不再重新导出 `admin_provider_ops_local_action_response`;同时已收紧 `handlers/admin/provider/oauth/mod.rs`,禁止 alias re-export `self::quota`, `self::refresh`, `self::state`oauth 子树内部改为直连真实子模块
- [x] 2026-04-07M3 第十八轮已将 `handlers/admin/system/core/oauth_routes.rs` 的 auth-owned oauth config 路由整体迁入 `handlers/admin/auth/oauth_routes.rs`,并将 `AdminOAuthProviderUpsertRequest` 与 oauth path parser 一并下沉到 `handlers/admin/auth/oauth_config.rs`;旧 `system/core/oauth_routes.rs` 现退化为 thin wrapper`system/shared/payloads.rs` 已删除。架构护栏同步要求 oauth config route / DTO / path helper 均归 `auth` 子域拥有
- [x] 2026-04-07M3 第十九轮已将 `handlers/admin/system/core/model_routes.rs` 的 model-owned catalog/external-cache 路由整体迁入 `handlers/admin/model/catalog_routes.rs`;旧 `system/core/model_routes.rs` 现退化为 thin wrapper`system/core` 不再保留 model catalog data-unavailable helper。架构护栏同步要求该 route seam 归 `model` 子域拥有
- [x] 2026-04-07M3 第二十轮已将 `handlers/admin/system/core/{management_tokens_routes,modules_routes}.rs` 的 system-owned route owner 迁入 `handlers/admin/system/{management_tokens,modules}.rs`;旧 `system/core/*` 入口现退化为 thin wrapper`handlers/admin/system/mod.rs` 直接暴露 `management_tokens/modules` seam不再把这两条 route owner 藏在 `core` 内部
- [x] 2026-04-07M3 第二十一轮已将 admin module DTO / path parser / runtime / validation / status payload owner 从 `handlers/public/system_modules_helpers/modules.rs` 下沉到 `handlers/admin/system/shared/modules.rs``handlers/public/system_modules_helpers.rs``handlers/public/mod.rs` 不再 re-export 这批 admin helperpublic 侧仅保留 public auth module 状态能力。架构护栏同步要求 admin module helper 不得回流到 `handlers/public/system_modules_helpers*`
- [x] 2026-04-07M3 第二十二轮已将 `handlers/admin/system/core/system_routes.rs` 对 system-owned settings / configs / export helper 的依赖切到 `handlers/admin/system/shared/{settings,configs}.rs``handlers/public/system_modules_helpers.rs``handlers/public/mod.rs` 不再对外暴露 `current_aether_version`、system settings/config CRUD、config export/users export 或 `serialize_admin_system_users_export_wallet`
- [x] 2026-04-07M3 第二十三轮已将 `system_config_*``module_available_from_env` 与 admin email template 底层读取/渲染原语上提到 `handlers/shared/{system_config_values,email_templates}.rs`,并将 admin 邮件模板 route helper 明确下沉到 `handlers/admin/system/shared/email_templates.rs``handlers/public/system_modules_helpers/system.rs` 现退化为 shared helper re-export不再持有 ownership。架构护栏同步要求 shared owner 固定在 `handlers/shared/*`,且 `handlers/admin/system/shared/system.rs``email_templates.rs` 取代
- [x] 2026-04-07M3 第二十三轮已将 `system_config_*``module_available_from_env` 与 admin email template 底层读取/渲染原语上提到 `handlers/shared/{system_config_values,email_templatd'w'qes}.rs`,并将 admin 邮件模板 route helper 明确下沉到 `handlers/admin/system/shared/email_templates.rs``handlers/public/system_modules_helpers/system.rs` 现退化为 shared helper re-export不再持有 ownership。架构护栏同步要求 shared owner 固定在 `handlers/shared/*`,且 `handlers/admin/system/shared/system.rs``email_templates.rs` 取代
- [x] 2026-04-07M3 第二十四轮已将 `build_proxy_error_response``handlers/admin/auth/oauth_config.rs` 上提到 `handlers/admin/shared/proxy_errors.rs``system/core/system_routes.rs``system/adaptive/routes.rs``features/video_tasks/routes.rs``provider/strategy/shared.rs``auth/oauth_routes.rs` 均改为直接依赖 `handlers/admin/shared`。架构护栏同步禁止该错误 builder 回流到 `auth` 或被 `provider/system` 根入口继续借用
- [x] 2026-04-07M3 第二十五轮已将 provider-model 的 payload/write builder owner 从 `handlers/admin/model/{payloads,write}.rs` 下沉回 `handlers/admin/provider/models/{payloads,write}.rs``provider/models/*` 路由文件现全部直连本地 owner`handlers/admin/model/mod.rs` 不再导出 `build_admin_provider_model_*``admin_provider_model_name_exists``build_admin_import_provider_models_payload``build_admin_batch_assign_global_models_payload` 等 provider-model helper。架构护栏同步要求 `provider/models` 根模块登记本地 `payloads/write`,并禁止 route files 再从 `admin/model` 借 builder
- [x] 2026-04-07M3 第二十六轮已删除 `handlers/admin/system/core/{management_tokens_routes,model_routes,modules_routes,oauth_routes}.rs``handlers/admin/endpoint/{keys,routes}.rs` 这批失去价值的 thin wrapper`system/core/mod.rs``endpoint/mod.rs` 现直接 dispatch 到 `system/auth/model/provider` 的真实 owner。同步删除 `handlers/admin/system/pool/mod.rs``handlers/admin/system/mod.rs` 直接暴露 `provider::pool_admin` seam。架构护栏升级为要求这些 wrapper 文件不存在,并要求根模块直接依赖真实 owner
- [x] 2026-04-07M3 第二十八轮已将 `normalize_provider_billing_type``parse_optional_rfc3339_unix_secs` 的 owner 从 `handlers/admin/provider/write/mod.rs` 上提到 `handlers/admin/provider/shared/support.rs``handlers/admin/provider/strategy/builders.rs``handlers/admin/provider/write/provider.rs` 现统一直连 `provider::shared`,不再让 `strategy` 借用 `write` 子域的 billing/time normalizer
- [x] 2026-04-07M3 第二十九轮已将 `handlers/admin/system/shared/mod.rs` 从兼容 re-export hub 收缩为纯子模块边界;`system/auth` 子树当前已显式依赖 `shared::{configs,email_templates,modules,paths,settings}` 的真实 owner根模块不再继续转运 `configs::*``email_templates::*``modules::*``paths::*``settings::*`
- [x] 2026-04-07M3 第三十轮已清空 `handlers/admin/provider/shared/mod.rs` 的兼容 wildcard re-export`provider` 子树当前已显式依赖 `shared::{paths,payloads,support}` 的真实 owner根模块不再继续转运 `paths::*``payloads::*``support::*`
- [x] 2026-04-07M3 第三十一轮已将 `handlers/admin/provider/query/shared.rs` 拆为 `query/payload.rs``query/response.rs` 两个局部 owner`query/models.rs``query/routes.rs` 当前分别直连所需的 payload extractor 与 response helper不再依赖 generic `query::shared`
- [x] 2026-04-07M3 第三十二轮已将 `handlers/admin/provider/strategy/shared.rs` 收缩并重命名为 `strategy/responses.rs``routes.rs` 只从 `responses.rs` 获取 data-unavailable 响应,`builders.rs` 的 provider-not-found 响应已本地化,`strategy` 子域不再保留 generic `shared` 入口
- [x] 2026-04-07M3 第三十三轮已将 `handlers/admin/provider/crud/shared.rs` 收缩并重命名为 `crud/responses.rs``crud/routes.rs` 当前直接依赖局部 response owner`crud/mod.rs` 不再保留 `use shared::*` 形式的局部 facade
- [x] 2026-04-07M3 第三十四轮已将 `handlers/admin/provider/pool.rs` 收束为显式 `pool::{config,runtime}` 边界;`pool/config.rs` 持有 pool config 解析,`pool/runtime.rs` 持有 Redis runtime 读取与 pool status/mutation helper`pool_admin/{read_routes,batch_routes}.rs``crud/routes.rs` 已改为直连这些真实 owner
- [x] 2026-04-07M3 第三十五轮已将 `handlers/admin/provider/write/mod.rs` 从 helper hub 收束为显式 `write::{keys,normalize,provider,reveal}` 边界;`endpoint_keys.rs``crud/routes.rs` 当前分别直连 `write::keys/reveal``write::provider``keys.rs` / `provider.rs` 也已停止通过 `write/mod.rs` 中转 shared normalize helper
- [x] 2026-04-07M3 第三十六轮已将 `handlers/admin/provider/oauth/dispatch/mod.rs` 的 audit attachment helper 下沉到 `dispatch/helpers.rs``dispatch/mod.rs` 当前只负责 route-kind 分发和薄调度,不再同时持有本地共享 helper 实现
- [x] 2026-04-07M3 第三十七轮已将 `handlers/admin/provider/ops/providers/mod.rs` 从 DTO/常量/helper hub 收束为薄装配层;新增 `ops/providers/support.rs` 持有 request DTO 与 runtime-only message/敏感字段常量,`routes.rs` 改为显式直连 `actions/config/support/verify``maintenance/runtime*` 也已改成从 `providers::actions` 直接调用 `admin_provider_ops_local_action_response`
- [x] 2026-04-07M3 第三十八轮已清理 `handlers/admin/provider/oauth/mod.rs` 根 re-export只保留 dispatch entry seam`handlers/internal/{mod,gateway_helpers,gateway}.rs` 现直接通过 `oauth::refresh::build_internal_control_error_response``handlers/admin/provider/endpoint_keys.rs` 直接从 `oauth::quota::*` 读取 quota helper架构断言禁止该仓库重新转运 quota/refresh helper
- [x] 2026-04-07M3 第三十九轮已将 `handlers/admin/provider/pool_admin/mod.rs` 从本地 parser/const hub 收束为薄装配层;新增 `pool_admin/support.rs` 持有常量、query/path parser、route matcher、error response 与 `AdminPoolResolveSelectionRequest``read_routes.rs` / `batch_routes.rs` 已改为显式直连 `support`
- [x] 2026-04-07M3 第四十轮已将 `handlers/admin/provider/oauth/quota/mod.rs` 从 quota helper re-export hub 收束为显式边界;`endpoint_keys.rs``oauth/refresh.rs``dispatch/{complete,refresh}.rs` 已改为直连 `quota::{antigravity,codex,kiro,shared}` 的真实 owner`antigravity/codex/kiro.rs` 也已显式从 `shared.rs` 引入公共 quota helper
- [x] 2026-04-07M3 第四十一轮已将 `handlers/admin/provider/endpoints_admin/read_routes.rs` 拆为 `list.rs``detail.rs``defaults.rs` 三个真实 route owner`endpoints_admin/mod.rs` 当前直接 dispatch 这三条读路径,不再保留 generic read bus
- [x] 2026-04-07M3 第四十二轮已将 `handlers/admin/provider/endpoints_admin/write_routes.rs` 拆为 `create.rs``update.rs``delete.rs` 三个真实 route owner`endpoints_admin/mod.rs` 当前直接 dispatch 六个显式 route owner并新增架构断言禁止 `read_routes/write_routes` bus 回流
- [x] 2026-04-07M3 第四十三轮已将 `handlers/admin/provider/endpoint_keys.rs` 从 keys/quota CRUD 总线收束为 `endpoint_keys/{reads,mutations,quota}.rs` 三个真实 owner根模块当前只做显式 dispatch不再直接持有 grouped-by-format、reveal/export、key CRUD、batch delete、clear-oauth-invalid 与 refresh-quota 路由实现
- [x] 2026-04-06M4 第一轮已完成 `ai_pipeline/planner/gateway_facade.rs` 落地,统一承接 auth snapshot、provider transport、scheduler candidate 选择、request-candidate 持久化与 unused-candidate 标记
- [x] 2026-04-06M4 第一轮通过并行子代理完成 `planner/{candidate_affinity,standard/family/**,passthrough/provider/family/**,specialized/{files,video},standard/openai/{chat,cli}/**}``gateway_facade` 的首批切换
- [x] 2026-04-06M4 第二轮已补齐 `planner/{decision/control_plan,standard/{normalize,matrix},passthrough/provider/request}` 的 facade 类型边界;最终验证通过 `cargo check -p aether-gateway``cargo test -p aether-gateway --lib`,结果 `1228 passed; 0 failed`