feat(web): make session header metadata configurable - #1267
Conversation
There was a problem hiding this comment.
Findings
- [Minor] Mobile metadata priority does not match the configured/header order —
fastModeis ordered after timestamps and worktree, so mobile can show a later field instead of Fast when both are enabled and available. Evidence:web/src/lib/sessionHeaderMobileMetadata.ts:15.
Suggested fix:const MOBILE_SECONDARY_PRIORITY = [ 'machine', 'lastActive', 'model', 'reasoning', 'fastMode', 'createdAt', 'updatedAt', 'worktree', ] as const
Summary
Review mode: initial
One Minor ordering issue found. No Blocker or Major findings. Residual risk: responsive rendering preferences are only partially covered; there is no component test exercising competing mobile fields.
Testing
- GitHub
testworkflow: passed. - Suggested: assert
fastModewins overcreatedAt,updatedAt, andworktreein the mobile selector test.
HAPI Bot
| 'worktree', | ||
| 'fastMode', | ||
| ] | ||
|
|
There was a problem hiding this comment.
[MINOR] Keep mobile priority consistent with the configured/header order
fastMode is last here, while both the settings list and desktop header place Fast before created time, updated time, and worktree (web/src/routes/settings/display.tsx:146-149, web/src/components/SessionHeader.tsx:353-361). When two of these fields are enabled and available, mobile therefore selects the later field instead of Fast, contrary to the upstream-first ordering.
Suggested fix:
const MOBILE_SECONDARY_PRIORITY: ReadonlyArray<SessionHeaderSecondaryMetadataKey> = [
'machine',
'lastActive',
'model',
'reasoning',
'fastMode',
'createdAt',
'updatedAt',
'worktree',
]|
Fixed in d5a174a. Mobile secondary priority now matches the configured/desktop header order, including Fast before timestamps and worktree. Added competing-field coverage to the selector test. |
There was a problem hiding this comment.
Findings
- None.
Summary
Review mode: follow-up after new commits
No Blocker, Major, Minor, or Nit findings in the latest full diff. The prior mobile metadata priority finding is resolved at web/src/lib/sessionHeaderMobileMetadata.ts:11, with regression coverage at web/src/lib/sessionHeaderMobileMetadata.test.ts:10. Residual risk: preference persistence and selector/formatter logic have unit coverage, but there is no component test toggling stored preferences and verifying the desktop/mobile header plus composer status bar end to end.
Testing
- Not run (automation; PR code execution is prohibited by the review instructions).
- GitHub
testcheck was pending at review time.
HAPI Bot
There was a problem hiding this comment.
Findings
- None.
Summary
Review mode: follow-up after new commits
No Blocker, Major, Minor, or Nit findings in the latest full diff. The prior mobile metadata priority finding remains resolved at web/src/lib/sessionHeaderMobileMetadata.ts:11, with competing-field coverage at web/src/lib/sessionHeaderMobileMetadata.test.ts:10. Residual risk: preference parsing, mobile selection, and timestamp formatting have unit coverage, but there is still no component test that changes stored preferences and verifies the desktop/mobile session header plus composer reasoning label end to end.
Testing
- Not run (automation; PR code execution is prohibited by the review instructions).
- GitHub
testandpr-reviewchecks were pending at review time.
HAPI Bot
PR title
feat(web): make session header metadata configurable
PR description
Summary
Testing
bun typecheckbun run test:webAI disclosure
AI-assisted implementation using OpenAI Codex (GPT-5.6-Sol). The changes were manually reviewed and tested.