← 返回周目标完成情况

首页待办与学习推荐(含「我的」页还没拿到的官方认证)

日期:2026-10-16。工作树:.claude/worktrees/home-todo,分支 feat/home-todo-learning。起点:origin/develop d4af33fe。需求来自白晨 10-16 在 debug 环境看完首页工作台后提的三条(经主控转达),同日追加第四条:「我的」页认证区列出还没拿到的官方认证(见文末「追加:「我的」页」)。

改了什么

项 改动 提交
1 「今日行动」改名「待办」 卡片、目录(标题与说明)、模板缩影、编辑态、设置弹层、放大按钮与提示等用户可见处一律改「待办」,内部类型名 actions 不变;数据、分组、排序不动。主数字旁那句话不再以今天为中心(rules/actions.ts::actionSummary);卡头不再写今天日期(删 todayLabel);空态改为「还没有待办」 bf4a2558
2 空态「去「X」」点了没反应 WorkbenchPage.tsx::focusTile 只在卡不在视口时滚(nearest,并让出吸顶顶栏),卡片亮一圈品牌黄描边约 1 秒后淡出(借原型 .tile 已有的 box-shadow 过渡,减弱动效时原型已关过渡、静态亮灭),落点补画焦点环、失焦即摘。所有空态入口(待办、消息提醒、我的任务、作品与积分、我能接的单)都经同一个 focus,一并生效 df0aaf18、6c4533ed、999df6c2
3 学习推荐补「可以先学的认证」 没有推荐但还差官方认证时,同一位置改列「可以先学这些」(认证名、说明截一行、「去学习」),各尺寸按推荐同一套排法;官方认证芯片可点进认证页;弹层里未获得的官方认证也给「去学习」;目录为空写「平台还没有开放认证」,拿齐写「认证已齐」。规则在 rules/learning.ts,learnLink 改为只读 id/task_id/learning_links,官方定义与任务要求里的认证直接共用 ab017772

文案最终写法:

场景与步骤

验证

