Skip to content

fix(desktop): archive kanban boards from Board settings - #82078

Open
Per0-1 wants to merge 1 commit into
NousResearch:mainfrom
Per0-1:fix/desktop-kanban-board-archive
Open

fix(desktop): archive kanban boards from Board settings#82078
Per0-1 wants to merge 1 commit into
NousResearch:mainfrom
Per0-1:fix/desktop-kanban-board-archive

Conversation

@Per0-1

@Per0-1 Per0-1 commented Aug 8, 2026

Copy link
Copy Markdown

Summary

Desktop Kanban Board settings only allowed renaming and project binding. There was no way to remove a board from the Desktop UI, even though:

  • browser dashboard already has Archive for non-default boards
  • backend already exposes DELETE /api/plugins/kanban/boards/{slug} (archive by default)
  • CLI already has hermes kanban boards rm <slug>

This adds Desktop parity: Archive board in Board settings (destructive, confirmed), hidden on default. Hard-delete remains CLI-only (--delete / ?delete=true).

Changes

  • apps/desktop/src/plugins/kanban/api.tsarchiveBoard(slug)DELETE /boards/{slug}
  • apps/desktop/src/plugins/kanban/board-switcher.tsx — Archive button + ConfirmDialog; switch away if the active board was archived
  • apps/desktop/src/plugins/kanban/i18n.ts — en/ja/zh/zh-hant strings

Test plan

  • Open Kanban → board switcher → Board settings… on a non-default board
  • Confirm Archive board appears (left, destructive) and is absent on default
  • Cancel the confirm dialog → board unchanged
  • Confirm archive → board leaves the switcher list; if it was active, UI falls back to the server current board (usually default)
  • Board dir lands under ~/.hermes/kanban/boards/_archived/
  • hermes kanban boards list no longer shows the archived slug

Desktop Board settings only exposed name/project edit, while the browser
dashboard and CLI already support archiving non-default boards. Wire the
existing DELETE /boards/{slug} endpoint into Desktop with a confirm dialog,
hide Archive on the default board, and fall back to the server current board
after archive. Hard-delete stays CLI-only.
@alt-glitch alt-glitch added type/feature New feature or request comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have labels Aug 8, 2026
@spfcraze

spfcraze commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

This was generated by AI during triage.

Summary:
The Archive button this adds calls the same DELETE /boards/{slug} endpoint whose archived boards the gateway dispatcher is documented to silently recreate while the gateway runs (#67888, #35211, #43243) — so the test plan's "board leaves the switcher list" step can fail under the default configuration.

Problems:

  • gateway/kanban_watchers.py enumerates list_boards(include_archived=False) and calls _kb.connect(board=slug) per board each tick (lines 1303, 1240); connect() recreates a missing board directory via path.parent.mkdir(parents=True, exist_ok=True) (hermes_cli/kanban_db.py:2176) — the concurrent-connect window remove_board's own comment names at hermes_cli/kanban_db.py:878.
  • The desktop plugin reuses the dashboard's /api/plugins/kanban/* router as-is (apps/desktop/src/plugins/kanban/api.ts), so the button rides the same backend path the dashboard Archive control uses — the surface [Bug]: Kanban boards cannot be removed from the dashboard because archived boards are recreated #81021 reports as reappearing after archive.
  • kanban.dispatch_in_gateway defaults to true (hermes_cli/config_defaults.py), so the dispatcher watcher runs in the gateway the desktop plugin talks to; the open fix fix: prevent archived kanban boards from being resurrected #56030 validates the /events board query param against archived slugs.

Solution:
Reference #56030 and #43243 in the description so the dependency on the resurrection fix is visible, and scope the test plan's archive step to a gateway with the dispatcher stopped.


Checked against 18e7a4c — the tip of fix/desktop-kanban-board-archive when this was written — and 6243136, main at the same moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants