add lookback period and note strictness dropdowns to onboarding

Add two preference dropdowns to the Connected Accounts step:
- Lookback period (1 week / 1 month / 3 months) for Gmail and Fireflies sync
- Note strictness (Auto / High / Medium / Low) with inline descriptions

Replaces hardcoded LOOKBACK_DAYS in sync_gmail and sync_fireflies with
configurable value from ~/.rowboat/config/lookback.json. Adds IPC channels
for reading/writing both configs. SelectItem now supports a description
prop rendered only in the dropdown, not the trigger.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Arjun 2026-02-19 11:59:32 +05:30
parent b238089e2d
commit 0185433986
8 changed files with 233 additions and 8 deletions

View file

@ -388,6 +388,41 @@ const ipcSchemas = {
}),
},
// Shell integration channels
'config:getLookback': {
req: z.null(),
res: z.object({
days: z.union([z.literal(7), z.literal(30), z.literal(90)]),
}),
},
'config:setLookback': {
req: z.object({
days: z.union([z.literal(7), z.literal(30), z.literal(90)]),
}),
res: z.object({
success: z.literal(true),
}),
},
'config:getNoteStrictness': {
req: z.null(),
res: z.object({
strictness: z.enum(['low', 'medium', 'high']),
configured: z.boolean(),
}),
},
'config:setNoteStrictness': {
req: z.object({
strictness: z.enum(['low', 'medium', 'high']),
}),
res: z.object({
success: z.literal(true),
}),
},
'config:resetNoteStrictness': {
req: z.null(),
res: z.object({
success: z.literal(true),
}),
},
'shell:openPath': {
req: z.object({ path: z.string() }),
res: z.object({ error: z.string().optional() }),