来源:notes/documents/个人助理网页版并入工作区:笔记改由构建产物提供.md

个人助理网页版并入工作区:笔记改由构建产物提供

结论

个人助理的网页版不再是独立仓库。代码连历史并入 codex_personal_assistant/web/,笔记改为构建期notes/ 生成只读产物,数据库只剩身份与会话。线上就是那一刻工作区的快照,push 到 main 即发布。

改了什么

  • 仓库personal-assistant-web 并入 web/(GitHub 上已归档,本地目录已删)。
  • Vercel:项目 vite-react 原样保留——同项目、同域名 vite-react-tawny-one-14.vercel.app、同 OAuth 回调、同环境变量;只把 Git 连接换成本仓库、Root Directory 设为 web
  • 数据库notes 表已 drop,只剩 users / identities / sessions。笔记不再是数据库里的副本。
  • 下线的机制/api/notes/import/api/notes/manifest/api/admin/migrate、同步脚本、迁移脚本、ADMIN_TOKEN
  • 标识:笔记 id 从数据库 uuid 换成 Note Path,单篇正文走 GET /api/notes/detail?path=

为什么这样切

判据是「不可重建的状态进数据库,可重建的派生物进构建产物」。会话撤销不了,所以要存;笔记的路径、标题、正文、哈希都能从 Markdown 重新算出来,存进需要同步维护的表里就是自找麻烦。

验证

预览与生产都验过:笔记 145 篇(补提交《掌控习惯》后 146)、不再暴露 uuid、列表不含正文、中文搜索命中、单篇按 path 取回、路径穿越 400、旧接口 404、登录 302 到 GitHub 且 redirect_uri 正确。推送两次都自动触发了生产部署。

副作用

  • 线上有回收站了:删掉的笔记随下次部署消失,但历史 deployment 保留旧快照。旧的「删除不可逆」性质不再成立。
  • 发布即 push:写完笔记不提交推送,线上就看不到。

以后怎么用

  • 写笔记 → commit & push → 自动上线。
  • 手动部署:web/npm run deploy(不要用 vercel deploy,本机 *.vercel.app 被 DNS 污染,上传会中途失败)。
  • 改网站前先读 web/docs/operations.mdweb/docs/adr/0008