Files
Genarrative/docs/project-memory
suzmii d1a3702062 记录构建版本判据与 loopback HTTP 预览方案的评估结论
本轮「资源卡图片加载不出来」连续两轮按现役缺陷排查,最终发现真机数据在当前 HEAD 上判定全对、现象来自更早的客户端构建。把这次的方法教训与两条廉价判据固化成文档,避免后续重复投入。

- `pitfalls.md` 新增「用真机现象定性之前必须先确认客户端构建版本」:现象与「数据在 HEAD 上的实际判定」不一致时,第一个怀疑对象是构建版本而不是代码;两条廉价判据为真机 manifest 的 `category` 分布(旧构建 `unclassified:58`,新构建 `unclassified:1 / ui-interaction:59 / scene:1`)与控制台读 `[data-preview-kind]` 分布(新构建应为 `raster-image 52 / document 8 / code 1` 且无 `placeholder`)。同时记下方法教训:不要用 PowerShell 或手抄正则去复算 TS 判定表,誊本会引入假结论——本轮第一轮取证正是因此得出了不存在的「角标与预览分支分叉」,要跑就用真实源码跑。
- `decision-log.md` 新增「AGC 资源预览评估过本机 loopback HTTP 资源服务,因收益不匹配代价而暂缓」,并显式注明它与既有的 `asset:` 否决**不是同一条、理由不同**:`asset:` 是「绕过安全门禁」的原则问题,loopback HTTP 是「收益与代价不匹配」的性价比问题,其门禁可在服务端逐条复用。记录内容含 token 化不暴露路径、服务端复用同一套校验、与「不向 WebView 暴露本机文件协议」合同的关系判定(同构替代而非违约,信任边界转移到 token 与审计),以及流式下**必须明确降级的三条**:读取漂移复核、全局 3 permit 并发闸门、有界 tombstone 预算。量化依据为真机 52 张 PNG 的分层实测——Rust + JS 冷开合计约 0.3 s,大头是已由 `decoding="async"` 移出主线程的 37.2 MPx 解码,因此当前量级下 0.3 s 换「不向 WebView 暴露文件系统」这条合同是划算交易;并写明重新评估的触发条件(几百张资源 / 大图量级)。
- 同批一并暂缓的备选也记在案:Tauri 自定义协议(非 `asset:`)+ opaque token 因拿不到 HTTP 缓存语义而比 loopback HTTP 更差;磁盘缩略图缓存与 PRD 的纯内存口径及既有价值观冲突。
- 纯文档改动,无代码改动;`tauri.conf.json`、`Cargo.toml`、Rust 命令与 CSP 均未动。
2026-09-11 13:30:26 +08:00
..

项目记忆目录

本目录只保存可以通过 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
├─ plans/   # 仅限正在执行的短期计划
└─ todos/   # 仅限仍开放且有退出条件的事项

使用原则

  • 开发前先读 AGENTS.md;复杂任务再读 Agent 执行准则、共享记忆和任务对应的当前专题文档。
  • 稳定架构、接口、流程和排障边界写入 shared-memory/;同一事实只保留一个当前口径,细节放在权威专题文档。
  • plans/ 只保存正在执行、具有明确剩余项和验收门禁的计划;完成或作废后立即删除,稳定结论融合进当前专题或共享记忆。
  • todos/ 只保存真实开放、有人接手即可执行的事项;每项应写明状态、下一决策点和关闭条件。已退役对象不保留未来 TODO。
  • 分支、提交、测试轮次和阶段流水账不进入长期记忆;需要追溯时使用 Git 历史。
  • 若本目录与代码或最新 docs/ 冲突,以代码和最新专题为准,并在同次变更中修正记忆。
  • 禁止写入个人配置、API Key、Token、Cookie、会话记录、认证文件、本地私密路径、构建产物、日志、缓存和数据库 dump。

RAG 索引

本目录是本地 RAG 的高权重索引源,但检索结果只作为候选上下文。索引脚本位于 scripts/rag/;运行时依赖和 .rag/ 数据默认不安装、不提交,启用前需先征得用户确认。