43 lines
3.0 KiB
Markdown
43 lines
3.0 KiB
Markdown
# 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。本单只修合同路径,不需要浏览器验收。
|