020eb92402
Project CI / AI game creator shell Rust crates (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m10s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m54s
Project CI / Backend tests (pull_request) Successful in 8m50s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
- 成因:#600 那轮把卡片/列表的新观感挂在 `.game-workbench-chat .project-chat-surface.is-direct-codex .project-chat-composer.is-direct-codex …` 这条宿主祖先链上,同一个 `ConversationModelSelect` 换到首页(`className=home-input-model-select`)就退回基础规则:161px 窄卡、10px 圆角、5px 内边距、32px 行高、旧灰投影 - 改法:卡片/列表/行/hover/选中 pill/细滚动条抬到**组件自带类名**的共享样式面(`.conversation-model-select .conversation-model-menu-shell`、`.conversation-model-select .conversation-model-menu`、`… .conversation-model-menu button…`),不带任何宿主祖先链;合并形态(有外壳)与独立形态(首页/策划/画布)同一套值:16px 圆角 / 12px 内边距 / `--platform-line-soft` 描边 / `--platform-desktop-hover-shadow`,行 34px、圆角 9px、hover `--platform-nav-item-icon-fill`、选中 `--platform-warm-bg` + 600 - 宿主专属的东西留在工作台作用域:输入区锚点(`position: absolute; right: 0; bottom: calc(100% + 8px); z-index: 20`)、与工具栏的几何关系、强度区布局;独立形态的卡片自己就是滚动区(`max-height: 194 = 170 + 上下各 12`),外壳形态列表 `max-height: 170`(5×34,不出现半行),外壳 `max-height: none`(高度由内容决定,避免把列表挤矮) - 首页**不加**强度区:首页那颗没有 effort 的 state/props(`view/home/index.tsx` 只传 `className` 与 `disabled`),就保持这一点 - 基础规则里那几条同属性 `!important` 由共享面按同一档 `!important` 覆盖;工作台那条「抵消宿主通用按钮样式」的规则只留几何(position/display/width/margin/border/shadow/字号),不再抄一份观感 - 测试:`home.suite.ts` 新增「首页模型菜单复用同一套共享样式面」——首页实例的菜单祖先链里没有 `.game-workbench-chat`,只靠 `.conversation-model-select …` 就能解析出 16px 圆角/12px 内边距/34px 行;`chatDialogFrameLayout.test.ts` 的外壳用例按新选择器集合更新(锚点仍来自工作台链、卡片观感来自共享面),并补上 `max-height`/`border-radius`/`background` 断言 - 真机实测(无头 Chromium 同一夹具同一裁剪框):首页那颗 161×309 / 10px / 5px / 32px → 260×194 / 16px / 12px / 34px;工作台那颗外壳 260×262.5、内层列表 234×170、行 34/9px 前后逐值不变(无视觉回退) - 校验:相关 vitest 221 passed / 9 skipped、typecheck、eslint、prettier、encoding 5268 files、spacetime-schema 91 tables、diff-check;对照图见 PR #607 Refs #600, PR #607
项目记忆目录
本目录只保存可以通过 Git 共享、并且对当前开发仍有效的项目知识。.codex/ 只放 Codex 工具资源,不作为项目知识库。
当前结构
docs/project-memory/
├─ README.md
├─ shared-memory/
│ ├─ project-overview.md
│ ├─ team-conventions.md
│ ├─ development-workflow.md
│ ├─ document-map.md
│ ├─ decision-log.md
│ ├─ pitfalls.md
│ ├─ handoff-template.md
│ └─ 【模板】规范驱动开发主规范与里程碑模板-2026-09-12.md
├─ plans/ # 仅限正在执行的短期计划
└─ todos/ # 仅限仍开放且有退出条件的事项
使用原则
- 开发前先读
AGENTS.md;复杂任务再读 Agent 执行准则、共享记忆和任务对应的当前专题文档。 - 稳定架构、接口、流程和排障边界写入
shared-memory/;同一事实只保留一个当前口径,细节放在权威专题文档。 plans/只保存正在执行、具有明确剩余项和验收门禁的计划;完成或作废后立即删除,稳定结论融合进当前专题或共享记忆。todos/只保存真实开放、有人接手即可执行的事项;每项应写明状态、下一决策点和关闭条件。已退役对象不保留未来 TODO。- 分支、提交、测试轮次和阶段流水账不进入长期记忆;需要追溯时使用 Git 历史。
decision-log.md与pitfalls.md可以直接修改、合并和删除旧条目:被覆盖的决定、退役对象专属说明和重复记录不继续保留;仍有效的风险、兼容约束和未完成事项应保留或融合到当前专题。- 自动验证检查实际代码、配置和行为,不要求决策记录或踩坑记录包含固定措辞,也不强制把同一规则复制到多个记忆文件。
- 若本目录与代码或最新
docs/冲突,以代码和最新专题为准,并在同次变更中修正记忆。 - 禁止写入个人配置、API Key、Token、Cookie、会话记录、认证文件、本地私密路径、构建产物、日志、缓存和数据库 dump。
决策记录格式
以下格式按需使用,简单决策不必凑齐所有字段。
## YYYY-MM-DD 决策标题
- 背景:为什么需要这个决策
- 决策:最终决定是什么
- 影响范围:涉及哪些模块/文档/流程
- 验证方式:如何确认决策仍有效
- 关联文档:相关 PRD、技术文档、提交或 Issue
RAG 索引
本目录是本地 RAG 的高权重索引源,但检索结果只作为候选上下文。索引脚本位于 scripts/rag/;运行时依赖和 .rag/ 数据默认不安装、不提交,启用前需先征得用户确认。