Files
Jyotisha/docs/tasks/PROGRESS-birth-time-journey-page-path-20260918.md
T
jesse-ux 742ffbc6b6
Independent Staging Quality Gate / validate (push) Successful in 9m56s
Independent Staging Quality Gate / publish (push) Successful in 12m42s
docs(bugs): 回填 BUG-940 修复版本 0378d9e0
2026-09-18 10:39:43 +08:00

43 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PROGRESS · 出生时间旅程合同跟着外壳搬家(2026-09-18)
工作树:`.worktrees/birth-time-journey-page-path-20260918`
分支:`codex/birth-time-journey-page-path-20260918`
基线:`origin/staging` @ `5a1dcbd2`
合入提交:`39a0d7a9`(BUG-939)、`0378d9e0`(BUG-940)
## 任务状态
| 任务 | 状态 | 说明 |
| --- | --- | --- |
| 路径搬家 BUG-939 | 完成 | `_home_surface` 必读 `(app)/page.tsx`;hooks 仍可选。合入 `39a0d7a9`,门禁 run 2764 已过 Python |
| 路径锁 | 完成 | `PAGE.parts[-2:] == ("(app)", "page.tsx")`;旧路径不得存在 |
| 五条前端合同 BUG-940 | 完成 | run 2764 暴露:校正守卫后源码正则未搬家 |
| 记录 | 完成 | BUG-939 / BUG-940(均复发自 BUG-933) |
未改 `page.tsx`、产品行为、Skill、workflow。
## 断言三栏
| 位置 | 原值 | 新值 | 原因 |
| --- | --- | --- | --- |
| `_home_surface` 首页文件 | `frontend/src/app/page.tsx`,缺失则 `exists()` 跳过 | 必读 `frontend/src/app/(app)/page.tsx` | `e4e73f56` 已搬家;静默跳过把失败伪装成「找不到 `<BirthTimeRectification`」 |
| 新增 `test_home_surface_requires_the_app_route_group_page` | 无 | 锁定 `(app)/page.tsx` 存在、旧路径不存在 | 防复发:下一次再搬文件会 FileNotFound,而不是子串断言 |
| `chat-composer-queue` `inputDisabled` | `sessionMessagesLoading \|\| rectificationSurfaceOpen \|\| (!profileComplete && …)` | 中间加 `activeRectificationSession` | BUG-924/935 校正占位必须禁用普通输入框 |
| `chat-session-url` 删/归档写 URL | 函数体内 `writeSessionUrl(fallbackId \|\| null, "replace")` | `activateFallbackSession`,由它 `writeSessionUrl(null\|fallbackId, "replace")` | 回退优先非校正,落到校正走 selectSession |
| `consultation-entrypoint` `rectificationSurfaceOpen` | `activeRectificationSession && activeSession.id === …` | `Boolean(activeRectificationSession && activeSession && activeSession.id === …)` | 无活跃会话时不能读 `.id` |
| `consultation-entrypoint` 校正类型 | `activeSession?.sessionType === "birth_time_rectification"` | `composerLocksAsRectification` + 守卫里的 `session?.sessionType` | 类型判断收到守卫 |
| `consultation-recovery` 清 pending | `if (!storedPending && sessionStorage.getItem(…)) { removeItem }` | `dropRectificationStoredPending` 后 `if (!storedPending) removeItem` | 校正 pending 不得进普通咨询恢复 |
## 测试
| 项 | 结果 |
| --- | --- |
| `pytest tests/test_birth_time_journey_contract.py tests/test_session_management_entrypoints.py tests/test_supabase_user_data_contract.py tests/test_daily_and_rectification_entrypoints.py` | **25 passed** |
| `tsx --test` 上述四份前端合同 | **58 passed / 0 failed**(含门禁原先 5 红) |
| 全量 `npm test` / tsc / lint / next build | 本机 worktree 无独立 node_modules,以门禁为准 |
| 门禁 run 2764 | Python 已过;`npm test` 5 红即本轮这五条 |
## 环境缺口
无登录态、无 Chrome、无 Docker。本单只修合同路径,不需要浏览器验收。