← 返回网站

/ RELEASE NOTES

版本更新

这里记录已经落地、经过验证的可见网站变化。

公开简历对齐 2026 秋招事实

按 2026-09-09 秋招简历校正 resume.wuyuheng.cn 的公开身份、项目顺序和关键数字;已发布快照按稳定 ID 更新,并补上可公开的项目配图。

交付范围

  • 腾讯经历按社区、活动、媒体、成长平台、OPC 重排,社区阅读量改为 1,263.3 万,并补上岭南大学分享与 Skill 复用
  • 迅雷改为增长策略、搜索商业化和广告转化三段;问卷口径 2,842,年化 193 万预测对访客隐藏
  • 网易改为开发者社区增长运营,栏目与 200+ 篇、50 万+ 互动口径对齐最新简历
  • 校园经历改为极星众创工作室 / 团队负责人,补上 Mira Creator OS;个人账号改为 B 站、抖音与小红书最新表述
  • 经历区放大正文字号、收掉公司摘要和分组标题,并补上网易推文代表作与 B 站/抖音入口
  • 从迅雷/腾讯云素材包和直播截图里挑了月刊封面、成长平台、OPC 过程页、龙虾面对面和迅雷测试卡,挂到对应项目
  • 右下角媒体库补上未裁切的学科竞赛与主题企业 PPT 长图,并把网易公众号、个人账号改成卡片式入口

验证维度

  • 简历事实边界、秋招事实迁移与公开页渲染定向回归
  • 只改已知稳定 ID,owner 自行新增的公司章节保持不动
  • 公开页继续从已发布 resume_profile 读取,不回退到纸张式 /resume 分支

移动简历原生交互与首屏密度精修

继续收紧移动简历的经历操作、公司切换、媒体比例和概览密度,让四视图在普通手机上更接近原生应用的阅读与触控节奏;生产状态以独立发布记录和真实域名验收为准。

交付范围

  • 移动经历允许再次点击当前公司完整收起,并保持空态,不会在窗口同步时被强制重新展开
  • 移除左侧错位的时间轴和圆点,改为经历页顶部粘性的横滑公司条,保留真实 Logo、短名称和当前公司状态
  • 修复项目媒体的内在宽度撑破:视频恢复手机内容宽度并限制舞台高度,音频改为更完整的单列舞台与 44 像素控制区
  • 概览姓名、摘要、人物位置与方向卡密度同步收紧,390 与 432 像素手机可在底部导航上方看完核心信息,并保留首页底部的斜向动态品牌丝带
  • 底部概览、经历、作品、联系继续作为唯一一级导航,公司条只承担经历视图内的二级切换

验证维度

  • 390 × 844 真实 Chromium 验证公司二次收起、公司快捷跳转、概览首屏、动态丝带和媒体宽高
  • 390 × 844、430 × 932 与 768 × 1024 逐视图检查四个底部导航按钮和页面横向溢出
  • 简历移动交互、媒体、概览、编辑器预览与现有 PWA Manifest、路由、生命周期定向回归
  • 已完成成对备份、两次无新增项的生产迁移、不可变镜像切换和真实域名回读;简历子域敏感路径继续返回 404

移动端适配与 PWA 基础能力

在保留新版在线简历四视图、媒体交互和桌面体验的前提下,完善公开网站的移动阅读,并加入可安装 PWA、受控离线缓存与离线兜底;生产状态以对应发布记录和真实域名验收为准。

交付范围

  • 补齐 320px 至 768px 的共享移动导航、页面安全区、内容换行、媒体约束和触控目标,不覆盖在线简历已有的原生移动四视图
  • 首页案例视频离开可视区时自动暂停,避免后台继续播放和消耗移动网络资源
  • 新增 Web App Manifest、192px 与 512px 应用图标、maskable 图标和 Apple 主屏幕图标
  • 新增根作用域 Service Worker,只缓存公开页面与同源静态资源,跳过 CMS、API、owner、预览、鉴权和音视频请求
  • 新增离线兜底页,以及 Chromium 系统安装入口和 iOS 添加到主屏幕说明
  • 文章库、文章详情、合集、版本记录与页脚补齐移动触控尺寸和刘海屏安全区处理

验证维度

  • 正确基线的简历、owner、媒体、权限和移动交互全量回归测试
  • 320、390、430、768 和 1024 宽度真实浏览器横向溢出与关键触控路径检查
  • 生产构建中的 Manifest、图标、Service Worker 注册与根作用域检查
  • 访问过的公开页面断网重访、未访问路径离线兜底和敏感路径缓存排除检查
  • 主域与简历独立子域的公开 allowlist、管理路径拒绝和真实生产回读

简历阅读目录与移动交互升级

把桌面经历导航收为安静的圆形 Logo 阅读进度,并让移动端公司经历、项目素材与媒体库采用更符合触控习惯的原生交互。

交付范围

  • 桌面经历页改为无外框的圆形 Logo 阅读进度轨道:页面上下滚动时自动高亮当前公司,点击 Logo 精确滑到对应经历;到达经历底部会正确进入个人内容创作,向上返回也会恢复前序公司,移动端不显示该目录
  • 移动经历改为单层公司手风琴,一次只展开一家,并在一次展开中直接呈现岗位、职责、项目、结果与素材,不再重复出现多层项目详情入口
  • 移动项目素材改为浏览器原生横向滚动与 scroll-snap;视频、音频、图片和外链继续保留各自的播放、放大与安全跳转区域
  • 移动媒体库改为接近全宽的底部 Sheet,主题、主素材和缩略图均可横向触控切换;桌面继续保留既有磁吸索引、对话框与 3D Coverflow
  • 公开页的公司深链接现在会稳定进入经历视图;重复点击当前视图会把旧的公司 hash 收敛到规范四视图地址
  • 桌面进度目录把当前公司、岗位与时间常驻在高亮 Logo 旁;跨越多家公司点击时锁定最终目标,圆形光环不再经过中间节点抖动
  • 公司标识换为用户确认素材:网易仅保留红色旋涡,迅雷与 Minecraft 使用对应方形标识,个人内容创作使用五平台媒体矩阵:抖音、小红书、哔哩哔哩、视频号和快手;旧发布数据缺少这些 Logo 时也会安全回退到内置标识
  • 桌面轨道为网易红色旋涡增加 5 像素安全边距;个人内容创作默认显示标准尺寸的哔哩哔哩标识,激活后抖音、小红书、视频号与快手才沿轨道展开为五平台动态矩阵

验证维度

  • 本地应用内浏览器复验 390、768 与 1536 像素关键路径:四视图切换、公司单开、公司深链接、媒体库 Sheet 和桌面圆形进度目录均可用
  • 真实桌面滚轮往返确认当前 Logo、URL hash 与目标公司同步;工作室到个人内容创作的触底切换与反向返回均已复验,移动视图没有页面级横向溢出,媒体 Sheet 没有冗余左右箭头
  • 生产部署与线上回读以独立发布记录为准;不把本地 HTTP 200 当作线上验收

真实手机首页与内容层级修正

根据安卓真机截图继续收紧移动四视图:修复 432 像素设备漏过窄屏规则的问题,并让首页、经历、作品与联系在真实手机宽度下保持完整、紧凑和自然换行。

交付范围

  • 把原先只覆盖 430 像素的窄手机规则扩展到 480 像素,覆盖真实 432 像素安卓视口;首页人物卡、三张方向卡和终端卡同步压缩,但 1024 像素以上桌面结构与动效不变
  • 代码装饰框改为三组英文短句循环打字,继续保留无障碍完整文本与 reduced-motion 静态降级,不依赖新增动画库
  • 经历页以公司作为唯一展开层级:点击公司后一次展开完整职责、岗位、项目、结果与素材,移除重复的“查看项目详情”入口,并允许公司名称自然换行
  • 联系页为长邮箱预留独立空间,窄屏复制按钮收为图标,不再遮挡地址;作品页缩短媒体卡高度、统一缩略图比例并为坏图提供 Tabler 图片图标兜底

验证维度

  • 真实应用内浏览器复验 432 × 844 的概览、经历、作品和联系;首页 ticker 已进入首屏,邮箱与复制按钮无重叠,作品可见缩略图自然尺寸均非零
  • 经历页切换腾讯云与迅雷后都一次显示完整内容,移动项目摘要入口为 0;页面未出现横向溢出
  • 自动化覆盖 390 与 432 像素公开页和 owner 预览的同构规则、终端循环打字、公司展开层级、坏图兜底与联系文本安全区