分档:tools.ci.affected --tier --base origin/develop --business-rule 判大档(改了 e2e/support/*,共享基座),应跑 make check + make mutation,本轮都没跑完,见下节。留证目录 .artifacts/testing/home-todo-learning/。

范围 结果 证据
工作台单测(47 个文件) 643 通过 20261016T082225.950812Z-2dd0e98c3e1347578fcf9dc1954b7231
本任务改动文件的单元覆盖 全部 100%(行、分支、函数、语句);同目录未达 100% 的只有另一子代理在改的 widgets/variants/*、FeedWidget、InspirationWidget 与未改动的 FitList 同上(--coverage.include 限定工作台目录,全局阈值因而报红,不作门禁数字)
前端全量单测 3080 通过、3 失败,失败都在已知基准红名单内(ProjectConversationRead、ProjectLegacyRoute、TuantuanAssistant.recovery-context;TuantuanAssistant.test.tsx 本次通过) 20261016T081811.196654Z-02c0192ea4254449a476d8b3f8d30800
变异(make mutation-changed) 分批:actions.ts 97.75、learning.ts 100、opportunities.ts 96、templates.ts 98.43、time.ts 100,均 ≥ 80;8 个存活都在本任务没改的行(GROUP_ORDER、shownCount、groupRows、templates.ts 网格计算)。存活复核那步跑全量用例,被基准红名单里的 ProjectLegacyRoute.test.tsx 卡住,未出复核分 20261016T080610.921302Z-8385f8249f6b429a9fc80acbacd4d674
ESLint、TypeScript(三份 tsconfig) 通过;knip 报 3 个 e2e/support/tuantuan-plan-maintenance.ts 未用导出,origin/develop 上已存在,不归本任务 20261016T082521.242906Z-104e23a0c56742b8a56d3acde503e425
契约 通过 20261016T082547.548450Z-7701a6ed471e408bbbdcdb045d063912
场景 lint、专属用户、映射表 通过 20261016T082728.538122Z-42f8e4ec0d234b03b850cec0567c69cb;tools.acceptance.users、affected --lint 当场输出
工具测试 命令本身退出 0;run.py 因运行期间源码指纹变了(同工作树另一子代理在改文件)判 1 20261016T082604.889277Z-8635310976084b1eb2b8cf83762eaaf9
集成层(test_工作台.py、test_schemas.py) 100 通过(改名后的步骤绑定) 当场输出,未留证
样式门禁 通过 当场输出,未留证
本机预览实测 1440×900 与 390 宽、亮暗两色:待办改名与句子、无卡头日期;空态跳转后描边亮约 1 秒淡出、焦点环可见,手机宽度从下方点能滚回并让出顶栏;学习推荐「可以先学这些」六种尺寸、弹层「去学习」 截图在 /tmp/vos-preview/shots-a/(不入库)

没跑的与已知问题

拿不准、自行决定的点

追加:「我的」页还没拿到的官方认证(10-16)

改了什么

场景与步骤

验证

分档仍是大档(MeCard.tsx 属权限风险区、pyproject.toml 共享基座、stryker.config.mjs 门禁资产、跨 identity/workbench 两域)。留证目录同上。

范围 结果 证据
新增单测(MeCertificationsToLearn.test.tsx 5 例) 先红后绿:实现前 5 例全红;认证名去标题那条断言改回 h3 时红 当场输出
前端全量单测 3087 通过、3 失败,均在基准红名单(ProjectConversationRead、ProjectLegacyRoute、TuantuanAssistant.recovery-context);覆盖阈值因此未出数 20261016T092957.842719Z-87fc3814a523408dadc9573da2703766
本次改动文件的单元覆盖 lib/certification-learning.ts、MeCertificationsToLearn.tsx、MeCard.tsx、routes/me.tsx、rules/learning.ts、rules/opportunities.ts 行、分支、函数、语句全部 100% 31 个相关测试文件 339 例通过:20261016T093504.025057Z-48dfa903cdbc4d7499dd1cda601bbe53(命令退出 0,运行期间另一子代理改了源码,记录判 1);逐文件百分比为当场 json-summary 输出
ESLint、TypeScript(三份 tsconfig) 通过;knip 报 4 个未用导出:3 个 e2e/support/tuantuan-plan-maintenance.ts(origin/develop 已有),1 个 widgets/variants/feedParts.tsx::Reward(另一子代理在改的文件),都不归本任务 20261016T093712.035744Z-14d338c945e147ce913510b0adfcf151
样式门禁 通过 20261016T093710.190490Z-297e6e695815413ebc14fbd65c39d977
工具测试(改了 mutation_web.py、affected.toml) 通过,100% 覆盖 20261016T093741.907779Z-df2fb3e1eaa34abc9d771ab20d4c5c95
场景 lint(--base origin/develop)、专属用户、映射表 通过 20261016T093841.467451Z-c3f7ca22dbaf4ae7bf127081a59a9bab;tools.acceptance.users、affected --lint 当场输出
变异(make mutation-changed) 分批:certification-learning.ts 100(30 个变异体全杀)、learning.ts 100、time.ts 100、actions.ts 97.75、templates.ts 98.43、opportunities.ts 94.29(函数搬走后分母变小,2 个存活在本任务没改的行),均 ≥ 80。存活复核那步跑全量用例,这次被 tuantuan/ProjectNudge.test.tsx「可见性回调排队期间切后台……」(observe is not a function,团团域,非本任务)卡住,未出复核分 20261016T093855.300051Z-84dfeebae1aa4ec0be303cf853ee79f8
本机预览实测 4210 uc-demo-worker(2 项认证)列出另 2 项;uc-demo-newbie(0 项)列出 4 项,含一门无说明的认证(不留空段落);4211 uc-variant-full(4 项全齐)写「官方认证已齐」。1440 与 390 宽、亮暗两色都看过,桌面在右栏顶部、手机在个人动态之后账户卡之前 /tmp/vos-preview/shots-a/me/(不入库)

没跑的

自行决定的点

追加:两张卡选定方案并入(10-16)

白晨 10-16 在预览里定了两张卡:「我能接的单」平台上没有开放的单时用方案 A「学习引导」(有开放的单时不变);「看看别人在做什么」全部尺寸换成方案 B「主次」。照定稿接受:主图是最新一条带封面的动态(可能比清单第一条旧)、三步里写死「上传认证截图」、3×4 与 4×4 卡底约 90~140px 留白。设计与文案不改。

改了什么

场景与步骤

编号 场景 所在文件/项目
AC-227(新) 平台上没有开放的单且只差一项官方认证时我能接的单把这一项做成主角卡并给出去学习与拿到它的三步,拿到后写认证已齐 首页工作台模块,@global-count(全量统计之后串行)
AC-228(新) 平台上没有开放的单且还差几项官方认证时我能接的单按目录顺序列出还没拿到的官方认证并给出学习入口,认证目录读取失败时可在卡内重新读取 首页工作台模块,业务并行
AC-229(新) 平台上的需求都已截止时看看别人在做什么以作品做主图并写最近没有新发布的需求,作品读取失败时可在卡内重新读取 首页工作台模块,业务并行
AC-230(新) 全新平台发布第一条任务后看看别人在做什么以它做主图,作品段写最近没有新完成的作品 初始空状态(屏障,串行)
AC-207(改步骤) 有新发布的需求与公开作品时看看别人在做什么分需求与作品两段按时间排并给出入口(标题不变) 首页工作台模块
AC-212(改步骤) 全新平台上新用户打开首页时找活、公开动态与作品积分都显示空态并给出去处(标题不变,加缩放到小卡、窄卡、大卡一步) 初始空状态

期望值都由页面这次读到的数据推出(主图挑选、两段顺序、官方认证缺几项),不写死;读取失败用 page.route 注入一次 422(4xx 不自动重试)。没有新增行内覆盖豁免。

验证

检查 结果
npm run lint、npm run type-check、npm run build 通过
npx knip 只剩 develop 上已知的 tuantuan-plan-maintenance.ts 3 个未用导出
npm run test:coverage 3180 例里 3 例失败,都在 develop 已知红名单(ProjectConversationRead、ProjectLegacyRoute、TuantuanAssistant.recovery-context);本分支相对 develop 改过的源码文件全部 100%(行/分支/函数/语句),features/workbench 全目录 100%;全量合计 96.62% 行,低于 100% 的 29 个文件都不在本分支改动里
make styles-gate 通过(死规则 0、令牌 10 条断言、加载态 0 处)
npx bddgen 通过
make lint-acceptance BASE=develop、python -m tools.ci.affected --lint、python -m tools.acceptance.users、git diff --check 通过
本机预览 4211(样式并入后) 两张卡各尺寸与并入前一致,截图 /tmp/vos-check/4211.png(不入库)

没跑的

自行决定的点

追加:合并 develop 后验收编号顺延(10-16 晚)

合并 develop(PR #29 AI 助手全流程升级)时,对方已用掉 AC-223、AC-224。本分支六个编号整体顺延两位:原 AC-223~AC-228 依次改为 AC-225~AC-230(AC.md、场景标签、步骤注释、pytest 标记、本档案与 log 同步改)。上文各节里的编号已一并替换,读到的就是新编号。