Commit Graph
93 Commits
Author SHA1 Message Date
Hermes 304267199e fix(build): use zod v3 two-arg form for z.record across all shared schemas
Same fix as the agent schema commit — zod 3.25 (resolved by ^3.25.0)
requires z.record() to take both key and value schemas. The single-arg
form is v4 syntax.

Fixed 15 remaining call sites across canvas, project, report, common,
webhook, habit, task, note, and milestone schemas. Pure type-only fix —
runtime behavior identical.
2026-07-30 23:59:11 +00:00
Hermes f7e0915044 fix(build): use zod v3 two-arg form for z.record in agent schema
zod 3.25 (the version resolved by ^3.25.0) requires z.record() to take
both a key and a value schema. The single-arg form z.record(z.unknown())
is zod v4 syntax, which trips next build's typecheck.

Four call sites in packages/shared/src/schemas/agent.ts were written in
v4 form (lines 39, 41, 73, 74). This is a pure type-only fix — runtime
behavior is identical.
2026-07-30 23:56:38 +00:00
Hermes c3bce0b9e3 fix(p0): resolve active domain automatically when onboarding skipped
- New resolveActiveDomain() helper in apps/web/lib/auth.ts: returns the
  user's first existing domain (ordered by sort_order then created_at),
  or auto-creates a default 'Personal' domain if they have none.
- 7 affected API routes (agents, canvases, domains, habits, projects,
  search, tasks) now fall back to resolveActiveDomain when the request
  omits a domain param. This eliminates the UNDEFINED_VALUE on domain_id
  and 22P02 invalid uuid errors that broke 6+ UI flows.
- New POST /api/quick-capture route: switches on type=task|habit|note|project
  to create the right entity, after resolving the active domain. This is
  the API the dashboard quick-capture widget calls.
- packages/db/src/schema.ts: added ownerId: uuid('owner_id') to the
  domains table so each user owns their domains.
- drizzle/0004_add_owner_id_to_domains.sql: matching migration with
  column add + index.
- apps/web/__tests__/lib/auth.test.ts: unit tests for both branches of
  resolveActiveDomain (returns existing / creates Personal).
- apps/web/app/(dashboard)/canvas/page.tsx: removed hardcoded
  domain: 'personal' from the quick-create payload so server-side
  resolution can do its job.