桌面姓名动效与移动视觉正式上线

桌面姓名翻转、正文净空和移动视觉重构已完成可回滚生产发布,公开简历继续使用独立只读子域与版本化内容。

交付范围

  • 应用提交 c59e130 已构建为正式 runner,并保留上一应用镜像、环境文件和 Caddy 配置作为回滚点
  • 发布前完成 PostgreSQL 与 MinIO 成对备份并生成 SHA-256 校验;没有执行会覆盖既有简历的初始化种子
  • 生产迁移连续执行两次,第二次无待执行项,Payload 迁移数仍为 8
  • 桌面姓名翻转、正文净空、移动经历、作品、联系和概览样式共同进入正式镜像,没有扩大简历子域的管理入口白名单

验证维度

  • 390、432、768、1280 与 1536 像素真实浏览器完成关键视图回读,公开简历与主站路由可用
  • 简历子域敏感入口继续返回 404,已登记媒体读取为 200,视频 Range 请求为 206
  • 应用与 Caddy 容器健康;备份、镜像 ID、发布目录和回滚路径均已写入生产发布记录

桌面简历姓名翻转与正文净空修正

根据最新桌面首屏标注修正个人介绍遮挡,并把用户提供的 Originkit 3D Stagger Flip 机制收进姓名标题,保持原构图与移动四视图不变。

交付范围

  • 复用 Originkit 的逐字 3D 翻转机制呈现“伍喻恒”:沿用当前紧凑无衬线字形与占位尺寸,从左到右错峰切换同字前后两面,标题语义只朗读一次
  • 黑色终端卡完整移入人物视觉区,紫色指针装饰同步移到正文安全区之外;最深一档人物视差位移下也不会再遮住个人介绍
  • 桌面细指针悬停时才启用翻转,移动端、粗指针、打印和 reduced-motion 环境全部直接显示静态姓名,避免首屏闪动或影响手机排版
  • 人物、三张信息卡、背景、ticker、桌面标题字号以及已确认的移动经历、作品和联系视图均保持原样

验证维度

  • 1536 × 820 应用内浏览器完成参考图与修正后首屏并排检查;正文、终端卡和指针装饰之间保持可见间距
  • 真实指针进入标题后,三个汉字依次完成 3D 翻转;自动化同时覆盖离开恢复、可访问名称和 reduced-motion 静态降级
  • 本记录只确认本地实现与视觉 QA;没有在本次改动中执行新的生产发布

移动简历经历、作品与联系视觉重构

按三张确认的移动端参考图重做经历、作品与联系视图,在不改变桌面视觉结构的前提下,统一移动页头、卡片密度、信息层级和底部导航。

交付范围

  • 经历页改为原生公司卡:时间线串联全部公司,移动端使用单开模式一次只展开一家;当前公司展示完整职责,并通过单一“查看项目详情”入口渐进展开项目内容
  • 作品页把媒体库、专业能力和教育背景收进三组紧凑移动卡片,保留真实媒体预览、分类切换、技能信息与教育时间线
  • 联系页集中呈现所在地、邮箱复制、已登记社交主页和 PDF 简历下载;交互继续使用安全链接与已有复制反馈,不复制个人资料数据
  • 三个移动视图使用统一 N 标记、中文标题、英文副标题、点阵装饰、淡紫描边和适合拇指操作的圆角卡片;底部导航维持四视图语义与当前态
  • 1024 像素及以上桌面继续显示全部公司经历;移动专属页头、动作条和底部导航全部隐藏,桌面现有首屏、时间线、侧栏和打印结构保持不变
  • owner 的 390 与 768 像素预览复用同一移动样式,1280 与 1536 像素预览继续采用桌面结构,移动容器规则不会泄漏到宿主页面

验证维度

  • 真实应用内浏览器在 546 × 918 可见移动视口完成经历、作品、联系三页对照;参考图和实现图已组合检查标题、卡片、留白、字号与底部导航
  • 真实浏览器验证公司卡单开、项目详情展开、作品图片弹窗、底部导航切换和邮箱复制反馈;未发现横向溢出或控制台运行错误
  • 1535 像素桌面回归确认五家公司全部展开、移动公司分组 name 属性移除、移动页头与底部导航隐藏,桌面标题卡保持原样
  • 本记录只确认本地重构和视觉 QA;生产域名仍保持上一条正式上线版本,等待本轮移动视觉确认后再发布

在线简历移动四视图正式上线

公开简历已在 resume.wuyuheng.cn 正式上线;概览、经历、作品与联系四视图完成生产数据迁移、独立域名隔离、移动端浏览器验收和可回滚发布。

交付范围

  • 生产发布前对 PostgreSQL 与 MinIO 做成对备份并校验清单,保留旧应用镜像、环境文件和 Caddy 配置作为回滚点
  • 正式迁移连续执行两次,第一次补齐版本化简历与移动概览字段,第二次确认无待执行迁移;没有重复运行初始化种子
  • 390 × 844 与 768 × 1024 真实浏览器复验概览、经历、作品和联系;经历公司 Sheet、原生项目展开、作品媒体库与底部导航均按移动端方式工作
  • 作品页真实验收发现两张已引用 fallback 缩略图未登记,现仅把这两张文件补入应用与 Caddy 精确白名单,没有放开 articles 通配路径
  • owner 登录与编辑入口继续只存在于主域 wuyuheng.cn;简历子域的 owner、CMS、API、GraphQL 与预览路径仍统一返回 404
  • 当前发布设置保持默认不可发现:页面继续输出 noindex、nofollow,只有 owner 以后显式允许收录时才会进入 Sitemap

验证维度

  • Node.js 20.20.2 全量 Vitest 98 个文件通过,920 通过、1 个真实媒体源 opt-in 测试跳过;ESLint、TypeScript、Payload 类型与 import map 均通过
  • 生产 runner 构建确认 /resume 为请求时动态渲染,不会在镜像构建阶段连接生产数据库;应用容器与 Caddy 均健康
  • 公开首页、主站与 owner 登录页回读为 200;简历子域管理路径、Next Image 与未知路径保持 404,视频 Range 返回 206
  • 两张作品 fallback 图片生产回读为 image/webp 200,并在全新浏览器标签中显示为自然尺寸非零的真实缩略图

在线简历移动端四视图工作区

把移动端长页面重组为概览、经历、作品、联系四个原生视图,使用底部导航在同一份简历内容中切换,同时保留桌面与打印版的连续阅读结构。

交付范围

  • 四个视图拥有独立滚动位置;公开页使用经过校验的 hash 支持直达、刷新、前进和后退,重复点击当前导航项可回到该视图顶部
  • 经历页使用 Logo 公司选择器打开底部 Sheet,展示公司、岗位和时间;移动经历一次只显示一家公司的完整内容,第一项目保持原生 details 渐进展开
  • 作品页紧凑组织媒体库、专业能力与教育背景;联系页集中呈现已启用的地点、电话、邮箱和安全社交链接,并保留拨号、写信与复制反馈
  • 移动端继续复用现有图片、音视频、Demo、媒体库对话框和项目详情能力,没有复制简历数据或另建播放器
  • owner 同画布编辑器新增 390 与 768 像素移动预览,并保留 1280 与 1536 像素桌面预览;选择模块会定位相应视图和所属公司,但不会改写宿主 URL 或文档数据
  • 1024 像素及以上继续使用完整桌面布局,移动底部导航隐藏;打印与 PDF 始终输出全部面板和公司内容
  • 概览页按选定移动参考图重组为人物主视觉、双快捷按钮、三张方向卡、终端便签和品牌 ticker;390 与 768 像素使用同一原生首页构图,而不是缩小桌面首屏
  • 经历页悬浮入口收敛为单一当前公司 Logo,移除占满顶部的白色 Logo 条;点击后才从底部 Sheet 展开完整公司列表,并在切换后同步更新入口 Logo
  • 移动人物继续向左微调,并取消手机与 owner 移动预览中的遮罩、虚化和底部渐隐;桌面人物原有柔化与视差效果继续保留
  • 移动概览恢复稳定可读的个人介绍,以三行摘要替代会轮播的动态 slogan;手机和 owner 移动预览保持一致,桌面原有摘要与动效继续保留

