Note
Reviews paused
It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.
- Last reviewed commit: b184cf45dd0e881d1fcb1a1c4456fa0aac14a53c
- Latest commit, not reviewed: 2a8b5287bd43e4b79d656661d385bbc626865b73
Use the following commands to manage reviews:
@coderabbitai resumeto resume automatic reviews.@coderabbitai reviewto trigger a single review.
Use the checkboxes below for quick actions:
- ▶️ Resume reviews
- 🔍 Trigger review
No actionable comments were generated in the recent review. 🎉
ℹ️ Recent review info
⚙️ Run configuration
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: 66ee628
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
2d5f7def-4f52-429c-899d-1982fdd7911e
📥 Commits
Reviewing files that changed from the base of the PR and between deabd596fd57b997c2faacafec73ee8ad212454e and b184cf45dd0e881d1fcb1a1c4456fa0aac14a53c.
📒 Files selected for processing: 3
apps/web/src/components/settings/SettingsPanels.tsxdocs/user/thread-sidebar.mdpackages/contracts/src/settings.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
📝 Walkthrough
The change adds five configurable snooze presets to shared settings, resolves their wake times, and adds preset editing and use on web and mobile. It also moves the auto-settle controls into a separate settings section.
Changes: Configurable snooze presets
Layer / File(s) Summary Preference contract and preset resolution
packages/contracts/src/settings.ts,packages/contracts/src/settings.test.ts,packages/client-runtime/src/state/threadSettled.ts,packages/client-runtime/src/state/threadSnoozed.test.tsSettings schemas define five presets and their defaults. The resolver produces configured preset IDs, labels, and wake times. Tests cover validation, weekday selection, expired slots, and daylight-saving transitions. Web settings and preset use
apps/web/src/components/settings/SnoozeSettings.tsx,apps/web/src/components/settings/SettingsPanels.tsx,apps/web/src/components/settings/settingsSearch.ts,apps/web/src/components/Sidebar.snooze.ts,apps/web/src/components/settings/SnoozeSettings.browser.test.tsx,docs/user/thread-sidebar.mdThe settings panel displays a five-slot editor and includes snooze preferences in restore behavior. The sidebar uses configured presets. The panel also groups auto-settle controls in a separate section. Search, browser tests, and documentation cover the settings and preset behavior. Mobile preferences and settings
apps/mobile/src/persistence/mobile-preferences.ts,apps/mobile/src/features/settings/SnoozeSettingsSection.tsx,apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsxMobile preferences retain snooze settings that pass schema validation. The settings screen edits the five slots and can restore the unset preference state. Mobile thread-list integration
apps/mobile/src/features/threads/threadListV2.ts,apps/mobile/src/features/threads/thread-list-v2-items.tsx,apps/mobile/src/features/threads/threadListV2.test.tsThe mobile thread list passes current preferences to preset generation and menu selection. A test covers selecting a configured 168-hour preset. Priority: ➖ Normal
Estimated code review effort: 3 (Moderate) | ~25 minutes
Change: Feature
Sequence Diagram(s)
mermaid1 sequenceDiagram 2 participant SnoozeSettings 3 participant ClientSettings 4 participant Sidebar 5 participant resolveSnoozePresets 6 SnoozeSettings->>ClientSettings: Save snooze preferences 7 Sidebar->>ClientSettings: Read snooze preferences 8 Sidebar->>resolveSnoozePresets: Resolve presets using preferences Possibly related PRs
- pingdotgg/t3code#24051: Both PRs change auto-settle controls in
SettingsPanels.tsx; the other PR extractsAutoSettleDaysInputand changes its save callback contract.
Suggested reviewers:
tris203- pingdotgg/t3code#24051: Both PRs change auto-settle controls in
Merge Risk: ⚪ Minimal · up to b184c
Snooze hour edits respect the allowed range, and auto-settle controls have their own section. No actionable merge-blocking issue remains after normal checks.
Pre-merge checks: Passed 4
Check name Status Explanation Title check Passed The title "feat(web): customize snooze presets" matches the main change: five configurable snooze presets for relative hours or absolute day/time, with settings, shared resolver, and mobile integratio… Description check Passed The description follows the template sections (Problem, Change, Scope and approval, Verification). The Problem section states the gap in fixed snooze durations. The Change section lists the five confi… Linked Issues check Passed Check skipped because no linked issues were found for this pull request. Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request. Full details: Title check
Explanation
The title "feat(web): customize snooze presets" matches the main change: five configurable snooze presets for relative hours or absolute day/time, with settings, shared resolver, and mobile integration. It follows the conventional commit format from the repository template. The title names only the web scope, but the changeset also covers mobile and shared packages. The title is still a clear, specific summary of the primary change.
Full details: Description check
Explanation
The description follows the template sections (Problem, Change, Scope and approval, Verification). The Problem section states the gap in fixed snooze durations. The Change section lists the five configurable slots, ordering, labels, defaults, and the auto-settle header move. The Scope section cites the configuration-option exception in CONTRIBUTING.md and explains why the change stays within the existing snooze capability. The Verification section lists commands, Chromium regression tests, manual checks, and states what was not run (native iOS/Android and packaged Electron). The description includes before/after screenshots as the template requires for UI changes. The description does not link a triaged issue or maintainer approval comment. The Scope section relies on the configuration exception instead of a prior approval, so the reviewer must confirm that the exception applies. The template also asks for the model and harness used, and the description includes one. The description is mostly complete, so it passes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
- Create a new PR
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.