Settings window; Remote Control per session (off by default); delete conversations #61

Closed
opened 2026-11-03 21:23:08 -05:00 by jared · 0 comments
Owner

Why. Every DevDesk session ran with Remote Control: DEVDESK_REMOTE_CONTROL=1 in CT 126's env.local. While it's connected, Anthropic stores the session transcript to sync devices (Claude Code docs, Remote Control → Connection and security). That copy is kept 30 days, or 5 years if "Help improve Claude" is on, and stays at claude.ai/code until you delete it there. There was also no way to delete a conversation's local copy (~/.claude/projects, plaintext, 30 days) from DevDesk. Text size sat in the ⋯ menu although it's rarely changed.

Settings window (⋯ → Settings…, or the palette)

  • Appearance, remembered per browser:
    • Theme (Dark/Light).
    • Terminal text size (A−/A+/Reset).
    • Interface size (Small/Normal/Large/Larger), which scales the page's root font size.
  • Desktop notifications (turn on, mute or unmute).
  • Remote Control & privacy:
    • What is stored where and for how long, with links to claude.ai/code and the privacy settings.
    • A New sessions default.
    • A switch per running session.
  • Conversations: points to Search past conversations, where each result now has Delete….
  • The ⋯ menu is down to Settings…, Search past conversations, Command palette, Keyboard shortcuts and Fullscreen.

Remote Control per session

  • Stored with the session: each session's own choice lives in the registry (remote_control). Without one, it uses the default from Settings (/var/lib/devdesk/settings.json), then DEVDESK_REMOTE_CONTROL.
  • Switching a running session:
    • An idle Claude is stopped (SIGTERM) and the run-wrapper restarts it on the same conversation, without the exit menu.
    • A Claude that is working or waiting gets the change at its next start.
  • What's shown is real: --list reports the wanted value and rc_active, read from the running Claude's own command line, so the session's RC tag can't drift from what the process is doing.
  • Server: devdesk attach --remote-control NAME on|off and devdesk attach --settings [remote-control-default on|off].

Delete a conversation: devdesk attach --delete-convo ID removes the transcript and its <id>/ folder (subagents, tool results) for good. It is refused while a running session uses the conversation, and dormant sessions that pointed at it start fresh. The confirm dialog and the toast remind you to delete the claude.ai copy if Remote Control was on.

Tests: bats for the switch (default, live state, restart when idle, saved when busy) and for delete; Playwright for the Settings window and delete from search.

**Why.** Every DevDesk session ran with Remote Control: `DEVDESK_REMOTE_CONTROL=1` in CT 126's `env.local`. While it's connected, Anthropic stores the session transcript to sync devices (Claude Code docs, *Remote Control → Connection and security*). That copy is kept 30 days, or 5 years if "Help improve Claude" is on, and stays at claude.ai/code until you delete it there. There was also no way to delete a conversation's local copy (`~/.claude/projects`, plaintext, 30 days) from DevDesk. Text size sat in the ⋯ menu although it's rarely changed. **Settings window** (⋯ → Settings…, or the palette) - Appearance, remembered per browser: - Theme (Dark/Light). - Terminal text size (A−/A+/Reset). - Interface size (Small/Normal/Large/Larger), which scales the page's root font size. - Desktop notifications (turn on, mute or unmute). - **Remote Control & privacy:** - What is stored where and for how long, with links to claude.ai/code and the privacy settings. - A **New sessions** default. - A switch per running session. - **Conversations:** points to Search past conversations, where each result now has **Delete…**. - The ⋯ menu is down to Settings…, Search past conversations, Command palette, Keyboard shortcuts and Fullscreen. **Remote Control per session** - **Stored with the session:** each session's own choice lives in the registry (`remote_control`). Without one, it uses the default from Settings (`/var/lib/devdesk/settings.json`), then `DEVDESK_REMOTE_CONTROL`. - **Switching a running session:** - An idle Claude is stopped (SIGTERM) and the run-wrapper restarts it on the same conversation, without the exit menu. - A Claude that is working or waiting gets the change at its next start. - **What's shown is real:** `--list` reports the wanted value and `rc_active`, read from the running Claude's own command line, so the session's **RC** tag can't drift from what the process is doing. - **Server:** `devdesk attach --remote-control NAME on|off` and `devdesk attach --settings [remote-control-default on|off]`. **Delete a conversation:** `devdesk attach --delete-convo ID` removes the transcript and its `<id>/` folder (subagents, tool results) for good. It is refused while a running session uses the conversation, and dormant sessions that pointed at it start fresh. The confirm dialog and the toast remind you to delete the claude.ai copy if Remote Control was on. **Tests:** bats for the switch (default, live state, restart when idle, saved when busy) and for delete; Playwright for the Settings window and delete from search.
jared closed this issue 2026-11-03 21:23:32 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/devdesk#61