Commit Graph
30 Commits
Author SHA1 Message Date
bot-hermes a3e4d3c868 feat: add threaded comments, activity feeds, and task dependencies 2026-08-10 21:59:10 +00:00
bot-hermes 1059512888 feat: add server error logging and tighten workspace isolation 2026-08-10 12:41:46 +00:00
bot-hermes a60b75f075 feat: full plan execution - CI/CD, critical fixes, UX polish, secondary/advanced features, E2E + docs
Phase 0 (CI/CD): fix root typecheck to cover api+worker+web; reconcile migration
story into idempotent db:migrate (db:sync + db:triggers); add Gitea Actions
quality/deploy/smoke workflow; rewrite README/AGENTS/DEPLOY docs; add
requireWorkspaceAccess + recordActivityForEntity conventions.

Phase 1 (critical fixes): calendar delete + drag/resize DnD; canvas card CRUD +
bulk save + debounced autosave; logout route; graph edge workspaceId derivation;
real analytics endpoints (drop Math.random); task board droppable columns +
reorder persistence; Tiptap notes editor with sanitized HTML rendering; remove
insecure passkey auth; domain/owner scoping (IDOR) on all by-ID routes + search/
export/realtime scoping; command palette routing + agent mention fetch; agent
activity SSE handler; graph fly-to with tracked positions.

Phase 2 (UX polish): login on design system; Sonner toasts app-wide; shared
Loading/Empty/Error state components; working density/sidebarPos/reduce-motion
settings; Inter typography; consolidated status-colors lib; unified detail
routes; dashboard sort/realtime/responsive fixes; mobile responsive; a11y
(radiogroups, sanitized snippets, badge labels).

Phase 3 (features): daily notes timezone fix + delete + autosave + mood/energy
create; active-domain store + topbar picker; graph domain picker + navigable
entity links; tag assign/remove UI + server-side tag filter; real CSV export +
import validation; custom fields on tasks.

Phase 4 (advanced): migrate job worker into apps/worker (webhook delivery with
HMAC, recurring spawn, ai_dispatch disabled); webhook queue helper + entity
event enqueuing + test endpoint fix; recurring scheduledJobs pipeline; agents
CRUD + permission editing + activity filters; real notifications feed; MCP
polish (validation, error codes, domain scoping, dead sql leftover).

Phase 5 (E2E + docs): rewrite Playwright suite for the Vite SPA (15 specs, new
auth helpers, chromium-only in CI); add ephemeral-Postgres e2e CI job; rewrite
docs/API.md for the real Hono API.
2026-08-10 08:53:18 +00:00
Hermes 2b4b6f4165 fix: stabilize NoteEditor/NoteEditorPane memoization with useCallback
Root cause: inline arrow functions for onDelete and onSave props created new references every render, breaking React.memo and causing editor re-renders that steal focus.
2026-08-01 23:02:46 +00:00
Hermes ac92284edd fix: remove queryClient.invalidateQueries from title save to prevent parent re-render focus stealing 2026-08-01 13:27:08 +00:00
Hermes aa5da5d770 fix: restore selectedNoteId as state for re-render 2026-08-01 13:23:35 +00:00
Hermes 58e563f21d fix: remove selectedNoteId state entirely to prevent parent re-render focus stealing 2026-08-01 13:22:23 +00:00
Hermes a673d77d58 fix: prevent search input from receiving focus via onMouseDown preventDefault 2026-08-01 13:21:14 +00:00
Hermes dfaf0ff659 fix: add onMouseDown stopPropagation to title input 2026-08-01 13:19:30 +00:00
Hermes 2cf6638d9e fix: isolate note editor in memoized pane to prevent focus stealing on parent re-render 2026-08-01 13:18:08 +00:00
Hermes d9000c9f76 fix: restore selectedNoteId as state for re-render, keep ref for content 2026-08-01 13:11:31 +00:00
Hermes 7776668269 fix: remove all state changes on note selection to prevent focus stealing 2026-08-01 13:09:35 +00:00
Hermes 4a83ee88ba fix: add autoFocus to title input to reclaim focus after re-render 2026-08-01 13:09:25 +00:00
Hermes 82db10a10d fix: add tabIndex=-1 to search input to prevent auto-focus stealing from title input 2026-08-01 13:07:45 +00:00
Hermes d0d6002126 fix: use ref-based selectedNote to prevent re-render focus stealing 2026-08-01 13:07:20 +00:00
Hermes eeff700875 fix: TipTap focus leak - use uncontrolled NoteTitleInput with ref to prevent focus stealing on parent re-render 2026-08-01 13:05:31 +00:00
Hermes 3f1a1982ca fix: use uncontrolled inputs for note title and editor to prevent focus leak to search field 2026-08-01 13:04:24 +00:00
Hermes 420ebfe24a fix: isolate note title in memoized component, prevent search input stealing focus 2026-08-01 13:02:55 +00:00
Hermes a65b828c78 fix: isolate note title in memoized component to prevent focus leak to search field 2026-08-01 13:00:22 +00:00
Hermes 21efa311da fix: prevent NoteEditor re-render stealing focus - use key remount, onBlur save, stable ref 2026-08-01 12:58:46 +00:00
Hermes 8917f3ad19 fix: add missing quotes around className in NoteTitleInput 2026-08-01 12:58:34 +00:00
Hermes ec0fb10b3e fix: add missing quotes around className in NoteTitleInput 2026-08-01 12:57:53 +00:00
Hermes c35ea2b175 fix: isolate note title input in memoized component to prevent focus leak to search field 2026-08-01 12:57:32 +00:00
Hermes ee57195681 fix: stabilize handleContentChange callback via ref to prevent NoteEditor re-render stealing focus 2026-08-01 12:53:19 +00:00
Hermes 445f5e1257 fix: use uncontrolled input for note title to prevent focus leak to search field 2026-08-01 12:51:50 +00:00
Hermes ff2611ce18 fix: save note title on blur instead of every keystroke to prevent focus leak 2026-08-01 12:50:16 +00:00
Hermes 67214575fb fix: debounce note title save to prevent focus leak to search field 2026-08-01 12:49:27 +00:00
Hermes 3a0df07296 fix: R3 bugs - TipTap focus leak, Quick Capture palette, Calendar day view 2026-08-01 12:26:43 +00:00
Hermes f617c39937 T6/Phase 4: 7 core entity pages (Tasks, Habits, Projects, Notes, Calendar, Graph, Search) 2026-08-01 02:10:18 +00:00
Hermes e86a7c0672 T5/Phase 3: SPA shell + navigation
- TanStack Router with type-safe file-based routes
- Sidebar: collapsible, workspace switcher, 12 nav links, user menu
- Topbar: search, quick-add, notifications, user avatar
- cmdk command palette: nav + create + search + @mentions
- Keyboard shortcuts: Cmd+K palette, g+t/h/p/n/c/g/s navigation, ? help
- Theme: dark default, accent picker (slate/blue/green/purple/orange), persisted to localStorage
- Auth: login -> /, logout -> /login, 401 redirect
- Placeholder pages for all 13 nav routes (real in T6/T7)
- Typed API client with useApiQuery/useApiMutation hooks
2026-08-01 02:00:24 +00:00