fix(settings): tighten daily-review settings UX (button align, time input width, model labels) - #236
Merged
Merged
Conversation
- 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
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Address 3 visual / interaction issues WAWQAQ reported on the Daily Review settings page:
.settingsFeatureStatusHeroActionsflex container that pushes it to the right edge of the hero card, matching the rest of the settings page right-side convention.<Input type="time">was rendering full-width so it read as a plain text field rather than an adjustable time-picker. Cap it atmax-width: 140pxandjustify-self: endto look like the other compact value-side controls.connection.name · modelprefix in every option; show just the model id (and对话默认(model)for the default pseudo-row).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:
resolveDailyReviewModelContextalready routes throughgetAIModelfor any enabled connection, so loosening the filter on the picker side is safe.Test plan
对话默认(gpt-5.5)for the default row and justgpt-5.5(etc.) for explicit options.