合并 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
+56
View File
@@ -1006,6 +1006,62 @@ textarea.genarrative-ui-text-field__control {
background: var(--platform-overlay-fill);
}
/*
* 参考图 / 替换素材选择组件的**非模态浮层**形态(`nonModal`)。
*
* 与上面的 `platform-modal-shell` 同一处理由:一个组件两种外壳,壳样式放在这里,凡是引入本文件
* 的宿主一起命中;写进任一宿主的业务样式就会变成平行拷贝。落差只有外壳——底色 / 边框 / 阴影 /
* 头部 / 滚动区 + 一列动作条,**不铺遮罩、不抢焦点**,宿主画布保持可点(AGC 的「替换素材」用它
* 在画布上点选目标素材)。锚定位置由宿主给(AGC 是画布右上角),这里不写 `position`。
*
* 依赖 `theme.css` 的 token,由最近的主题祖先提供(AGC 的锚点容器自带
* `.platform-theme--light`)。
*/
.image-canvas-editor__project-asset-picker--floating {
display: flex;
width: min(22rem, 34vw);
max-height: min(30rem, 70vh);
flex-direction: column;
overflow: hidden;
border: 1px solid var(--platform-modal-border);
border-radius: 0.75rem;
background: var(--platform-modal-fill);
box-shadow: var(--platform-panel-shadow);
color: var(--platform-text-strong);
backdrop-filter: blur(10px);
}
.image-canvas-editor__project-asset-picker-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
border-bottom: 1px solid var(--platform-line-soft);
padding: 0.68rem 0.78rem;
}
.image-canvas-editor__project-asset-picker-header strong {
font-size: 0.82rem;
font-weight: 850;
}
.image-canvas-editor__project-asset-picker-scroll {
min-height: 0;
flex: 1 1 auto;
overflow-y: auto;
overscroll-behavior: contain;
padding: 0.75rem 0.8rem;
scrollbar-width: thin;
}
.image-canvas-editor__project-asset-picker-actions {
display: flex;
align-items: center;
gap: 0.45rem;
border-top: 1px solid var(--platform-line-soft);
padding: 0.6rem 0.7rem;
}
.genarrative-ui-empty-state {
display: grid;
min-height: 10rem;