- Implement backend tag tree endpoint at /tags/tree with TagTreeNode and
TagTreeResponse models
- Add frontend tag tree decryption logic and wire it into notes
decryption flow
- Fetch and decrypt tag tree in tags.tsx; integrate with tag store
- Add UI toggle for folders vs tags and update Sidebar and Header
- Remove unused SetStateAction import in SideBar - Add clearAll to
authStore to wipe state, localStorage, and reset notes - Expose
useAuthStore on window for debugging - Update notesStore.updateFolder to
return FolderTreeNode and fix recursion by using the correct child
variable
- Migrate note and folder selection state to a Zustand store
- and wire the Sidebar to consume it
- Extract Sidebar-related UI into a new Sidebar/RenderFolder component
- and remove inline sidebar from Home
- Update Home to render Sidebar and drive editor from selectedNote
- Extend notesStore with selectedNote and setters
- add setSelectedFolder and setSelectedNote
- Update prop types for DroppableFolder/RenderFolder
- to use store-based callbacks
- Migrate Home to use store actions for creating notes and folders -
Remove encrypted flag from NoteCreate interface - Add zustand to
frontend dependencies and update package-lock Add Zustand store for
notes