This unblocks all of: /tasks, /habits, /projects, /search, /settings/agents,
/settings/domains, /canvas, and dashboard quick-capture.
2026-07-30 23:51:29 +00:00
bot-hermes 0ff005a47a fix: add missing timer state and handlers (timerRunning, setTimerStartedAt, handleStartTimer, handleStopTimer, formatDuration, elapsedSeconds tick effect) 2026-07-29 20:54:14 +00:00
bot-hermes 56e923deb2 fix: add missing Play and Square imports to task-detail-panel 2026-07-29 20:46:48 +00:00
bot-hermes 8de6849474 merge: fix/ux-leaf-f-polish into integration/ux-28-gaps (resolve OnboardingFlow+DispatchPanel in layout) 2026-07-29 20:34:52 +00:00
bot-hermes 4b0cfb2611 merge: fix/ux-leaf-e-crosscut into integration/ux-28-gaps (resolve conflicts on tasks-kanban-view, tasks-list-view, task-detail-panel) 2026-07-29 20:34:27 +00:00
bot-hermes c448a747a7 merge: fix/ux-leaf-d-new-pages into integration/ux-28-gaps 2026-07-29 20:31:22 +00:00
bot-hermes 6f2acf77b7 merge: fix/ux-leaf-c-settings into integration/ux-28-gaps 2026-07-29 20:31:22 +00:00
bot-hermes 7e2fe93d64 merge: fix/ux-leaf-b-edit-dialogs into integration/ux-28-gaps 2026-07-29 20:31:22 +00:00
bot-hermes bc15b31e8b merge: fix/ux-leaf-a-tasks into integration/ux-28-gaps 2026-07-29 20:31:22 +00:00
bot-hermes 281a20c502 fix: correct agents page JSX structure after adding dispatch panel 2026-07-29 20:28:19 +00:00
bot-hermes efbab9517c 27: onboarding flow - make onComplete optional for server component layout 2026-07-29 20:23:12 +00:00
bot-hermes 9b4c0b77c1 26: domain-specific dashboard - add Suspense wrapper for useSearchParams 2026-07-29 20:23:12 +00:00
bot-hermes 37e8b724bd fix: resolve TypeScript errors in timer, pagination, undo, and notification components 2026-07-29 19:47:44 +00:00
bot-hermes 888bd6393e feat(sections): refactor section dialog for edit/delete, add dropdown menu in project detail 2026-07-29 19:39:32 +00:00
bot-hermes f078360340 feat(webhooks): improve test button toast with status code + response preview 2026-07-29 19:27:30 +00:00
bot-hermes 9bc571eb69 feat: add notification bell with activity feed and notification preferences
- New NotificationBell component in topbar showing recent activity
- Popover with last 10 activity items from /api/domains/[id]/activity
- Notification preferences section in Settings > Shortcuts tab
- Preferences persisted to localStorage (pe_notification_prefs)
- Toggle switches for task_created, task_completed, habit_logged, comment_added
2026-07-29 19:27:24 +00:00
bot-hermes 449eade4b6 feat: add AI agent dispatch panel with floating button and new task button on agents page 2026-07-29 19:27:17 +00:00
bot-hermes c704916059 feat(settings): add Custom Fields tab with localStorage schema + task detail panel rendering 2026-07-29 19:26:44 +00:00
bot-hermes e0020eac7d 26: domain-specific dashboard - respect ?domain= query param 2026-07-29 19:26:27 +00:00
bot-hermes 39e182418d 27: onboarding flow - first-run sheet with 3 steps (domain, task, habit) 2026-07-29 19:26:23 +00:00
bot-hermes cd5d7a96ff 28: task templates - localStorage templates (Bug fix, Feature work, Quick meeting) in create dialog 2026-07-29 19:26:17 +00:00
bot-hermes 0835961bc9 23: note templates - localStorage templates (Meeting notes, Daily journal, Brain dump) 2026-07-29 19:26:13 +00:00
bot-hermes dd431a35d6 22: project timeline / Gantt view - CSS grid horizontal Gantt with sections as rows 2026-07-29 19:26:10 +00:00
bot-hermes f1b38ac497 21: habit analytics - recharts line/bar chart for 30-day completions and top streaks 2026-07-29 19:26:06 +00:00
bot-hermes 7ced6f2bf2 feat: add undo toasts for task and note deletions
- Capture deleted item before DELETE call
- Show sonner toast with Undo action button
- On Undo, POST to recreate the item with original data
- Applied to tasks-list-view, task-detail-panel, and notes page
2026-07-29 19:26:05 +00:00
bot-hermes 1d8f548f4b 19: mobile responsive - reduce main content padding on mobile (p-4 md:p-6) 2026-07-29 19:25:50 +00:00
bot-hermes d951348372 feat: add canvas freeform board page with drag-and-drop cards and sidebar link 2026-07-29 19:25:37 +00:00
bot-hermes fb68009c23 feat: add pagination with Load More button to task list view
- Add offset/limit pagination with 50 items per page
- Load More button appends tasks to existing list
- Show "Showing X of Y" count in the filter bar area
2026-07-29 19:25:17 +00:00
bot-hermes b314bda934 feat(tasks): add recurring task support with rrule in create dialog, detail panel, and complete route 2026-07-29 19:25:15 +00:00
bot-hermes 7ae8efe096 feat(kanban): dependency visual on cards with Link2 icon and tooltip 2026-07-29 19:24:23 +00:00
bot-hermes 1cb932f0f6 feat(tasks): filter/sort controls and bulk operations in list view 2026-07-29 19:24:18 +00:00
bot-hermes 6cbb3bb544 feat: add daily notes page with date navigation and sidebar link 2026-07-29 19:23:56 +00:00
bot-hermes 77a45715c0 feat(projects): add project edit dialog with dropdown menu and archive confirmation 2026-07-29 19:23:45 +00:00
bot-hermes bfada34ead feat: add time tracking UI with timer and clock icon on kanban cards
- Add time tracking section in task detail panel with progress bar
- Start/Stop timer with elapsed time display
- On stop, PATCH trackedMinutes with delta
- Add clock icon on kanban cards when estimatedMinutes is set
- Note: timer is per-tab (no persistence across refresh)
2026-07-29 19:22:36 +00:00
bot-hermes a6ac7c3fb6 feat(habits): add habit edit dialog with dropdown menu and delete confirmation 2026-07-29 19:22:29 +00:00
bot-hermes 1a0704e0f2 feat(settings): add Tags management tab with create/edit/delete UI 2026-07-29 19:22:27 +00:00
bot-hermes 28d01f3839 feat(kanban): inline task creation in columns 2026-07-29 19:21:41 +00:00
bot-hermes 3708505b00 fix: remove completionMode/color/icon from habits route (not in schema) 2026-07-29 18:50:32 +00:00
bot-hermes f5121f3b8d fix: rewrite /api/tasks, /api/habits, /api/projects to use Drizzle ORM instead of PocketBase stub 2026-07-29 18:48:10 +00:00
bot-hermes 0de8f3837f fix: restore domainId prop to TasksKanbanView and TasksListView 2026-07-29 15:26:02 +00:00
bot-hermes bc27e3e4bc fix: wrap tasks page in RealtimeProvider to prevent useRealtimeContext error 2026-07-29 15:23:54 +00:00
bot-hermes dbce018ce5 fix: use sql tagged template for pg_notify instead of db.execute 2026-07-29 13:07:03 +00:00
bot-hermes 83befd6a84 fix: activity.ts pg_notify syntax and graph-service.ts sections empty inArray 2026-07-29 13:03:55 +00:00
bot-hermes 4089d7464c fix: use whitelist sort columns in domains route to fix TypeScript error 2026-07-29 12:59:20 +00:00
bot-hermes f5463f21b0 fix: rewrite /api/domains route to use Drizzle ORM instead of PocketBase stub 2026-07-29 12:57:06 +00:00
bot-hermes 700d1456ac fix: remove .unref() from middleware setInterval (Edge Runtime incompatibility) 2026-07-29 12:47:39 +00:00
bot-hermes ed3d3ae8d1 fix: rename [id] to [domainId] in domains API route to resolve Next.js param conflict 2026-07-29 12:44:41 +00:00
bot-hermes 326af9fd48 fix: rename [id] to [projectId] in projects API route to resolve Next.js param conflict 2026-07-29 12:39:08 +00:00