验证维度

  • 真实 Edge/Chromium 390 × 844 自动路径 2/2:直接打开 #overview 可见,底部导航切换后只有新面板可见
  • 可见浏览器复验概览、经历、作品、联系四视图,公司 Sheet 切换到迅雷后只显示一家公司,原生 details、媒体库对话框和邮箱复制状态可用
  • 390、768 与 1024 像素均未发现页面横向溢出;1024 像素底部导航隐藏且全部桌面面板可见,控制台 warning/error 为 0
  • 真实浏览器复验概览快捷按钮:查看简历进入经历与公司导航,联系我进入联系视图,底部概览可返回首页
  • 本记录只确认本地公开页与聚焦自动化;没有进行 owner 编辑器浏览器 QA,没有运行全量测试或生产构建,也没有部署到生产站点

在线简历首屏比例与分层动效修正

根据真实桌面预览继续收紧 PNG 自我介绍首屏:降低人物压迫感、让背景装饰避开正文,并把周围信息卡收敛为稳定、轻盈且不抢人物视差的悬停反馈。

交付范围

  • 人物整体在上一版基础上继续缩小约 8%,右移并沿倾斜丝带方向逆时针倾斜 7°,保留完整半身比例;手绘背景通过透明遮罩让出左侧正文净空,紫蓝氛围光影同步收向人物区域
  • 四张信息卡移除贴纸翻页,也不再跟随指针视差;人物、氛围光影与手绘装饰继续保留独立深度,让视线集中在主视觉而不是四处晃动的卡片上
  • 四张卡保持固定位置与原有角度,悬停只触发描边光带、柔和高光、轻微抬升和阴影变化,不再要求按住或拖拽
  • 姓名改用更紧凑的小字号无衬线字形;人物整体上移并加强底部柔化,同时提前进入透明遮罩区域,视差位移时不再露出底版
  • 公司标题卡退出 3D 重力目标,不再随指针倾斜;改用强调色扫线、边框高光与轻量阴影反馈,Logo、公司名称和时间保持稳定可读
  • 人物底部增加透明遮罩与独立柔化层,遮住视差位移时偶发露出的底版;首屏退出全局滚动 reveal,由自身首帧动画直接接管,刷新后不再二次闪动
  • 移除装饰性的 01 自我介绍与 02 经历编号及双语尾注,保留姓名主标题和语义清楚的工作经历标题
  • 人物增加克制的长周期呼吸,氛围光影缓慢起伏;所有持续动效只改变合成属性,并在减少动效和打印环境中静止
  • 公开页与 owner 同画布预览继续共享同一首屏结构,没有新增编辑字段、移动端分支或外部动画依赖

验证维度

  • 首屏层级、人物独立视差、四卡固定位置、无贴纸标记、高光反馈、指针离开归零、减少动效与公开渲染自动化测试
  • 本地 1672 × 941 与 1280 × 900 桌面视口真实浏览器复验;四张卡不随指针位移,悬停反馈稳定,人物下沿无底版露出
  • 本记录只确认本地实现,尚未部署到 resume.wuyuheng.cn

在线简历 PNG 视差自我介绍首屏

按确认参考图重做 01 自我介绍章节,用透明 PNG 人物、手绘装饰、漂浮信息卡与分层视差建立鲜明第一印象,再自然进入 02 工作经历。

交付范围

  • 保留 01 自我介绍与 02 工作经历的完整叙事;向下按钮可直接进入经历章节,左侧公司导航仍只负责真实工作经历
  • 撤下风格不一致的 GLB 与模型运行依赖,改用已确认的透明 PNG 人物;人物、淡紫氛围底图、手绘装饰与漂浮卡片按不同深度跟随桌面指针
  • 加入关注方向、运营实践、核心能力、终端便签、手写短句、斜向能力标签带与菜单入口,首屏结构和比例按 1672 × 941 参考图重排
  • 复用 Originkit Type Writer 的分阶段节奏,在姓名定位下循环展示多条 Slogan;减少动效环境固定显示第一条完整文案
  • 公开页和 owner 同画布预览继续共享同一渲染器;首屏图片均为站内透明 PNG,不依赖 Next 图片优化路由或外部资源

验证维度

  • 公开渲染、PNG 资产完整性、视差单帧调度、减少动效降级、Type Writer 循环与语义标题自动化测试
  • 本地 1672 × 941 与 1280 × 800 桌面视口完成真实浏览器复验,并生成参考图与实现图的同视口组合对照
  • 真实浏览器确认指针移动会更新分层视差变量,多条 Slogan 会依次输入和删除,控制台没有运行错误
  • 三张首屏 PNG 已去除 EXIF、ICC 与 XMP,并使用路径无关清单记录尺寸、字节与 SHA-256
  • 本记录只确认本地实现,尚未部署到 resume.wuyuheng.cn

简历滚动与卡片重力反馈修复

修正公开简历的滚动层级,并按首页 MiniMax 复刻动效的结构重新实现卡片重力,让外层倾斜与内层视差真正同时可见。

交付范围

  • 顶部导航改为粘性定位,页面滚动后保持可见;打印模式继续使用普通文档流,不影响 PDF 输出
  • 左侧经历导航继续跟随当前阅读位置;右侧教育、能力与媒体库恢复随文档自然滚动,不再等中间正文接近底部才开始移动
  • 素材卡、公司标题卡和右栏信息卡统一接入克制的 3D 重力透视;外层卡片倾斜,标题、Logo、说明和媒体内容按不同深度独立移动,不改变卡片尺寸或正文布局
  • 对齐 MiniMax 复刻源码的嵌套视差:进入卡片时只读取一次稳定矩形,指针命中堆叠后的其他层也继续锁定当前卡片,不再抽搐
  • 触控、减少动效偏好或非精细指针环境会保持静态外观;播放、拖拽、外链、灯泡与卡片故事点击区域不受重力层影响

验证维度

  • 滚动定位、外层重力矩阵、内层视差矩阵、稳定命中矩形、减少动效降级与卡片标记自动化测试
  • Microsoft Edge 1536 像素桌面实测:滚动 420 像素后顶部保持 0 像素、左栏保持 78 像素、右栏自然滚到 -344 像素
  • Microsoft Edge 1536 与 1280 像素实测素材卡从左到右角度单调变化、尺寸 0 跳动,外层卡片与标题和媒体层均产生独立 3D 矩阵;空白区域仍能打开项目故事弹窗
  • 本记录只确认本地实现,尚未部署到公开域名

简历素材卡故事点击恢复

修复 Coverflow 拖拽层过早捕获鼠标指针的问题,恢复素材卡空白区域打开项目故事的直觉交互。

交付范围

  • 普通点击视频、音频、图片、网站与文档卡片的标题、说明或留白区域,会打开对应的结构化项目故事弹窗
  • 播放、放大、外链、Demo 预览和灯泡仍是独立指定区域,不会被卡片故事弹窗截获
  • Coverflow 只有在横向移动超过 10 像素、明确进入拖拽后才捕获指针;普通按下不再把 click 重定向到外层卡组
  • 拖拽、后排卡点击、方向键与横向滚轮切换逻辑保持不变

验证维度

  • 新增真实 pointerdown、pointermove、pointerup 与卡片故事点击回归测试
  • 本地桌面浏览器复验峰会视频卡说明区域点击后出现项目故事弹窗
  • 本记录只确认本地修复,尚未部署到公开域名

简历光标动效与侧栏收口

移除持续遮挡阅读的鼠标跟随光圈,把动效反馈收敛到明确点击,并暂时撤下左侧头像区域。

交付范围

  • 移除持续跟随鼠标的光圈,保留并恢复全局八方向点击粒子;卡片重力、磁吸按钮和滚动揭示继续工作
  • 左侧头像区域从公开页与 owner 编辑预览的共享画布中同时删除,身份属性面板也不再显示无效头像上传入口
  • 简历维护继续使用独立品牌后台:访问 /owner/login 登录,成功后进入 /owner/resume,不暴露 Payload CMS 界面
  • 登录页现在只输入暗号;服务器自动定位唯一 owner 并沿用原有两小时 host-only 会话,不向页面暴露账号邮箱
  • 短暗号会先通过站点密钥派生为不含原文的 64 位认证密码;新增服务器维护命令用于初始化或更换暗号,仓库与页面均不保存明文

