docs(plan): v0.2 closeout (W8-A) fixes and remaining gaps
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
45ebef4a88
commit
83498f9738
2 files changed
+30
-3
No files matched your search
@@ -248,7 +248,7 @@
|
||||
| `/console/tasks/:id`(下载任务 ID) | `/console/downloads/:id` | `tasks.$id.tsx`:业务任务 404 时查下载任务,查到就跳转 |
|
||||
| `/console/subscriptions?tab=policies` | `/console/rules` | `subscriptions.tsx` clientLoader |
|
||||
| `/console/sources?tab=snapshots&siteId=x` | `/console/sites/x?tab=snapshots` | `sources.tsx` clientLoader;无 siteId 留在来源健康 |
|
||||
| `/console/settings?tab=*` | — | IA-2 |
|
||||
| `/console/settings?tab=*` | `/console/settings#<分区>[/<节>]` | IA-2:`settings.tsx` clientLoader;W8-A 起 `settingsPath()` 直接生成 hash |
|
||||
|
||||
`nav.test.ts` 断言每个导航项、每个重定向目标都在 `routes.ts` 里;冒烟(`scripts/smoke.mjs` 的 `REDIRECT_ROUTES`)逐条打开旧地址,确认落到新地址且 200。
|
||||
|
||||
@@ -265,8 +265,8 @@
|
||||
|
||||
### 6.4 遗留
|
||||
|
||||
- "没有匹配 / 查询失败"的待识别资源不生成待处理事项,身份页改为只读后没有手动指定入口;需要服务端为这两类也开待处理事项,或在作品详情补"指定资源"。
|
||||
- `components/agent/agent-conversation.tsx` 仍链到 `/console/tasks/:下载任务ID`(W7-B 范围),靠 `tasks.$id.tsx` 的兜底跳转可用,改成 `/console/downloads/:id` 可省一次 404 探测。
|
||||
- ~~"没有匹配 / 查询失败"的待识别资源不生成待处理事项~~:W8-A 已为这两类开 `identity_unresolved` 事项(手动指定 TMDB ID / 选本地作品 / 忽略),见 `docs/plan/08-v0.2-closeout.md`。
|
||||
- ~~`agent-conversation.tsx` 仍链到 `/console/tasks/:下载任务ID`~~:W8-A 已改为 `/console/downloads/:id`。
|
||||
- `components/agent/quick-goals.ts` 里的"待识别池"文案(W7-B 范围)。
|
||||
- 原站视图仍是占位。
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# v0.2 收尾修复(W8-A)
|
||||
|
||||
2026-09-28。基线 `c67f6a9`(Pi 上游、子会话、定时任务看板、IA-1、IA-2 已合入)。与 W8-B(全站文案第二轮)并行,本轮只改逻辑。
|
||||
|
||||
## 本轮修了什么
|
||||
|
||||
| # | 事项 | 落地 |
|
||||
| --- | --- | --- |
|
||||
| 1 | 模块自建计时器并入定时任务注册表 | `pi.token_refresh`(上游登录刷新,维护组,10 分钟,入队 `refreshPiTokens`,幂等键按时间槽)与 `auth.cleanup`(登录会话清理,维护组,1 小时)改为 `registerScheduledJob`;模块里不再有 `setInterval`。测试 `test/schedules/module-jobs.test.ts`。`docs/runbook/schedules.md` 已登记表补两行 |
|
||||
| 2 | 没有候选的待识别资源进待处理 | 迁移 `0030` 给 `decision.kind` 加 `identity_unresolved`(界面"待识别")。`resolveObservation` 在 no_match(含无法解析、候选为 0)和查询失败且自动复查已停时开事项,去重键与歧义类同为 `identity:<资源ID>`(类别随证据切换)。选项:手动指定 TMDB ID(`requires=tmdb`)、选本地作品(`requires=mediaEntityId`)、忽略;歧义类事项也追加前两项。`POST /decisions/{id}/resolve` 新增 `identity {tmdb:{type,id} \| mediaEntityId}`,走 `assignReleaseIdentity` 人工指定加锁。待处理页选项弹窗按 `requires` 出 TMDB 类型 + ID 输入或本地作品检索(复用 `EntityPicker`),未填完整时确认按钮禁用。身份页只读列表"已进待处理"按类别跳 `?kind=identity_ambiguous / identity_unresolved` |
|
||||
| 3 | 旧 `settings.pi.provider / baseUrl / model / thinkingLevel / apiKeySecretRef` | `DEPRECATED_SETTINGS_FIELDS`:schema 保留(兼容已存 JSON),`PATCH /settings` 丢弃,设置分区不再归属;`runAgent` 只走上游,没有默认上游直接失败「未配置 Agent 上游」;`pi.apiKey` 写 secret 的分支删除;Agent 页演示开关改看默认上游 provider 是否 fake;上游列表空态不再提旧设置。e2e 夹具改为直接建一条 fake 上游设默认 |
|
||||
| 4 | `agent.await` 不占 worker 槽 | runAgent 驱动的会话里,子会话未落定时 `agent.await` 记下等待条件并关闭会话(该工具调用留在 JSONL 里未完成);`drive` 返回 `suspended`,runAgent 用 `waitForFact("subagent-await-N")` 每 2 秒查一次子会话落定 / 超时 / 父会话取消,再以 `resumedAwaits` 重开会话 resume。`agent.await` 是只读能力(replay=safe),恢复时重放一次直接拿到结果,模型不多一轮。单会话最多挂起 100 次。e11 断言 `agent.await` 的结束事件带 `recovery:true`、`run_started` 为 `[false, true]`。`agent.spawn {await:true}` 仍在进程内等(见遗留) |
|
||||
| 5 | Agent 汇报里的下载链接 | `agent-conversation.tsx` 改链 `/console/downloads/:id`,不再经 `/tasks/:id` 404 探测 |
|
||||
| 6 | 设置旧链接 | IA-2 已由 `settings.tsx` 的 `clientLoader` 把 `?tab=` 转成 `#分区[/节]`;本轮把 `settingsPath()` 改为直接生成 `#分区[/节]`,冒烟的重定向表补 4 条 `?tab=`,静态路由补 8 个分区 hash |
|
||||
| 7 | 前端冒烟 | 独立库 + `PORT=4392 WEB_ROOT=apps/web/build/client` 单端口跑 `deno task test:web:smoke`:47/47 通过(跳过 4 条详情页,库里无数据)。冒烟脚本对只差 hash 的地址先跳 `about:blank` 再整页加载 |
|
||||
|
||||
另:`executeResolution` 对 `identity_unresolved` 同样跳过(由 sources-identity 在处理端点里直接执行)。
|
||||
|
||||
## 仍遗留
|
||||
|
||||
- **pi 41 个 provider 未联网实测**:只有 fake 与 OpenAI 兼容本地端点有自动化覆盖;8 种订阅登录只测了 fake OAuth 状态机。Codex `_randomBytes` 在 Deno 下的行为仍待 spike(`docs/design/pi-providers.md`)。
|
||||
- `agent.spawn {await:true}` 仍在进程内轮询等待,占 worker 槽到超时;要挂起需要同样的关闭会话 + 重放,但 spawn 是 replay=never,重放会得到"结果未知",需另行设计。
|
||||
- 挂起期间父会话状态保持 `running`(避免被祖先会话的 `agent.await` 当成已落定);运行时长预算按每段 drive 计,不含挂起等待。
|
||||
- 待识别事项:查询失败但仍在自动复查期内的资源不开事项(避免 TMDB 抖动刷屏),复查耗尽后才开。
|
||||
- 身份页"待识别"详情抽屉的提示句仍写"选择候选或忽略",未识别类(无候选)读起来不准确,留给文案轮。
|
||||
- 旧设置字段只是弃用未删除;真正删除需要一次迁移清理 `settings.pi` 里的旧键。
|
||||
- 原站视图仍是占位(IA-1 遗留)。
|
||||
Reference in new issue
Block a user