Skip to content

Tag "Add All", task Clear, folder-tree drag/drop, responsive cards, assistant header tweaks - #195

Merged
davior merged 1 commit into
mainfrom
claude/youthful-brahmagupta-1teozt
Sep 30, 2026
Merged

davior merged 1 commit into
mainfrom
claude/youthful-brahmagupta-1teozt

Conversation

@davior

@davior davior commented Sep 30, 2026

Copy link
Copy Markdown
Owner

Summary

  1. Tag suggestions: "Add All" – adds every suggested tag in one click, skipping any already on the note.
  2. Background tasks: "Clear" – removes all finished (done / failed / cancelled) rows. Running jobs and plans awaiting approval are kept, since neither is completed. Disabled when there's nothing to clear.
  3. Folder panel drag & drop – tree rows are now draggable and droppable, so notes → folders, folders → folders, and either → "All notes" (root) all work.
    • Rows that can't accept the drag (the folder itself, its descendants, its current parent, dynamic folders) don't highlight or accept drops. The Archive Bin can receive items but can't be dragged.
    • Hovering a collapsed folder mid-drag expands it after 600 ms so nested targets are reachable.
    • A toast confirms each move.
  4. Card view – auto-fill grid from one column up to as many as fit, with an 18rem min and 24rem max card width. The category badge now truncates so the card header can't clip at the minimum width.
  5. Assistant panel – Start Voice Mode moved next to Start dictation in the composer; History is icon-only with a "Show chat history" tooltip; Recipes moved to the end (Assistant · History · Assets · Recipes).

Things worth a look

  • Collision detection changed to pointerWithin. The default rectIntersection uses the dragged item's rectangle; a note card is far larger than a tree row, so it overlapped several rows and picked the wrong one (I reproduced a note dropped on "Ideas" not registering). This also applies to the existing folder-bar chips, which now need the pointer over the chip rather than just card overlap.
  • The DndContext was lifted in ListView to wrap both the tree panel and the notes column (needed so tree rows share a context with note cards). Tree rows use tree-drag: / tree-drop: ids because the folder bar registers the same folders in the same context. Drop targets now carry their folder in data.folderId (null = root) instead of being parsed from the droppable id.
  • Pre-existing, left alone: for note drags, the small overlay label is anchored at the card's top-left, not under the pointer.

Testing

  • tsc --noEmit clean, vite build succeeds, vitest 157/157 (155 existing + 2 new for clearSettled).
  • Drove the real app (Vite + backend on a scratch DB) with Playwright — 34 checks passing:
    • Cards: 1 column at 375px (343px wide), 2 at 1100, 3 at 1400, 5 at 1920; all cards 288–384px, no horizontal overflow, no clipped headers.
    • Tree drag & drop: note → folder, folder → nested folder (with hover-expand), folder → "All notes", note → "All notes"; no highlight on own descendant; dynamic folder rejects drops; row click/navigation still works. Results checked against the API.
    • Clear: with mocked activity data (done/error/cancelled/awaiting-approval/running), only the three finished rows were removed.
    • Add All: with a mocked AI provider, all suggestions added, a tag already present wasn't duplicated, and tags persisted correctly.
    • Assistant header: tab order and History tooltip confirmed.
  • Not verified in a browser: the relocated Start Voice Mode button. It only renders when voice mode is enabled and a Deepgram key is configured, which the test environment doesn't have. It's a straight move of the existing button (same handlers/title), placed after the dictation button.

🤖 Generated with Claude Code

https://claude.ai/code/session_014XETj69yz1PR4dD5ukTuj4


Generated by Claude Code

…s, assistant header tweaks

- Tag suggestions: "Add All" adds every suggested tag in one click (skipping any
  already on the note).
- Background tasks: "Clear" removes all finished (done/failed/cancelled) rows.
  Running jobs and plans awaiting approval are kept, since neither is completed.
- Folder panel: tree rows are now draggable and droppable. Notes and folders can be
  dropped onto a folder or onto "All notes" (root). Rows that can't accept the drag
  (the folder itself, its descendants, its current parent, dynamic folders) don't
  highlight; hovering a collapsed folder mid-drag expands it. A toast confirms moves.
  The DndContext now spans the tree and notes column, and collision is by pointer
  rather than the dragged item's rectangle, which was picking the wrong row for
  note cards (much larger than a tree row).
- Card view: auto-fill grid from one column up to as many as fit, with an 18rem
  minimum and 24rem maximum card width. Category badge now truncates so the card
  header can't clip at the minimum width.
- Assistant panel: Start Voice Mode moved next to Start dictation in the composer;
  History is icon-only with a "Show chat history" tooltip; Recipes moved to the end.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XETj69yz1PR4dD5ukTuj4
@davior
davior marked this pull request as ready for review September 30, 2026 12:04
@davior
davior merged commit 3e77696 into main Sep 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants