fix(sessions): title rectification chats with the result time

This commit is contained in:
jesse-ux
2026-09-25 01:56:57 +08:00
parent 514951d708
commit 88fe67df9b
17 changed files with 592 additions and 118 deletions
+1 -1
View File
@@ -362,7 +362,7 @@ The birth-time rectification session is the consultation transcript plus a house
### Navigation item
- **Structure:** title is the session name. New dated titles are `生时校正 · M月D日` / `今日节奏 · M月D日` (category first). Subtitle is always `M月D日 HH:MM` in Asia/Shanghai from `updated_at` (last activity), plus ` · <chart name>` when the chart is not the account holder. Same-day duplicates are not uniquified with wall-clock `HH:MM`. Display, sort, grouping, and cursor all use `updated_at`.
- **Structure:** title is the session name. Rectification titles show the result: `生时校正 · HH:MM` when a time is confirmed (confirmed wins over accepted) or only accepted, `生时校正 · HH:MM–HH:MM` (en dash) when only `candidate_range` is a clock pair, otherwise `生时校正`. Daily rhythm stays `今日节奏 · M月D日`. Subtitle is always `M月D日 HH:MM` in Asia/Shanghai from `updated_at` (last activity), plus ` · <chart name>` when the chart is not the account holder. Same-day duplicates are not uniquified with wall-clock `HH:MM`. Display, sort, grouping, and cursor all use `updated_at`.
- **States:** default, hover, current, focus, disabled.
- **Hierarchy:** section labels stay tertiary; session titles and primary actions use ink so history rows do not collapse into the same gray as “收藏对话 / 历史对话”. History groups use the overline token for “今天 / 昨天 / 最近 7 天 / 最近 30 天 / 更早”. When the chart is not the account holder, a secondary line shows the chart name under the title. A session title is named when it is created; opening a stored session must not rename it. `updatedAt` advances only on conversation activity, including rectification turns, choice, adopt, and stop. Opening, refresh, and metadata PATCH do not bump it. A `?c=` that is not on the loaded page is looked up with `GET /api/sessions/{id}` before anyone may say it was deleted. Locked by `frontend/tests/session-open-preserves-identity.test.ts` and `frontend/tests/session-lookup-unlisted.test.ts`.
- **Request behavior:** existing sessions remain selectable for reading while a request is active; creating or sending another request stays locked until the active request settles.