- devdesk attach --fs-write SESSION PATH BYTES BASESHA|new: streamed like
uploads, temp file in the same folder, sha re-check (conflict reply instead
of overwriting), mode/owner kept, atomic mv; new files with folders, never
outside the session folder or through a symlink out of it.
- Editor: editable CodeMirror for UTF-8 text, dirty tracking, Ctrl+S,
Save/Revert, conflict dialog with a disk-vs-yours diff, changed-on-disk
banner, drafts in localStorage (flushed on pagehide), close/leave guards,
New file.
- Upload streaming factored into streamIn(), shared by uploads and saves.
Closes#20
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Explorer tree with inline expand/collapse and keyboard navigation, git
colours, change dots, dimmed gitignored entries (fs-list now flags them),
file-type badges, resizable explorer.
- Editor tabs: preview tab semantics, instant switching with scroll kept,
in-place reload when Claude changes an open file.
- Go to file: devdesk attach --fs-find (git ls-files or capped find) and a
fuzzy-ranked palette (CommandPalette gained custom search/async lists).
- Per-session memory of folders and tabs; empty state with recents.
Closes#37
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Light mode with the house ☀/◐ toggle and lt_theme preference; light
terminal palette; Claude runs with dark-ansi so its colours follow the
palette; tmux and the statusLine use ANSI colours.
- Command palette (⌕, Ctrl+Shift+P) with session, terminal, view, link and
help commands.
- .lt-modal dialogs for new/rename/end and a keyboard shortcuts sheet.
- .lt-toast results for actions, uploads, copy and CI.
- ttyd dropped the reply of fast one-shot commands; replies now wait for the
browser to hang up, and the client hangs up as soon as it has one.
- Sessions panel re-fetches after an action instead of reusing a stale poll.
Closes#31Closes#32Closes#33Closes#34Closes#35
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>