验证维度

  • 鼠标动效、公开渲染、owner 属性面板与版本记录自动化测试
  • 本地桌面浏览器复验无常驻光圈、点击粒子可见、头像区域已移除,并打开 owner 登录入口
  • 使用操作者提供的初始暗号完成本地 owner 初始化,并通过真实登录页进入 /owner/resume
  • TypeScript、ESLint、生产构建与差异格式检查
  • 本记录只确认本地实现,尚未部署到公开域名

简历项目素材卡交互收口

把每个项目的混合素材整理为紧凑、稳定且可直接操作的三维卡片堆,切换素材时不再推动后续正文。

交付范围

  • 同一项目的视频、音频、图片、网站、Demo 与文档继续混排在一组 Coverflow;外层固定 360 像素舞台以稳定后续内容位置,前景卡最大宽度 360 像素并随素材真实内容自适应
  • 删除后排专用的简化缩略卡:同一素材在前景和后排始终使用同一套真实卡片结构,只改变三维位置、缩放、旋转和交互状态;同类型卡片切换不再突然换脸
  • 每张后排卡保持自己的素材比例,视频、音频、Gallery 与链接不再继承当前前景卡高度;切到前景时高度与三维位移使用同一 600ms 缓动连续过渡
  • 音频改为音乐占位封面、波形与主播放区组合的播放器卡;播放后静态波形退出,保留占位封面、真实 28 柱实时频谱、进度与音量控制
  • 沿用 Originkit 的透视、景深、倾斜与 600ms 缓动,卡片包装节点持续挂载,切换时从后排连续移动到前景而不是突兀重建
  • 移除底部左右按钮,只保留低对比度页码;访客可拖拽、点击露出的后排卡、使用方向键,或通过触控板与特殊鼠标的横向滚轮切换素材;一次横向手势只前进一张,普通纵向滚动仍用于浏览页面
  • 视频、音频与图片的指定区域继续负责播放或放大,卡片其余区域打开结构化项目故事;右上角 Tabler 灯泡保留为低调辅助入口
  • 单独出现的网站、Demo 与文档收口为最大 760 像素的紧凑链接卡,不再被媒体比例撑成大块空白
  • 移除卡片硬质多层阴影和项目分界线,前后排只用轻量软阴影与留白建立层次
  • 本轮只调整共享渲染器,因此 owner 编辑端会自动获得相同卡片外观、点击分区和堆叠切换逻辑

验证维度

  • 素材点击分区、拖拽、后排点击、键盘与横向滚轮切换、惯性手势锁、纵向页面滚动、固定舞台、内容自适应和软阴影自动化测试
  • 本地桌面浏览器复验两张音频在前后排均保留相同播放器结构,切换前后舞台均为 360 像素且无底部箭头;音频播放后静态波形为 0、实时频谱为 28 柱;真实横向滚轮由 1/5 切到 2/5,惯性续帧未跳到下一张,解锁后再切到 3/5,纵向滚动只移动页面
  • TypeScript、ESLint、生产构建、视觉对照与差异格式检查
  • 本记录只确认本地实现,尚未部署到公开域名

在线简历经历导航与主题媒体库

将简历侧栏改成真正跟随公司经历的章节导航,并把右侧信息收口为教育、能力与可持续扩展的主题媒体库。

交付范围

  • 左侧经历导航只展示真实公司章节、Logo、时间和当前状态;点击后立即高亮并滚动到对应公司,滚动阅读时继续跟随可见章节
  • 右侧删除个人速览和重复联系方式,固定按教育背景、专业能力、媒体库排序,减少与正文重复的信息层级
  • 媒体库按主题组织多张图片,默认使用带磁性位移的堆叠式图片条;点击图片后进入同一弹窗,可切换主题、缩略图和上一张或下一张
  • 旧版已发布与草稿快照缺少媒体库字段时会加载一份可编辑的起始主题;owner 已明确保存空数组或自定义内容时不会被覆盖
  • owner 编辑器支持新增媒体主题、编辑主题说明、上传图片、填写图片替代文字与说明,并继续支持显隐、排序、删除和撤销
  • 本轮继续保持桌面专用,不增加移动端编辑或移动端布局分支

验证维度

  • 经历导航、媒体库主题切换、弹窗浏览、旧快照默认补全与 owner 编辑字段自动化测试
  • 本地浏览器复验公司导航即时高亮、主题切换、图片弹窗与登录保护的 owner 入口
  • TypeScript、ESLint、生产构建与差异格式检查
  • 本记录只确认本地实现,尚未部署到 resume.wuyuheng.cn

在线简历公司章节与作品故事升级

按桌面 A 方案重做公开简历的信息层级,并在参考图复验后回归更克制的时间线:公司清晰、正文平整,作品素材更鲜活。

交付范围

  • 左侧个人档案加入真实头像;每个公司只保留 Logo、白色识别行、左侧品牌强调线、时间与地点,岗位和项目正文恢复透明底色,避免重复套卡片
  • 每个项目只保留一组混合素材 Coverflow,视频、音频、图片、网站、Demo、Bilibili 与文档按 owner 的原始顺序混排;中央卡完整交互,左右侧卡点击或方向键切换
  • 素材故事入口收进每张卡右上角的动态 Tabler 灯泡,不再占据卡片底部整行;弹窗继续支持标题、段落、列表、引用、图片组、工作流步骤与安全外链
  • owner 编辑器沿用公开页同一画布,新增头像、公司 Logo、公司强调色与 story blocks 的模块化编辑和图片上传
  • 音频未播放时只显示一张静态波形预览;开始播放后静态 PNG 会从 DOM 退出,只保留由真实 Web Audio 数据驱动的 28 柱动态频谱
  • 公司标题加入 Fluid Text WebGL 按需启动效果,悬停或键盘聚焦时才创建画布;不支持 WebGL 或需要减少动效时继续显示完整文字
  • 公开页保留单一全局鼠标光晕,并补充八方向点击粒子、卡片重力、磁吸按钮和滚动揭示;阅读正文保持稳定
  • 本轮按要求只验收桌面端,没有新增移动端适配或移动端编辑分支
  • 公司与作品故事字段通过前向迁移写入已发布 Global 和版本快照;迁移拆为独立 PostgreSQL 命令阶段,兼容参数化执行

验证维度

  • 公司层级、混合素材 Coverflow、右上角故事灯泡、Fluid Text、实时音频频谱、动效降级和 owner 编辑相关自动化测试通过
  • TypeScript、ESLint 与差异格式检查通过
  • 公开页在 1280 像素桌面浏览器完成第一版参考图、公司标题和素材区组合对照;真实 Logo、头像、混合 Coverflow 与音频 PNG 替换为动态频谱均在本地复验
  • 本记录只确认本地桌面实现,尚未部署到 resume.wuyuheng.cn

在线简历与专属编辑工作台交付

完成一套对外只读、对内可视化维护的在线简历:公开页承载完整职业经历和真实作品证据,维护端只向唯一 owner 开放。

交付范围

  • 公开长履历按照公司、岗位、项目与作品证据连续组织,保留工作边界、时间线、职责、结果和来源说明
  • 主站提供全新专属登录与同画布模块化编辑,支持新增、复制、显隐、排序、删除撤销、自动保存、发布确认和版本恢复
  • 视频、音频、图片灯箱、安全 Demo 与 PDF 都能在所属项目中展示;媒体默认不预加载正文,访客明确操作后才激活
  • 维护端仅提供 1536 与 1280 两种桌面维护画布,不再包含移动端编辑或移动端预览分支
  • 严格子域隔离、按引用读取和私有上传共同保护草稿、历史版本与未公开文件;上传端只接受 owner 的单文件有界流,并在中断或畸形请求后清理临时文件
  • 全新环境迁移会原子创建一份安全的已发布简历与对应版本,重复执行不覆盖 owner 后续编辑内容
  • 简历默认不在主站导航中出现并保持 noindex;只有 owner 显式允许收录后,canonical 才会加入 Sitemap

验证维度

  • 公开渲染、层级编辑、自动保存、发布冲突、历史恢复与单一 owner 权限自动化测试
  • 原生音视频、图片对话框、受控嵌入、打印降级、单文件流式上传校验、异常清理与按引用媒体流测试
  • 1536/1280 桌面画布、Tabler Icons、子域 allowlist、host-only Cookie 与默认不可发现策略测试
  • 初始已发布 Global/版本对迁移、重复执行与非破坏回退的隔离 PostgreSQL 验证
  • 生产部署与线上回读会在独立发布记录中写入最终 revision、备份位置与验收结果

简历素材安全上传与按引用读取

新增 owner 专用的有界二进制上传和同源简历素材路由:草稿预览保持私有,匿名访客只能读取当前公开简历实际引用的已就绪文件。

交付范围

  • 上传在解析 multipart 正文前独立核验 owner,单文件使用有界临时文件,图片、音频、视频与 PDF 各自使用明确大小上限
  • 服务器同时核对声明 MIME、文件魔数、扩展名与素材类型,拒绝不安全文件名、同名冲突和原地替换
  • 浏览器使用可显示进度、可取消且只能手动重试的 XHR;成功或失败结果均由服务器重建为白名单 DTO,不返回 Payload 文档、存储地址、密钥、令牌或错误栈
  • 发布会检查所有启用的图片、音视频、嵌套封面与文档引用;缺失、重复、处理中、失败、类型不符或无障碍信息不足时继续阻止发布
  • 素材变更与简历发布共用同一个事务级写锁;当前文档、保留的 50 个历史版本或其他素材封面仍在引用时不能删除
  • 同源读取支持 GET、HEAD 与单区间 206,本地存储防越界与符号链接逃逸,私有 S3 只按固定 bucket/prefix 流式读取

验证维度

  • owner 前置鉴权、multipart 上限、MIME/扩展名/魔数、状态所有权与服务器响应白名单测试
  • 公开/私有可见性、路径穿越、GET/HEAD/Range、安全响应头与本地/S3 存储边界测试
  • 发布准备度、共享写锁、当前/历史/封面引用删除保护与既有文章媒体不受影响测试
  • 隔离 PostgreSQL 16 与本地私有存储集成测试 3/3 通过
  • 本任务没有进行浏览器视觉 QA、Caddy 验证或生产部署

公开简历子域只读隔离

将公开简历收口为不可发现的只读子域,owner 登录、编辑、CMS 与 API 继续只存在于主域。

