合并 master 并接入 DirectProject 新聊天架构

- 合并 origin/master(304 个提交:DirectProject 聊天容器重构、Project Supervisor 退役、策划附件导入、CI 隔离编译缓存等)。
- 接受 master 对 ProjectSupervisorView / SupervisorChatOnlyView 的退役与预览快捷测试收敛;发布入口改由 DirectProject 聊天头承载。
- DirectProjectChatHeader 新增「发布到游戏广场」入口(无回调不渲染、回合忙态禁用),DirectProjectChatView 透传 onRequestGamePublish。
- App.tsx 继续由工作台壳持有试玩包导出与 GameDistributionPublishPanel,沿用 project.export_package 权限确认队列;check-config 把该命令从 native-only 清单移回 App invoke。
- 后台游戏审核 API / 类型 / 路由测试与 master 新增的 AGC 模板管理按双方保留合并,并修掉拼接造成的接口与用例闭合缺陷。
- 修正 master 自带的 viteProxyConfig 断言:/api/creation-entry 属退役路由,测试改为断言不进入代理。
- 记录合并踩坑:语法结构内部的冲突不能简单按「双方保留」拼接,必须按某一侧骨架重建并跑 tsc 与单文件测试。
- 验证:全量 vitest 393 文件 / 4374 用例通过,root / AGC / admin-web 三端 typecheck,cargo check 与游戏分发 Rust 测试,encoding、doc-index、rustfmt、SpacetimeDB schema guard。
This commit is contained in:
2026-09-22 16:45:29 +08:00
651 changed files with 78860 additions and 60952 deletions
@@ -43,10 +43,31 @@ pub fn router(state: AppState) -> Router<AppState> {
"/admin/api/project-snapshots",
get(crate::admin_project_snapshots::admin_list_project_snapshots),
),
(
"/admin/api/project-snapshots/channels",
get(crate::admin_project_snapshots::admin_list_project_snapshot_channels),
),
(
"/admin/api/project-snapshots/{user_id}/{project_id}/download",
get(crate::admin_project_snapshots::admin_download_project_snapshot),
),
(
"/admin/api/agc-templates",
get(crate::admin_templates::admin_list_agc_templates),
),
(
"/admin/api/agc-templates/{id}",
axum::routing::put(crate::admin_templates::admin_update_agc_template)
.layer(axum::extract::DefaultBodyLimit::max(8 * 1024 * 1024)),
),
(
"/admin/api/agc-templates/import",
axum::routing::post(crate::admin_templates::admin_import_agc_templates).layer(
axum::extract::DefaultBodyLimit::max(
crate::admin_templates::AGC_TEMPLATE_IMPORT_BODY_LIMIT_BYTES,
),
),
),
(
"/admin/api/agc-models",
get(crate::agc_models::admin_get_agc_models)
@@ -213,10 +234,14 @@ mod route_contract_tests {
const PROTECTED_ROUTES: &[(&str, &[&str])] = &[
("/admin/api/project-snapshots", &["GET"]),
("/admin/api/project-snapshots/channels", &["GET"]),
(
"/admin/api/project-snapshots/{user_id}/{project_id}/download",
&["GET"],
),
("/admin/api/agc-templates", &["GET"]),
("/admin/api/agc-templates/{id}", &["PUT"]),
("/admin/api/agc-templates/import", &["POST"]),
("/admin/api/agc-models", &["GET", "PUT"]),
("/admin/api/accounts", &["GET", "POST"]),
("/admin/api/accounts/{account_id}", &["PUT"]),