Task Board — dnd-kit + Agent Sync Flow

How drag-and-drop card moves propagate from UI to kanban.db and back via the Hermes gateway

FEATURE GATE requires kanban capability · hermes dashboard :9119 TasksScreen Board Swim Timeline + New Task DndContext (dnd-kit) — drag overlay active during move Triage DroppableColumn Todo DroppableColumn Ready DroppableColumn Running DroppableColumn Blocked DroppableColumn Done DroppableColumn DraggableCard TaskCard inside title · assignee priority badge DraggableCard TaskCard DraggableCard TaskCard inside agent assigned running badge DragOverlay semi-transparent ghost during drag Task Detail Drawer (click card to open) title / description assignee priority due date tags Archive task Hard delete DELETE /api/hermes-kanban/tasks/:id?delete=true Optimistic update local state moves card immediately (no flicker) POST move /api/hermes-kanban/tasks :id · column · position Hermes gateway kanban plugin · :9119 moveTask() → updateTask() kanban.db SQLite · tasks table column + updated_at SSE broadcast /api/hermes-kanban/events task:updated event queryClient invalidateQueries hermes-kanban · tasks Error rollback revert optimistic state toast notification onDragEnd fetch proxy SQL emit event re-fetch → board re-renders on error Hermes Switch UI · Task Board Sync · /api/hermes-kanban/*

TasksScreen

  • · Board / Swim / Timeline view toggle
  • · DndContext wraps all DroppableColumns
  • · DraggableCard wraps each TaskCard
  • · DragOverlay renders semi-transparent ghost
  • · New Task button opens TaskDialog

Optimistic update + POST

  • · onDragEnd triggers moveTask() locally first
  • · PATCH /api/hermes-kanban/tasks/:id
  • · column + position payload
  • · Rollback on fetch error
  • · Toast shown on failure

kanban.db + SSE broadcast

  • · Hermes gateway persists to SQLite kanban.db
  • · task:updated SSE event fires on change
  • · useKanbanEvents hook subscribes on mount
  • · queryClient.invalidateQueries re-fetches board
  • · Agent-side updates follow same broadcast path

Task Detail Drawer

  • · Opens on card click
  • · Inline edit: title, description, assignee, priority
  • · Archive: soft-delete (hidden from board)
  • · Hard delete: DELETE …?delete=true
  • · Status change available from drawer column picker