交付范围

  • resume 子域只放行 GET 和 HEAD 的根页、Next 静态资源、简历自带媒体与 /resume-media/*,其他路径和方法统一返回不可发现的 404
  • Next Proxy 作为子域快速预筛,Caddy 使用同样的显式 allowlist;数据层 owner 鉴权仍然独立执行
  • owner 会话继续使用主域 host-only Cookie,没有添加父域 Cookie 或 resume 子域 Server Action 来源
  • 公开简历已从公开路由清单移除,默认不进入 Sitemap;只有 owner 显式允许收录后才加入唯一 canonical,robots 同时明确拒绝 owner、CMS、API、GraphQL 与预览路径
  • 子域 CSP 只允许同源图片/媒体与已登记的 Bilibili、腾讯设计 Demo 和 OPC Demo 帧来源
  • 运维文档补充 owner 受控恢复、简历素材大小/类型边界、PostgreSQL + resume-assets 联合备份与回滚核对顺序

验证维度

  • resume 主机 GET/HEAD allowlist、任意管理/内容/未知路径 404 与非读方法拒绝测试
  • Caddy 精确资源路径、受信 iframe CSP、noindex 响应头与无 catch-all 反向代理测试
  • Sitemap/公开路由无简历、robots 私有路径和生产自托管配置回归测试
  • 本记录尚未声称生产上线;实际 Caddy 校验、桌面浏览器验收与部署仍属最终发布门禁

同画布简历可视化编辑器

新增与公开简历共用同一渲染器的私有 owner 编辑器:结构化修改会直接映射到预览,草稿保存、发布和版本恢复保持独立边界。

交付范围

  • 受保护的 /owner/resume 页先核验 owner 会话,再读取草稿、已发布快照与历史版本;服务端会传递完整安全 Demo 白名单,隐藏后重新启用、换键或历史恢复也能继续解析
  • 桌面端使用顶部工具栏、模块树、固定视口画布与上下文属性面板,所有界面图标统一为 Tabler Icons
  • 公司、岗位、职责、项目、结果与作品使用稳定 ID,支持分层新增、复制、显隐、删除与排序;删除撤销会保留原位置和 ID,后续编辑后自动过期
  • 编辑状态直接驱动同一个 ResumeRenderer,不另做近似预览;所选稳定节点在画布中以蓝色边界标记
  • 自动保存在停止编辑 1 秒后启动,全程只保留一个在途请求;保存期间的新修改会用上一次返回的 revision 串行保存
  • 发布前会排空待保存代次,且只提交最新 revision;冲突或失败会保留本地内容、阻止发布并在真正脏状态时启用离开页面提醒
  • 历史版本经二次确认后只恢复为新草稿,当前已发布快照保持不变
  • 发布或恢复执行期间会锁定编辑画布和对话框关闭路由,运输异常也会在 finally 中恢复操作,避免并发编辑丢失或界面永久锁死
  • 每次打开历史版本都会从服务端重新读取摘要,时间固定以上海时区格式化,避免服务器与浏览器渲染不一致
  • owner 编辑器仅提供 1536 与 1280 像素桌面画布,通过命名 container query 与属性面板解耦;不再包含 390 像素或移动端 owner 运行分支

验证维度

  • owner 页面鉴权顺序、服务端 Demo JSON、同画布即时编辑与稳定 ID 操作测试
  • 1 秒防抖、单在途请求、代次排空、最新 revision 发布、冲突保护与失败重试测试
  • 历史恢复为草稿、已发布快照不变与 beforeunload 脏状态测试
  • 1536/1280 固定桌面画布、属性面板解耦、选中节点标记与无 owner 移动运行分支测试
  • 受影响简历、owner、版本更新回归、ESLint、Task 11 路径 TypeScript 诊断与差异格式检查
  • 本任务没有进行浏览器视觉 QA,也没有实现上传、修改 Caddy 或部署到线上

公开简历无障碍媒体交互

在保留服务端优先简历渲染器的前提下,新增原生音视频、图片查看、受控 Demo 与 Bilibili 预览;所有可播放或嵌入内容都由访客主动开启。

交付范围

  • 访客明确激活后才挂载 MP4、MP3 或 iframe 地址,初始页面只展示真实封面、波形、缩略图、说明与安全外链
  • 视频和音频使用浏览器原生媒体能力,播放状态跟随真实事件,并提供播放、暂停、进度、音量、静音与视频全屏控制
  • 整份简历共用一个媒体协调器:激活 Bilibili 会暂停当前原生音视频,开始原生播放会关闭已激活的 Bilibili iframe,卸载时释放所有权
  • Gallery 对话框支持 Escape、真实背景点击关闭与宽窄视口图片约束;跨域 Demo 保留焦点锁定、Tab 返回和始终可见的关闭按钮,不承诺 iframe 内 Escape 可被父页面捕获
  • Demo 地址只由服务端注册表解析为纯 JSON;Bilibili 仅接受严格 BV 标识,并在激活后使用最小 iframe 权限
  • 峰会证据种子只保留公开清单中的通用内容互动引导框架,补齐真实尺寸与时长,并移除未确认的峰会日数字表述
  • 已初始化数据库通过前向迁移只替换 Global 与对应版本快照中精确匹配的旧证据节点,保留所有者自定义内容、原有 revision 与版本快照一致性
  • 打印时隐藏播放器、控件、iframe 和对话框,同时保留封面、波形、Gallery 图片、说明和唯一公开外链

验证维度

  • 种子与公开 manifest 对齐、withheld 证据不回流和真实媒体尺寸/时长回归测试
  • 首屏无媒体源、激活、真实媒体事件、拒播回退、全局互斥、范围控件与 Tabler 图标测试
  • Dialog 焦点、Gallery 导航和真实图片宽度约束、Demo 稳定关闭路径、严格 BV、跨媒体互斥、安全链接与打印边界测试
  • 迁移提交 4dc47cf 在隔离 PostgreSQL 16 中通过 3/3:全新默认值安全、Global 与版本快照保持一致、重复执行和 forward-only down 均不回退数据
  • 全部受影响简历测试、ESLint、Task 8 路径 TypeScript 诊断和差异格式检查
  • 本任务没有进行浏览器视觉 QA,也没有部署或发布到线上;浏览器网络与视觉验收保留为后续门禁

峰会公开媒体证据整理

完成公开简历后续媒体模块所需的安全派生素材:当前只准备经过筛选的文件与可追溯清单,尚未接入简历页播放器或发布交互。

交付范围

  • 峰会主视觉母片移除母片前 10 秒含真实感人脸与内部界面的片段,转为 1280 × 720、30fps 的 H.264/AAC MP4
  • 视频统一标注为“峰会主视觉视频”和概念主视觉片段,不将其表述为活动现场实录或回顾
  • 封面使用母片 95.5 秒的真实片尾画面;两个配乐方案保留完整时长,移除元数据并生成由解码采样绘制的 WebP 波形
  • 配乐方案 B 去除 AIGC ProduceID 等源元数据,并在编码前执行真峰值限制
  • DOCX 证据只公开通用的内容互动引导框架;含未确认内部活动数据的其余候选图不生成公开文件
  • 生成稳定 JSON 清单,记录源与输出哈希、尺寸、时长、字节数和不含敏感指标正文的 withheld 原因码
  • 处理过程只在系统私有临时目录构建和校验;首次安装只执行单次目录重命名,候选集不同时在触碰前失败并保留现有公开目录

验证维度

  • 媒体目录精确文件集、编解码属性、faststart、尺寸、时长、大小上限、元数据与源不可变自动化测试
  • 处理器两次最终运行的目录、manifest 与全部文件哈希逐字节一致
  • 安装、相同重跑、差异重跑与注入失败均有自动化回归,公开目录不存在构建、回滚或 previous 临时同级目录
  • 片尾封面、两张波形图和公开框架图已逐张本地检查,未发现联系方式、二维码或参会者人脸
  • 本任务没有进行浏览器视觉 QA,也没有把媒体接入渲染器、种子数据或线上发布链路

公开简历层级渲染器

公开简历从旧的静态内容页升级为共享层级渲染器,公开页改为读取已发布快照,并为后续可视化编辑预览保留同一展示边界。

交付范围

  • 公开 /resume 通过服务端仓库读取已发布简历,不再直接引用本地种子内容
  • 公司、岗位、项目、职责、结果与证据保持原有从属关系,隐藏节点与空模块不会出现在公开页面
  • 桌面使用个人信息、经历时间线和速览三栏;中等屏幕收为左栏与正文,窄屏按文档顺序单栏展示
  • 公开页与未来编辑预览共用同步 ResumeRenderer,稳定节点标记支持后续选择和排序,不携带登录或编辑状态
  • 证据先提供原生音视频、图片、文档与安全外链的静态能力,不提前实现自定义播放器、灯箱或 iframe
  • canonical 固定为 https://resume.wuyuheng.cn/,默认跟随已发布设置保持 noindex、nofollow

验证维度

  • 层级、隐藏节点、稳定节点标记、双 surface、语义标题、外链安全与打印操作组件测试
  • 服务端已发布快照、canonical、默认 noindex/nofollow 与无维护入口页面测试
  • 全部受影响简历回归测试、ESLint、Task 6 路径 TypeScript 诊断和差异格式检查
  • 本任务未进行浏览器视觉对照;参考图视觉验收保留为后续独立门禁

私有简历工作台与所有者登录

新增自定义所有者登录页与受保护的工作台外壳,公开简历与私有维护入口从视觉到权限都保持分离。

交付范围

  • 新增 /owner/login 简洁登录页和 /owner 私有工作台,界面延续公开简历的编辑感纸面、蓝色强调与点阵背景
  • 登录复用 Payload 的唯一身份和会话来源,但不显示、引用或链接旧 CMS 界面
  • 仅 owner 角色能写入会话 Cookie;Cookie 保持 HttpOnly、SameSite=Lax、Path=/、生产 Secure 与 host-only Cookie 边界
  • 所有凭证、角色和锁定失败统一返回中性错误,不向客户端返回或渲染令牌
  • 受保护页面自行查询当前 owner 会话;登出无论服务端撤销是否成功都会删除同主机 Cookie
  • 登录后返回路径仅允许 /owner 内部页面,外部协议、双斜杠、反斜杠、编码跳转与跨目录路径均会回退到 /owner

验证维度

  • 无效凭证、editor 凭证、owner 凭证与会话 Cookie 属性单元测试
  • 登出失败时无条件删除 Cookie 的回归测试
  • 安全返回路径与多类开放重定向输入的表驱动测试
  • 匿名跳转、owner 工作台、自定义登录页、noindex 元数据与无旧 CMS 入口页面测试

CMS 单一所有者权限收紧

CMS 内容写入统一收敛到唯一 owner 身份:编辑账号不再拥有任何内容、媒体、文章合集、专题或站点配置的写权限;公开阅读和站内文章仓库的受限读取路径保持不变。

交付范围

  • 用户新增 owner / editor 角色,后台入口仅 owner 可见,普通接口不能创建或删除账号,也不能修改角色
  • 文章草稿、历史版本、媒体、专题、合集和两个网站配置全局项仅允许 owner 写入;公开内容继续按发布状态或公开读取规则提供
  • CMS 登录启用会话、5 次失败锁定 10 分钟、2 小时有效期、SameSite=Lax 与生产环境 Secure 的 host-only Cookie,并从 JSON 响应移除令牌
  • 受控种子和管理员重置会在同一 PostgreSQL 事务和事务级 advisory lock 内将指定账号设为 owner,并把全部其余 owner 降为 editor,最终保持唯一 owner
  • 文章仓库仅保留显式的服务端读取上下文,不能用作写入权限绕过
  • Payload 的首次注册入口已在应用路由关闭;resume.wuyuheng.cn 会在进入 Payload REST、GraphQL 或 GraphQL Playground 前直接拒绝请求
  • 在线简历子域的 Caddy 已改为最小公开 allowlist:仅放行根页、Next 静态资源、favicon 与当前三张简历证据图;CMS、API、预览、共享媒体和未知路径统一返回 404

验证维度

  • 匿名、editor、文章仓库上下文和 owner 的完整 CMS 访问矩阵测试
  • 管理员重置与种子唯一 owner 行为回归测试(含超过 100 个 owner、事务回滚和 CLI 输出脱敏)
  • Payload 实际 REST/GraphQL 路由的首次注册与 resume 主机拒绝策略测试
  • 在线简历子域的 Caddy allowlist、静态资源与拒绝回退策略测试
  • Payload 类型生成、相关 CMS 回归测试和 ESLint 检查

在线简历公开展示页

新增 /resume 公开简历子页面,以可直接阅读的个人档案为核心,而不是编辑器;页面采用纸张式履历视觉,并按真实简历材料呈现工作经历、项目、能力与教育背景。

交付范围

  • 新增 /resume 公开简历子页面,采用独立的纸张式履历、概览索引、影响力速览与精选证据三栏布局
  • 顶部保留查看 PDF 与下载 PDF 两个入口,均会打开浏览器打印预览,可直接另存为 PDF
  • 页面不包含编辑器、表单、本地草稿或后台功能;公开内容集中维护在 src/content/resume.ts
  • 已预置 resume.wuyuheng.cn 子域路由:子域根路径将展示在线简历,左上角品牌入口回到 wuyuheng.cn 主站
  • 工作经历、项目精选、能力与教育背景来自经核对的简历事实池;未确认的签约主体、预测值、内部材料和生产状态不会公开展示
  • 精选项目与右侧证据卡指向公开教程、产品 Demo 与个人公开内容,并复用现有文章封面资产
  • 在线简历加入公开路由集合和站点地图,主导航仍只保留首页与文章

验证维度

  • 公开简历可访问性、PDF 打印入口与无编辑控件组件测试
  • 公开路由注册与版本更新内容测试
  • resume.wuyuheng.cn Caddy 子域路由语法校验
  • 桌面、手机与打印版式视觉验收

文章页轮播归位与管理端可登录

修正文章合集的页面归属:首页恢复为纯品牌动效,/articles 顶部改为可配置的合集轮播;现有 Payload 管理端补齐可登录管理员和文章页配置入口,文章缺少封面时继续稳定显示备用图片。

交付范围

  • 顶部导航只保留首页与文章,合集和标签继续作为文章体系的子页面
  • 首页移除合集轮播,保留品牌、打字、14 项媒体轨道、前景视频、拖拽与滚动动效
  • /articles 顶部使用文章合集轮播,支持自动播放、键盘切换、触摸滑动和减少动态效果模式
  • 管理端 /cms 登录已交付,文章页设置可选择合集、拖动排序、单项启停并覆盖标题、简介和背景图
  • 页脚新增内容管理入口,后台栏目统一为中文并按内容、资源、网站配置和系统分组
  • 文章与合集封面改为可选,按文章封面、合集封面、配置池和内置图片的顺序稳定兜底
  • 新增 6 张内置备用封面,统一为 1600 × 900 WebP,并按文章固定链接稳定分配
  • 本地 CMS 数据迁入正式迁移库,保留现有内容和账号,管理员密码可安全重置且不会写入 Git
  • wuyuheng.cn 已切换到独立的 PostgreSQL、MinIO 与只读运行容器,CMS、文章和首页使用同一套正式数据
  • 公开媒体只允许 GET 与 HEAD,并由应用在私有网络读取 MinIO;数据库和对象存储不暴露主机端口

验证维度

  • 首页无合集轮播、原品牌动效保留和文章页顶部轮播归属测试
  • 文章页轮播键盘、触摸、自动播放和减少动态效果回归测试
  • 封面优先级、稳定分配、图片尺寸、格式与唯一哈希测试
  • Payload Globals、缓存刷新、种子幂等和 10 项真实 Postgres 集成测试
  • 正式迁移首次执行、二次 no-op、迁移台账和本地内容恢复核对
  • 管理员重置行为、真实登录 API、桌面与手机首页、文章页和 /cms 验收
  • 正式域 HTTP、HTTPS、www、媒体方法限制、C07 共用 Caddy 与生产管理员登录回读
  • 完整测试、ESLint 与 Next.js 生产构建

本地首页动效恢复

修复通过 127.0.0.1 打开开发预览时,开发资源被 Next.js 本地来源保护拦截、页面只剩静态首屏的问题;现在本地首页会正常完成客户端挂载并运行完整动效。

交付范围

  • 将 127.0.0.1 加入 Next.js 开发来源白名单,保留本地预览的资源保护边界
  • 恢复 Hero 打字切换、14 项媒体轨道自转与前景视频播放
  • 恢复标题、轨道和产品界面随滚动连续过渡,不改动既有动效参数

验证维度

  • 开发配置回归测试覆盖 127.0.0.1 本地来源
  • 同一开发服务器下对比 localhost 与 127.0.0.1 的客户端挂载状态
  • 1686 × 874 桌面视口轨道自转、视频播放与五个滚动停点检查

完整首页重新开放

根路径重新展示完整动效首页,并接回当前文章站导航、搜索与内容入口;现有真实文章、合集、CMS 和 woozie Tech blog 品牌保持不变。

交付范围

  • 恢复 Hero、工作流轮播、案例展示、主题生态和底部阅读 CTA
  • 顶部导航增加首页入口,保留合集、文章、标签、搜索与 RSS
  • 恢复首页 canonical、分享元数据、公开路由与站点地图入口

验证维度

  • 首页组件、当前品牌元数据与过期活动隐藏测试
  • 桌面和手机首页布局、动效、媒体与横向溢出检查
  • 完整测试、Lint、TypeScript 与 Next.js 生产构建

省 Token 系列与比赛双入口上线

文章站新增两篇真实的省 Token 系列长文,并将公开入口收敛到文章阅读;比赛继续保留在 tencent-events.cn/tokenless,右上角新增文章入口,让参赛和阅读可以并行进行。

交付范围

  • 左上角、页脚、浏览器标题与分享元数据统一使用“woozie Tech blog”品牌
  • 文章首页精选合集固定展示“省 Token 系列”,直接呈现两篇省 Token 长文、17 分钟阅读路径与对应封面
  • 完整排版《别急着把资料塞给 AI:省 Token 的五个习惯》和《AI 越用越贵,真正烧钱的是那些看不见的返工》
  • 新增“省 Token 系列”合集、AI 成本专题、合集内上一篇与下一篇导航
  • 文章站根地址直接进入文章库,公开导航只保留合集、文章与标签
  • 比赛站右上角新增“文章”入口,比赛首页与参与数据保持不变

验证维度

  • 文章原文、引用、延伸阅读链接与多合集归属测试
  • 桌面与手机文章排版、导航和横向溢出检查
  • 比赛参与数据哈希、入口链接和两站 HTTPS 可用性检查

真实 WorkBuddy 教程上线

删除原先重新编写的短示例,改为完整呈现成都 OPCWorkshop 资料中的六篇真实教程;正文、Prompt、操作步骤、检查清单和截图均按原文迁移,并统一整理为适合公开阅读的 AI 协作实践课。

交付范围

  • 六篇完整教程依次覆盖自媒体生产线、OPC 官网、MCP、ima 知识库、记忆系统与商业计划验证
  • 每篇新增“人负责 / AI 与 Skill 负责”协作分工,强调问题定义、真实材料、边界、质量判断与验证仍由人完成
  • 37 个真实文章图位全部改为网站同源素材,并保留替代文本与图片说明
  • 长文新增响应式截图、对照表、协作卡和 Skill 工具卡,Prompt 继续支持一键复制
  • CMS 只会替换仍保持旧系统示例标题的文章;已经人工编辑过的文章和草稿状态继续受到保护
  • Postgres 不可用时的本地回退内容同步升级为六篇完整教程,旧公开链接保持不变

验证维度

  • 真实标题、关键章节、Skill、Prompt、图片数量与同源文件契约测试
  • Lexical 列表、图片、表格、协作分工与工具卡渲染测试
  • 旧系统示例迁移与人工 CMS 内容保护测试
  • 桌面和手机长文排版、目录、图片、复制操作与横向溢出浏览器检查

个人网站品牌统一与文章离线可读

全站公开品牌统一为“woozie Tech blog”,首页与文章区使用同一套名称、页脚与分享元数据;文章服务在本地内容数据库暂不可用时,会自动使用仓库内的已备份文章,保证阅读入口仍然可用。

交付范围

  • 首页、文章页、页脚、RSS 与分享卡片统一使用“woozie Tech blog”
  • 首页文案调整为个人实践、作品、内容与知识记录,不再展示产品下载或套餐承诺
  • 移除旧产品、客户端下载、Skill 分享、套餐和协议页面在公开站点地图中的入口
  • 文章库、合集、文章详情与 RSS 在 Postgres 连接失败时自动回退到六篇本地备份文章

验证维度

  • Postgres 连接失败时的文章仓库回退测试
  • 全站品牌、首页与分享元数据一致性测试
  • 文章库、合集与文章详情浏览器回归检查

文章发布工作流

公开文章列表、合集与阅读页已切换到 CMS 仓库,并接入 Lexical 正文渲染、安全草稿预览与真实内容统计;首页和文章页现已共享导航与 MiSans 设计规范,SEO、JSON-LD、RSS 订阅源、站点地图与 robots 已接入真实 CMS 数据,并完成隔离数据库迁移、幂等导入、调度与真实 HTTP 发布生命周期验收。

交付范围

  • 新增用户、媒体、文章合集、专题和文章五类 CMS 内容集合
  • 文章支持草稿、定时发布、版本上限、阅读时长、SEO 覆盖与受信任预览地址
  • Lexical 编辑器加入提示、步骤、提示词和清单四种结构化内容块
  • 发布、改名或删除文章时规划文章页、合集、订阅源和站点地图的缓存刷新
  • 缓存刷新会在 CMS hook 边界解析文章合集关系,避免把数据库 ID 当作公开合集地址
  • 合集解析继承当前 Payload request,保留事务和请求范围内的上下文
  • 阅读时长只计算正文与结构化块的作者文本,编辑元数据或局部更新不会改变原有时长
  • 媒体要求替代文本,开发环境使用 Git 忽略的本地目录,生产环境仅接受完整 S3 契约
  • 新增公开文章仓库、合集内导航与安全草稿读取,文章列表只返回摘要,不携带正文或登录身份
  • 现有 6 篇文章已转换为 Lexical 并通过幂等命令迁移到 Postgres,重复执行不会生成副本
  • 公开列表、文章详情与合集页改由服务端仓库驱动,支持 CMS 动态 slug、空结果和合集内真实进度
  • 文章库客户端只接收可序列化摘要、统计与筛选项,搜索和专题参数可回写 URL,右侧改为有数据依据的“最新文章”
  • 零公开文章时显示真实空态,不再出现无效的筛选恢复按钮或空的最新文章榜单
  • 官方 Lexical React 渲染器覆盖标准段落、标题、列表、链接与行内代码,并复用提示、步骤、提示词和清单四类内容块
  • 站内链接在编辑器与公开渲染端共用同一安全合约,内部关系仅支持文章和合集,常见 www 输入会归一化为 HTTPS
  • 生产媒体与网站共用同一 HTTPS origin 时仍可安全读取 /media 资产;封面与 Lexical 正文图片统一拒绝外域、通配域名、query/hash、路径穿越和未校验的响应式图片地址
  • 目录 ID 按标题或结构化块的真实出现顺序稳定生成,即使历史文章只有内容块也不再出现虚构目录
  • 新增安全的身份验证草稿预览与退出预览:仅接受受信任 slug,重新验证 CMS 会话,忽略用户传入的跳转地址
  • 首页与文章页共用同一套导航事实、几何和移动菜单行为,合集与文章路由显示唯一且正确的当前位置
  • 全站统一加载 MiSans 400、500、600、700 四档字重,并以共享字号、间距、色彩、焦点和响应式令牌约束样式
  • 桌面与移动端共用一个可聚焦导航,搜索真实提交文章关键词,Command 或 Ctrl + K 可聚焦并选中搜索框
  • 移动菜单支持 Escape 关闭并恢复触发按钮焦点,活动倒计时到期后不再显示零天促销
  • 移除通用 GitHub、无目的主题切换、不存在的关于页与错误归档入口,RSS 入口统一为 /feed.xml
  • 搜索与订阅出口统一从真实 CMS 读取,并按公开状态、noIndex 与有效发布时间过滤
  • 草稿、noIndex、缺少有效发布时间和异常 slug 会从搜索发现面安全关闭,计划任务环境的缓存失效异常也不会阻断发布
  • RSS 与站点地图改为请求时读取 PostgreSQL,发布、noIndex 或撤下不再等待本机 ISR 缓存
  • 初始数据库迁移已在隔离验证库安全应用,第二次迁移为 no-op,并验证了 seed 三态幂等与 dev-push 库拒绝保护
  • 全新临时 Postgres 容器已再次完成首次迁移、no-op 重跑与两次 6 篇文章导入,台账仅保留 initial migration,文章与媒体 ID 保持稳定
  • 真实 HTTP 验收覆盖草稿隔离、鉴权预览、发布、noIndex、撤下、RSS、站点地图和测试数据精确清理
  • 发布验收和端到端写操作无论本地或远端都需要显式破坏性确认,临时文章可按精确 slug 补偿清理,QA 日志会同时遮蔽原始与 URL 编码后的预览密钥
  • 浏览器自动化执行仍待明确授权;真实 S3/CDN 与 DB+S3 成对恢复演练仍是生产部署门禁

验证维度

  • CMS 访问控制、预览 URL、缓存刷新与阅读时长聚焦测试
  • Payload 类型与管理员 import map 生成
  • 真实 Postgres 发布、撤下、草稿隔离、唯一 slug、媒体与结构化正文往返测试
  • 公开页、摘要边界、Lexical 节点、安全链接与草稿预览的行为回归测试
  • 共享导航、搜索快捷键、移动菜单、唯一当前位置、MiSans 字重与 sticky/anchor 令牌契约测试
  • 元数据、JSON-LD 注入防护、RSS XML、站点地图、robots 与缓存语义行为测试
  • 隔离 fresh Postgres 中的迁移台账、幂等 seed、定时发布/撤下和真实 HTTP 公开面验收
  • 2026-08-11 CMS 收尾复核:全新 Postgres 实例、两次迁移、两次种子导入与 10 项真实数据库集成测试
  • Payload Admin 官方样式、同源本地媒体安全归一化与 44px 移动搜索触控目标回归测试
  • 当前生产构建的 in-app 浏览器抽查:CMS 登录/Lexical、文章封面、移动导航、触控尺寸、溢出与控制台
  • Payload run 脚本失败传播、远程写保护、编码密钥遮蔽与安全备份操作契约
  • ESLint 与 Next.js 生产构建

文章系统视觉重构

重构文章库、合集与详情页,以统一的蓝白技术编辑风连接主页与阅读体验。

交付范围

  • 重做共享顶栏、搜索、移动导航、主题切换和多栏页脚
  • 文章库新增浅蓝技术 Hero、真实数据概览、精选合集、搜索筛选、热门文章和标签区
  • 文章详情新增阅读进度、技术横幅、系列导航、文章目录、快速操作和更清晰的正文组件
  • 文章系统统一使用 MiSans 的 400、500、600、700 字重,改善中英文与数字混排
  • 当时保留 6 篇脱敏改写示例、合集顺序、提示词复制和上一篇/下一篇;示例正文已在 2026-08-15 被真实教程替换
  • 按要求移除右侧个人资料与虚构社交数据,不展示评论、粉丝或订阅量

验证维度

  • 文章外壳、文章库、合集、详情与版本记录回归测试
  • 桌面与手机响应式浏览器截图对比
  • ESLint、Next.js 生产构建与控制台检查

实践工作坊文章合集

新增一个现代风格的文章模块;当时收录 6 篇脱敏改写示例文章,后续已由 2026-08-15 的六篇真实教程完整替换。

交付范围

  • 新增 /articles 文章库,支持按主题筛选和空结果恢复
  • 新增 /articles/collections/practice-workshop 合集页,按六篇文章组织阅读路径
  • 新增 6 个独立文章地址,支持上一篇/下一篇和提示词复制
  • 当时将任务卡和详细教程重新整理为短示例;这些示例已不再作为公开正文
  • 首页结构与现有动效保持不变,只增加文章导航入口

验证维度

  • 文章内容契约、静态渲染、路由生成和版本记录测试
  • Next.js 生产构建与 TypeScript 检查
  • 桌面、移动端文章库、合集页和阅读页浏览器验收

首页动效系统对齐当前官网

按当前公开首页源码与同视口 Edge 实测,重构首屏滚动时间轴、产品界面材质、工作流轮播惯性和全页同层级文字揭示。

交付范围

  • 标题、说明和下载按钮依次上移渐隐,媒体轨道叠加滚动相位后淡出,产品界面最后缩小并清晰进入
  • 产品截图改为图片自身 8px 圆角与四层轻阴影,局部媒体使用独立缩放、模糊与透明度
  • 工作流轮播持续自动前进,支持横向意图锁、拖拽、松手惯性、按钮步进和无缝双轨循环
  • 工作流、Skill、作品展示和底部召回标题共享逐词揭示,正文、标签与内容组共享块级进入
  • 同步当前活动文案、分钟级倒计时、Hero 双文案打字节奏和工作流说明

验证维度

  • Microsoft Edge 同视口官网/本地六个滚动停点截图与真实拖拽惯性对照
  • 1440、768、390、200% 压力视口与 prefers-reduced-motion 检查
  • 完整测试、Lint、生产构建、本地素材校验与 15 路由浏览器回归

首页 Hero 3D 动效补完

补齐首页 Hero 的源站动效层次、拖拽反馈与滚动过渡,同时保留移动端和减少动态效果模式的完整静态终态。

交付范围

  • 14 项媒体组成的可拖拽 3D 椭圆轨道
  • 0.055 pointer 平滑及时间归一化的真实松手惯性,静止后不沿用陈旧速度
  • 30fps 空闲 / 60fps 交互节奏,只播放最前方 4 个视频
  • 滚动触发轨道淡出及产品界面缩小、淡入和去模糊过渡
  • “把创意,真正做出来”8 个词元依次揭示
  • 移动端与 prefers-reduced-motion 直接呈现完整终态

验证维度

  • Microsoft Edge 1440×1000 桌面行为验证
  • Microsoft Edge 390×844 移动端静态终态与横向溢出验证
  • 完整测试、Lint、生产构建与本地素材校验

首页初始视觉实现

以可维护的 Next.js/React 工程建立首页、文章与响应式视觉基础,后续已改为个人网站内容方向。

交付范围

  • 首页
  • 首页视觉与动效基础
  • 文章阅读入口
  • 响应式页面结构
  • 三档响应式 Edge 浏览器 QA
  • 142 项本地素材边界(含 PSD 分层 manifest)

验证维度

  • 本地素材校验
  • 交互行为测试
  • 类型与生产构建
  • 15 条路由 × 桌面、平板、手机,共 45/45 通过