Files
probably-rendering-one-more…/docs/flat-notes-stage.md
T
codex-bot ad398db781
waterfall-wiki CI and deployment / verify-and-deploy (push) Has been cancelled
studio CI and deployment / verify-and-deploy (push) Successful in 9m15s
Restore PROMPT branding, rename waterfall-wiki, and add system tag workflows
2026-10-27 00:35:59 +08:00

4.4 KiB

扁平笔记、标签与统一资源:变更说明

本阶段保留 posts.slug(旧链接与导入去重)、cover_asset_id(明确封面)、media_jobs(异步视频处理)及 contribution_events。删除 page_key、tags.parent_id、asset_variants、page_snapshots、render_jobs;原文件不删除,旧截图和加工文件转换为普通 assets/post_assets 引用。所有笔记平等,不引入附属文档关系。

文件与目的

  • apps/waterfall-wiki/db/004_flat_notes.sql:新增事务迁移。保存旧截图引用,将加工文件转换为普通资源,合并同名标签且保留笔记/资源关联,再移除旧字段和表。
  • apps/waterfall-wiki/src/lib/model.ts:更新扁平标签和资源来源字段,移除代码页绑定与截图数量字段。
  • apps/waterfall-wiki/src/lib/library.ts:取消递归标签查询和代码页注册过滤;从普通资源计算加工类型,允许直接保存文字笔记。
  • apps/waterfall-wiki/src/lib/asset-links.ts:新增共享视频资源的加工结果关联逻辑,锁住笔记以避免并发追加占用同一位置。
  • apps/waterfall-wiki/src/lib/write.ts:创建笔记不再依赖 page_key,复用视频时补齐已有加工文件引用。
  • apps/waterfall-wiki/src/worker.ts:仅保留视频任务,FFmpeg 输出进入普通资源表并关联到使用该视频的笔记,继续支持重试。
  • apps/waterfall-wiki/src/lib/publish-learning-series.ts:发布完整文字和扁平标签,保留已有图片和封面,不再排截图任务;同步静态文档中可见的标签名称。
  • apps/waterfall-wiki/src/lib/explore.ts:直接从普通资源展示笔记,图片计数排除视频加工文件;正文中提供加工资源链接,不再读取截图状态或代码页面。
  • apps/waterfall-wiki/src/lib/api.ts:移除“必须注册代码页面”的旧错误映射。
  • apps/waterfall-wiki/src/pages/api/media/[id].ts、apps/waterfall-wiki/src/pages/api/preview.ts:直接读取普通加工资源,同时兼容已有 variant 媒体地址,继续提供小文件预览。
  • apps/waterfall-wiki/src/pages/api/tags.ts:名称全局唯一,支持带 # 创建;同名请求复用已有标签,不需要 parentId 或手写 slug。
  • apps/waterfall-wiki/src/components/TagInput.tsx:新增 #标签输入、回车创建、现有标签建议和移除交互。
  • apps/waterfall-wiki/src/pages/library/import.tsx:接入标签输入,成功后直接进入 ID 地址,更新视频处理提示。
  • apps/waterfall-wiki/src/components/ExploreDetail.tsx:正文链接增加小图标和轻量行内样式。
  • apps/waterfall-wiki/src/styles/globals.css:新增行内链接和标签输入样式及焦点反馈。
  • apps/waterfall-wiki/src/components/Feed.tsx:旧列表组件改用平级标签,不再寻找子分类。
  • apps/waterfall-wiki/src/pages/p/[slug].tsx:精简为兼容旧地址的跳转,移除失效的旧详情渲染代码。
  • 删除 apps/waterfall-wiki/src/lib/snapshots.ts、apps/waterfall-wiki/src/components/ArticleGallery.tsx、apps/waterfall-wiki/src/pages/api/posts/[slug]/snapshots.ts、apps/waterfall-wiki/src/pages/p/[slug]/pages/[page].tsx、apps/waterfall-wiki/scripts/wait-snapshots.mjs:移除截图执行器、轮询界面、任务 API、画布路由与部署等待脚本。
  • 删除 apps/waterfall-wiki/src/content/registry.tsx:移除 Wiki 代码作品注册绑定。
  • Dockerfile、apps/waterfall-wiki/Dockerfile:不再复制截图等待脚本,保留现有依赖层缓存。
  • scripts/deploy.sh:停止写入后备份,迁移失败时恢复兼容旧镜像的数据库,再恢复服务;删除截图等待与共享封面假设。
  • apps/waterfall-wiki/tests/flat-note-migration.ts:新增隔离数据库 schema 的真实迁移验证,覆盖旧图片、视频文件、同名标签关联及保留的视频任务。
  • apps/waterfall-wiki/tests/integration.test.ts:改为验证平级标签复用、无代码绑定的文字笔记、普通视频加工资源引用及已移除的截图入口。
  • docs/monorepo.md:更新存储、迁移、媒体引用与截图流程退役说明。
  • docs/flat-notes-stage.md:本阶段逐文件变更说明。

验证

本地 TypeScript 检查通过,18 项单元测试通过,部署脚本语法与 diff 空白检查通过。完整 PostgreSQL/S3 迁移、视频加工、生产构建与上线验证由 Wiki CI 执行。Studio 和 Python 源码未修改。