Skip to content

fix(settings): tighten daily-review settings UX (button align, time input width, model labels) - #236

Merged
jackwener merged 1 commit into
mainfrom
yuejing/daily-review-3-issues
Jun 25, 2026
Merged

fix(settings): tighten daily-review settings UX (button align, time input width, model labels)#236
jackwener merged 1 commit into
mainfrom
yuejing/daily-review-3-issues

Conversation

@jackwener

Copy link
Copy Markdown
Member

Summary

Address 3 visual / interaction issues WAWQAQ reported on the Daily Review settings page:

  1. Button alignment. 「打开每日回顾」 was glued to the paragraph margin (left-aligned). Wrap it in a .settingsFeatureStatusHeroActions flex container that pushes it to the right edge of the hero card, matching the rest of the settings page right-side convention.
  2. Time input width. The <Input type="time"> was rendering full-width so it read as a plain text field rather than an adjustable time-picker. Cap it at max-width: 140px and justify-self: end to look like the other compact value-side controls.
  3. Model select labels + 「无法选择」.
    • Drop the verbose connection.name · model prefix in every option; show just the model id (and 对话默认(model) for the default pseudo-row).
    • Drop the backendKind !== 'ai-sdk' and OAuth filter so the user's default OAuth connection (e.g. Codex OAuth) shows up as an explicit option. Previously a Codex-OAuth-only setup left the dropdown with only the default pseudo-row — visually unselectable.

No backend changes: resolveDailyReviewModelContext already routes through getAIModel for any enabled connection, so loosening the filter on the picker side is safe.

Test plan

  • Open Settings → 每日回顾 with Codex OAuth as default. Confirm 「打开每日回顾」 sits on the right edge of the hero card.
  • Confirm 执行时间 renders as a narrow time-picker (≤140px), not a full-width text field, and the native time picker still opens.
  • Confirm 分析模型 dropdown shows 对话默认(gpt-5.5) for the default row and just gpt-5.5 (etc.) for explicit options.
  • Confirm explicit model selection persists and that picking a Codex OAuth model runs Daily Review successfully.

- Right-align the 「打开每日回顾」 CTA inside the hero card with a flex
  wrapper instead of leaving it stuck to the paragraph margin.
- Cap the 执行时间 input at 140px and pin it to the row's right edge so
  it reads as an adjustable time-picker control, not a full-bleed text
  field.
- Shorten 分析模型 option labels to just the model id (and the default
  pseudo-row to 「对话默认(model)」), dropping the verbose
  「connection.name · email · model」 prefix that overflowed the trigger.
- Drop the OAuth/backendKind allow-list in buildDailyReviewModelOptions
  so the default OAuth connection (e.g. Codex OAuth) actually shows up
  as an explicit option — previously the dropdown only had the default
  pseudo-row, which read as 「无法选择」.
@jackwener
jackwener merged commit 9b67fff into main Jun 25, 2026
@jackwener
jackwener deleted the yuejing/daily-review-3-issues branch June 25, 2026 04:12
jackwener added a commit that referenced this pull request Jun 25, 2026
Per @kenji audit `26a221be` against #237 main `4e0247f6`:

**#1 — bottom 「想先看看效果?」 hero buttons left-aligned.**
PR #236 right-aligned the top 「打开每日回顾」 button via
`.settingsFeatureStatusHeroActions` but the bottom 「生成每日回顾 /
生成深度分析」 row still used inline `style={{ display: 'flex', gap:
8, marginTop: 8 }}`, so it stayed glued to the paragraph margin.
Route the bottom row through the same class. Add `gap: 8px` to the
class so multi-button clusters keep proper spacing.

**#2 — 执行时间 disabled when the master switch is off.**
The disable condition was `formDisabled || savingKey === 'executeTime'
|| !(effectiveConfig?.enabled ?? false)`. That last clause blocked the
common UX of "pick a time first, then turn it on". Drop it — the time
value is harmless to edit while disabled (it doesn't fire until the
switch flips), and the disabled state was misread as "broken UI".

**#3 — 分析模型 default-row label still verbose.**
WAWQAQ's directive: "所有模型选择只用模型名". PR #236 went from
`使用对话默认模型(Codex OAuth · email · gpt-5.5)` to
`对话默认(gpt-5.5)` — better, but the model id parenthetical still
mixes "selectable model" with "follow chat default". Per @kenji's
"don't conflate the two semantics", the default row becomes plain
`跟随对话默认`; the explicit options carry the model id.

**#4 — duplicate model ids across connections looked unselectable.**
When two enabled connections both expose `gpt-5.5`, the flat
`model`-only labels read as two identical entries. Detect the collision
at build time and append `· ${connection.name}` ONLY to the colliding
entries; unique model ids stay terse per WAWQAQ's directive.

Deferred (with @kenji concurrence):
- **#5** (`data-control-width` semantic API replacing CSS-selector width
  patches) — pure refactor, no end-result change. WAWQAQ explicitly
  said 「只看最后的结果」.
- **#6** (collapse Daily Review hero card pile into a single grouped
  settings surface) — bigger visual restructure judgment call; needs
  WAWQAQ sign-off before swinging at the whole page layout.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant