- Settings (⋯ → Settings…, palette): theme, terminal text size, interface size, notifications, Remote Control & privacy. The ⋯ menu shrinks. - Remote Control per session: registry choice > Settings default > DEVDESK_REMOTE_CONTROL. Switching an idle session restarts its Claude on the same conversation; busy sessions change at the next start. rc_active comes from the running process; RC tag on sessions. - --delete-convo: remove a conversation's local transcript and subagent files; refused while in use. Delete… in Search past conversations. Closes #61 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WHRLCCdXYm41Qx5kNhehaP
503 lines
25 KiB
Plaintext
503 lines
25 KiB
Plaintext
devdesk (0.12.0) bookworm; urgency=medium
|
||
|
||
* Settings window, from the ⋯ menu or the palette (#61):
|
||
- Theme, terminal text size and interface size (per browser).
|
||
- Desktop notifications.
|
||
- Remote Control and privacy.
|
||
The ⋯ menu shrinks to five entries.
|
||
* Remote Control per session (#61):
|
||
- A default for new sessions and a switch for each running session.
|
||
- Switching an idle session restarts its Claude on the same
|
||
conversation; a busy one changes at its next start.
|
||
- Sessions that sync show an RC tag, read from the running process.
|
||
- Server side: --remote-control and --settings.
|
||
* Delete a conversation from Search past conversations (#61): its local
|
||
transcript and subagent files, for good (--delete-convo). Refused
|
||
while a running session uses it.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Tue, 03 Nov 2026 21:25:00 -0500
|
||
|
||
devdesk (0.11.0) bookworm; urgency=medium
|
||
|
||
* Explorer works like VS Code's (#54):
|
||
- Right-click menus for files, folders and empty space;
|
||
Ctrl/Shift+click selects several.
|
||
- Inline rename (F2) and inline new file/folder.
|
||
- Drag to move, Ctrl+drag to copy.
|
||
- Drop files or whole folders from the desktop to upload them, asking
|
||
Replace / Skip / Keep both on a clash.
|
||
- Cut/copy/paste files, duplicate, download, copy path, @Claude.
|
||
- Delete moves to a 7-day trash with Undo; nothing is overwritten
|
||
unless asked.
|
||
- Server side: new --fs-mkdir/-move/-copy/-delete/-restore/-put/
|
||
-download.
|
||
* Markdown preview rewritten (#55):
|
||
- GitHub-style headings with anchors and an outline.
|
||
- Highlighted code with Copy, callouts, task lists, front matter.
|
||
- Relative links open files in DevDesk.
|
||
- Split view with a live preview.
|
||
* Editor (#55): status bar (line/column, cursors, indentation, line
|
||
endings, language), multiple cursors, column select, auto-closing
|
||
brackets, Ctrl+G, and tab menus with drag-to-reorder.
|
||
* Search in files, Ctrl+Shift+F (#56): match case, whole word and regex,
|
||
via git grep or grep.
|
||
* Fixes:
|
||
- A nested path check could escape the session folder: set -e does not
|
||
reach into $(...).
|
||
- The tree could show a stale listing.
|
||
- Session actions now return the server's reply, so "Close split
|
||
panes" reports correctly.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Thu, 22 Oct 2026 21:30:00 -0400
|
||
|
||
devdesk (0.10.4) bookworm; urgency=medium
|
||
|
||
* The Sessions panel's list scrolls on its own (#53). There is no cap on
|
||
sessions; with many of them, Ops Alerts and Repo/CI stay in reach below
|
||
the list. The current session is scrolled into view when you switch.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Thu, 22 Oct 2026 20:53:00 -0400
|
||
|
||
devdesk (0.10.3) bookworm; urgency=medium
|
||
|
||
* No tmux right-click menus (#52). A stray click on one split a pane, or
|
||
could kill Claude's window. "Close split panes (keeps Claude)" in the
|
||
command palette, backed by `--unsplit`, removes a split that happened
|
||
anyway.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Tue, 13 Oct 2026 09:00:00 -0400
|
||
|
||
devdesk (0.10.2) bookworm; urgency=medium
|
||
|
||
* Selecting text in the terminal works like a normal terminal (#51). A
|
||
drag is a browser selection that stays highlighted and is copied when
|
||
you let go, with a short toast. Ctrl+C copies the selection and
|
||
interrupts only when nothing is selected. The wheel still scrolls tmux
|
||
history, and the tmux status line still takes clicks.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Mon, 12 Oct 2026 16:36:00 -0400
|
||
|
||
devdesk (0.10.1) bookworm; urgency=medium
|
||
|
||
* Everything in 0.10.0, which was never published: its CI test for the
|
||
usage ping depended on attaching a tmux client.
|
||
* The usage ping counts you as away the same way "Claude needs you" does:
|
||
no DevDesk tab in view for ~2 minutes. A forgotten background tab no
|
||
longer silences it.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Mon, 12 Oct 2026 01:45:00 -0400
|
||
|
||
devdesk (0.10.0) bookworm; urgency=medium
|
||
|
||
* Matrix "Claude needs you" is quieter and says what is asked (#50):
|
||
- Claude's idle reminder after a turn no longer counts as a wait: no red
|
||
session, no inbox entry and no Matrix post.
|
||
- Posts only when no DevDesk tab has been in view for ~2 minutes, after
|
||
60 s, and at most once per session per 10 minutes
|
||
(DEVDESK_MATRIX_QUIET).
|
||
- The message names the tool, its description and the command.
|
||
* Own git worktree per session (#44): `devdesk new NAME PROJECT
|
||
--worktree` or a checkbox in the New session form. It uses branch
|
||
devdesk/NAME in $ROOT/.worktrees. Ending the session removes the
|
||
worktree if it is clean, and the branch if it is merged.
|
||
* Plan meters show when each window resets. If the pace so far would use
|
||
a window up before then, they warn instead. Matrix gets one message per
|
||
5-hour window past DEVDESK_USAGE_WARN (90%) when no tab is in view (#45).
|
||
* Repo panel lists the changed files; a click opens the diff (#46).
|
||
* Copy Claude's last reply as Markdown: a session button and a palette
|
||
entry, backed by `--last-reply` (#47).
|
||
* Turn timer in the session chip, the tab title and session cards (#48).
|
||
* Compact button when the context is 80% full and Claude is idle (#49).
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sun, 11 Oct 2026 23:30:00 -0400
|
||
|
||
devdesk (0.9.5) bookworm; urgency=medium
|
||
|
||
* Context use is shown in tokens as well as percent (#43): Claude's
|
||
footer shows "ctx 34% 346k/1M", and the Sessions panel and session
|
||
switcher show "ctx 34% · 346k/1M".
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sun, 11 Oct 2026 23:07:00 -0400
|
||
|
||
devdesk (0.9.4) bookworm; urgency=medium
|
||
|
||
* The inbox badge no longer only grows (#42). Opening the bell marks its
|
||
events seen, leaving just what is live (sessions waiting on you,
|
||
firing alerts). Viewing a session reads the events it reported while
|
||
you were away.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sun, 11 Oct 2026 22:46:00 -0400
|
||
|
||
devdesk (0.9.3) bookworm; urgency=medium
|
||
|
||
* Claude's footer shows 5-hour plan use instead of a dollar figure on a
|
||
Pro/Max subscription (#40). Claude Code's cost is an API-price
|
||
estimate, not a bill; it is still shown for API-key billing. The
|
||
Sessions tooltip follows the same rule.
|
||
* The bottom row is larger and easier to read (#41): 40px tall, larger
|
||
hints, and 5h/week usage meters in bold monospace with wider bars.
|
||
Narrow windows drop the least-used hints instead of clipping the
|
||
meters.
|
||
* Tests clear inherited DevDesk variables, so they pass when run from
|
||
inside a DevDesk session.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sun, 11 Oct 2026 22:08:00 -0400
|
||
|
||
devdesk (0.9.2) bookworm; urgency=medium
|
||
|
||
* Ops Alerts → Ask Claude starts an investigation (#39):
|
||
- It opens a new session (alert-<name>) and starts Claude with the
|
||
prompt already sent, instead of typing it into the current session.
|
||
Clicking again opens the running session.
|
||
- The server writes the prompt from Grafana: rule, query, summary,
|
||
details, labels, and where the alert runs. That is the Proxmox CT/VM
|
||
id, the node it is on right now, its state and HA state, and the
|
||
`ssh <node> pct exec <id> --` line.
|
||
- Each alert card shows that guest or node.
|
||
* `devdesk guests [ID|IP|NAME]`: Proxmox guests with their current node,
|
||
status, HA state and IPs, read over SSH from DEVDESK_PVE_NODES. CT IPs
|
||
come from lxc-info, VM IPs from the guest agent. Cached in
|
||
/var/lib/devdesk/guests.json; stopped guests keep their last-seen IPs.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sun, 11 Oct 2026 11:23:53 -0400
|
||
|
||
devdesk (0.9.1) bookworm; urgency=medium
|
||
|
||
* Robustness (#12):
|
||
- A resume that fails (an early Ctrl+C, a network error) no longer
|
||
replaces the session's recorded conversation with a new one: Claude
|
||
starts fresh only when the conversation's file is really gone;
|
||
otherwise the menu offers to try again.
|
||
- The SessionStart hook reads the session name under the registry lock
|
||
that rename holds, so renaming during /clear or a restart can't leave
|
||
the conversation id under the old name.
|
||
- Env files are parsed the way systemd parses them instead of being
|
||
sourced: values are literal (no $ expansion or command substitution),
|
||
and bad lines are reported and skipped.
|
||
- Deploys wait for the dpkg lock (120 s), log an explicit "deploy
|
||
FAILED" line, and the webhook answers with the result, so CI's deploy
|
||
job fails (and alerts) when the install fails. The deploy log is
|
||
rotated monthly.
|
||
- postinst removes the duplicate tmux terminal-features entries left by
|
||
upgrades before 0.3.1.
|
||
- Temp files of hooks killed mid-write are swept.
|
||
- NPM now sends X-Frame-Options DENY and CSP frame-ancestors 'none' for
|
||
dev.lotusguild.org (proxy config, not part of the package).
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sun, 11 Oct 2026 01:01:33 -0400
|
||
|
||
devdesk (0.9.0) bookworm; urgency=medium
|
||
|
||
* Search past conversations (#24): every Claude conversation on this host
|
||
(DevDesk and code-server), by what you asked, what Claude said, the
|
||
commands it ran and their output (⋯ menu or the palette). Results show
|
||
the title, folder, dates and highlighted snippets; Resume opens the
|
||
conversation in a new session in its folder, Fork continues it as a new
|
||
conversation (claude --fork-session) and leaves the original as it is.
|
||
A conversation already open in a running session offers "Open" instead,
|
||
and resuming it twice is refused.
|
||
* Plan usage and PRs (#25): the 5-hour and weekly plan windows from
|
||
Claude's statusLine, as meters in the footer (⋯ menu on phones), with a
|
||
warning at 90 % of the 5-hour window; a PR chip (with review state) on
|
||
sessions whose branch has a pull request. (The statusLine has no prompt
|
||
cache expiry, so there is no cache timer.)
|
||
* Phone pushes held back while you're at the desk (#26): while a DevDesk
|
||
tab shows a session, its Claude sees a client-presence marker
|
||
(CLAUDE_CLIENT_PRESENCE_FILE) and Remote Control holds back pushes; the
|
||
marker expires about 2 minutes after the tab stops showing it. Applies to
|
||
sessions whose Claude started on this version (/exit, then ⏎).
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sat, 10 Oct 2026 21:44:07 -0400
|
||
|
||
devdesk (0.8.2) bookworm; urgency=medium
|
||
|
||
* Click file paths in the terminal (#21): a path Claude prints
|
||
(web/src/files.js, ./notes.md:12, /root/code/x/y.py:3) is a link when it
|
||
is a file of the session; it opens in Files, at that line if given.
|
||
* Alerts: "In a new session" (#18) opens (or reuses) alert-<name> in the
|
||
default folder and types the investigation prompt there once Claude is
|
||
up, without sending it.
|
||
* Ops trail and guard (#27):
|
||
- devdesk-guard, a PreToolUse hook for Bash, makes Claude ask before
|
||
commands that destroy things (pct/qm destroy, zfs/zpool destroy, Ceph
|
||
pool/OSD removal, rbd rm, wipefs/mkfs/dd to /dev, rm -r of / or a
|
||
top-level folder, git push --force, DROP TABLE, stopping devdesk-tmux,
|
||
reboot/poweroff…), also in auto mode. It never blocks or allows on its
|
||
own. DEVDESK_GUARD=0 turns it off; /etc/devdesk/guard.local adds rules
|
||
(regex<TAB>reason).
|
||
- Every Bash command is logged per session (last 500); sessions are
|
||
tagged with the hosts they work on (ssh targets, CT/VM ids), shown in
|
||
the session list, the switcher and the palette; Peek lists the last
|
||
commands.
|
||
* Sessions pick up the new hooks when Claude next starts (/exit, then ⏎).
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sat, 10 Oct 2026 20:36:32 -0400
|
||
|
||
devdesk (0.8.1) bookworm; urgency=medium
|
||
|
||
* Answer sessions from the 🔔 inbox without switching to them:
|
||
- Allow / Deny (#22): a PermissionRequest hook records what Claude wants
|
||
to run (tool, command/file/URL, Claude's description); the inbox shows
|
||
it with Allow, Deny and Open. The key is pressed in that session's
|
||
Claude window only if the same wait is still on and the permission
|
||
prompt is on screen, so a stale button never types into Claude.
|
||
- Peek & reply (#23): the last thing you asked and Claude's latest answer
|
||
(from the session's transcript), and a reply box; the reply is pasted
|
||
as one bracketed paste and sent. Available for sessions that wait for
|
||
input and from "finished" entries.
|
||
- Matrix "needs you" messages include the command.
|
||
* New attach commands: --answer SESSION SINCE allow|deny, --peek SESSION,
|
||
--reply SESSION BYTES (text streamed like uploads).
|
||
* Sessions pick up the new PermissionRequest hook when Claude next starts
|
||
(/exit, then ⏎).
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sat, 10 Oct 2026 20:22:37 -0400
|
||
|
||
devdesk (0.8.0) bookworm; urgency=medium
|
||
|
||
* Edit and save files in the Files pane (#20):
|
||
- Text files open editable; ● marks unsaved tabs; Ctrl+S or Save writes
|
||
through `devdesk attach --fs-write`: a temp file in the same folder,
|
||
mode and owner kept, swapped in with mv.
|
||
- Conflict detection: the save carries the sha256 of the version you
|
||
opened; if Claude (or anyone) changed the file since, nothing is written
|
||
and you choose Compare (diff of disk vs yours), Overwrite or Cancel.
|
||
- A file that changes on disk while you edit it shows a banner (Compare,
|
||
Reload, Keep mine) instead of replacing your text; clean files still
|
||
reload in place.
|
||
- Unsaved edits are mirrored to the browser as drafts (flushed when the
|
||
page closes), so a reload, a crash or a session switch doesn't lose
|
||
them; a draft for a file that changed since offers Compare/Restore/
|
||
Discard.
|
||
- Closing a tab with unsaved changes asks Save / Don't save / Cancel;
|
||
leaving the page warns.
|
||
- + New file (missing folders are created; never outside the session
|
||
folder, and never through a symlink out of it).
|
||
- Markdown previews show unsaved Source edits. Latin-1 files stay
|
||
read-only.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sat, 10 Oct 2026 20:09:49 -0400
|
||
|
||
devdesk (0.7.3) bookworm; urgency=medium
|
||
|
||
* Fix (#38): links that mean "go to that session" no longer re-create one
|
||
that was ended. The 🔔 inbox, the session switcher, palette switches, the
|
||
"needs you" chip and Matrix links (now ?arg=NAME&existing=1) open sessions
|
||
existing-only; an ended one shows "NAME has ended" with an explicit
|
||
"Start NAME again". Inbox entries for ended sessions are marked as such,
|
||
and entries older than 7 days are dropped.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Sat, 10 Oct 2026 19:57:52 -0400
|
||
|
||
devdesk (0.7.2) bookworm; urgency=medium
|
||
|
||
* Fix: Go to file failed in big non-git folders such as /root/code: the
|
||
file walk was cut off at its cap with SIGPIPE, which failed the command
|
||
and truncated its reply. Producers piped into a cap now tolerate it (also
|
||
for very large folders and git status). Outside git, Go to file skips
|
||
build/cache folders and stops at 10,000 files.
|
||
* Large side-channel replies no longer cost quadratic time in the browser.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Thu, 08 Oct 2026 01:50:50 -0400
|
||
|
||
devdesk (0.7.1) bookworm; urgency=medium
|
||
|
||
* Files pane reworked like VS Code (#37):
|
||
- Explorer tree beside the editor: folders expand in place (also with
|
||
the keyboard: arrows, Enter), the open file is highlighted and can be
|
||
revealed, git colours on names, change dots on folders, gitignored
|
||
entries dimmed, file-type badges. A drag handle sizes the explorer.
|
||
- Tabs: a click opens a preview tab (italic) that the next click
|
||
replaces; double-click or Enter keeps it. Switching tabs is instant and
|
||
keeps the scroll position. Files Claude changes reload in place.
|
||
- Go to file (Ctrl+P in the pane, the ⌕ button, the palette): fuzzy
|
||
search over git ls-files, or a capped find outside git.
|
||
- Explorer and Changes are two views of the left column; diffs open as
|
||
tabs.
|
||
- Expanded folders, open tabs and the active tab are remembered per
|
||
session; an empty editor offers recent files and the change count.
|
||
- Narrow panes and phones: the explorer slides over the editor.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Thu, 08 Oct 2026 01:40:47 -0400
|
||
|
||
devdesk (0.7.0) bookworm; urgency=medium
|
||
|
||
* Files pane (#19): a Files button (Ctrl+Shift+E) next to Panels opens the
|
||
session's folder beside the terminal (a drag-resizable split on wide
|
||
screens, an overlay on narrow ones and phones).
|
||
- Browse folders; read files with syntax highlighting (CodeMirror,
|
||
read-only, Ctrl+F search, line wrap toggle), markdown rendered as a
|
||
sanitized preview with its relative images, images shown inline.
|
||
- Changes tab: uncommitted git changes with line counts and a "C" badge
|
||
on files Claude edited (recorded by the state hook from Edit/Write);
|
||
diff against HEAD for any changed file. Non-git sessions list the files
|
||
Claude edited there.
|
||
- "→ Claude" types @path into the prompt; Copy path.
|
||
- After Claude's turn the list refreshes, and an open file that changed
|
||
on disk offers a reload.
|
||
- Paths stay inside the session folder (no absolute paths, no symlink
|
||
escapes). Read-only for now; editing is v0.8.0.
|
||
- The editor (~600 KB) is not in the page: it ships in
|
||
/usr/share/devdesk/assets, is fetched over ttyd the first time Files
|
||
opens, checked against the page's SHA-256 and cached in the browser.
|
||
* Fix: the state hook mis-read hook fields when Claude's message was empty.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Thu, 08 Oct 2026 01:16:26 -0400
|
||
|
||
devdesk (0.6.1) bookworm; urgency=medium
|
||
|
||
* Inbox bell (#36): sessions waiting on you, firing alerts, and what
|
||
happened while you were away (a background session finished or started
|
||
waiting, CI passed or failed). Click to jump there; shared by all tabs.
|
||
Replaces the count on the Panels button.
|
||
* Phone header: theme in the ⋯ menu, Panels as an icon, so the bell fits.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Thu, 08 Oct 2026 00:50:56 -0400
|
||
|
||
devdesk (0.6.0) bookworm; urgency=medium
|
||
|
||
* Light mode, like the other web_template apps (#31): the ☀/◐ button in the
|
||
header, shared lt_theme preference (OS setting until you choose), applied
|
||
before first paint and synced across tabs. The terminal has a light
|
||
palette; Claude runs with its dark-ansi theme so its colours come from
|
||
that palette, and the light palette maps bright white to ink, so Claude's
|
||
text, scrollback included, stays readable in both modes. tmux and the
|
||
statusLine use ANSI colours so they follow the theme too. Sessions pick
|
||
up Claude's theme the next time Claude starts in them.
|
||
* Command palette (#32): ⌕ button or Ctrl+Shift+P. Switch, create, rename
|
||
and end sessions, Claude/Shell window, scroll back, detach, theme, panels,
|
||
text size, fullscreen, notifications, copy link, open the repo / PRs / CI
|
||
run, show alerts, keyboard help.
|
||
* Dialogs instead of browser prompt/confirm for rename, end and new
|
||
session (name check inline, project folder picker), and a keyboard
|
||
shortcuts sheet in the ⋯ menu, the palette and the footer (#33).
|
||
* Toasts for results: created, renamed, ended, uploads, link copied, CI
|
||
finished, errors (#34).
|
||
* Fix: renames, ends and new sessions often reported "no response" although
|
||
they worked; ttyd dropped the reply of commands that exit right after
|
||
printing. Replies now wait for the browser to hang up (#35).
|
||
* Fix: the Sessions panel showed stale names right after a rename or end.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Thu, 08 Oct 2026 00:32:11 -0400
|
||
|
||
devdesk (0.5.1) bookworm; urgency=medium
|
||
|
||
* A session created by opening its URL shows up in the Sessions panel and
|
||
the switcher right away instead of at the next poll.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Wed, 07 Oct 2026 23:42:01 -0400
|
||
|
||
devdesk (0.5.0) bookworm; urgency=medium
|
||
|
||
* Security (from the 2026-10-07 review):
|
||
- ttyd :7681 is firewalled to NPM in CT 126 and its credential was
|
||
rotated (#1).
|
||
- "Ask Claude" strips control characters from Grafana text and pastes it
|
||
as bracketed paste, so alert text can never run a command (#2).
|
||
- OSC 52 clipboard is write-only: terminal output can no longer read the
|
||
browser clipboard; tmux allow-passthrough is off (#7).
|
||
- Gitea/Grafana tokens reach curl on stdin, never on its command line;
|
||
remote URLs lose any userinfo (#11).
|
||
* Fixes:
|
||
- Ending the session you are in no longer leaves a ghost entry (#3).
|
||
- Reconnecting after a drop never re-creates a session that was ended or
|
||
renamed meanwhile (`attach --existing`) (#4).
|
||
- Repo panel uses git --no-optional-locks and drops the safe.directory
|
||
override (#5); uploads get unique names and are cleaned up on hangup
|
||
(#6); uploads are size-checked first and streamed in slices with an
|
||
idle timeout (#9); paths with tabs no longer break the session list
|
||
(#10).
|
||
- ttyd allows 32 clients; side-channel calls run two at a time and one
|
||
tab polls for all open tabs (#8).
|
||
* Header: the SSO chip is gone ("Sign in again" appears only when the
|
||
session expires); the session chip shows Claude's state as a dot and
|
||
opens a session switcher; LIVE is a dot; text size, notifications (with
|
||
mute) and fullscreen move into a ⋯ menu; the Panels button shows a badge
|
||
for waiting sessions and alerts (#13, #16).
|
||
* A bare URL reattaches your last session instead of opening the picker
|
||
(#16).
|
||
* Notifications when *other* sessions start waiting, and alerts are polled
|
||
with the panels closed (#15).
|
||
* Sidebar: the Claude Context panel is folded into a context bar in each
|
||
session row; Repo/CI collapses for non-git folders and offers "Ask Claude
|
||
to fix CI"; the new-session form hides behind "+ New"; more legible
|
||
labels (#17).
|
||
* Phone: key bar (Esc, Tab, ⇧Tab, ^C, arrows, ⏎, Claude/Shell), drawer
|
||
with backdrop, layout that follows the on-screen keyboard, DOM renderer
|
||
on touch devices, no clock in the tmux status line (#14).
|
||
* Matrix "Claude needs you": a wait that lasts 30 s with nobody attached
|
||
posts one message with a link to the Devdesk hookshot webhook (#28).
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Wed, 07 Oct 2026 23:34:48 -0400
|
||
|
||
devdesk (0.4.0) bookworm; urgency=medium
|
||
|
||
* Session status at a glance: Claude hooks record whether each session is
|
||
working, waiting on you (with Claude's message) or idle. The sidebar shows
|
||
it with context %, the header shows the current session's state, and a
|
||
pulsing "needs you" chip jumps to sessions waiting for input.
|
||
* File & image drop: drag files onto the terminal or paste a screenshot.
|
||
They're uploaded through ttyd to /var/lib/devdesk/uploads/<session>/ (25 MB
|
||
max, pruned after 7 days) and the path is pasted into Claude, which
|
||
attaches images itself.
|
||
* Ops Alerts panel is live: firing/pending Grafana alert rules with
|
||
severity, instances, summary and a link, plus an "Ask Claude" button that
|
||
types an investigation prompt into the current session.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Wed, 07 Oct 2026 19:24:15 -0400
|
||
|
||
devdesk (0.3.1) bookworm; urgency=medium
|
||
|
||
* Auto-deploy: tagged releases trigger CT 126's webhook listener (house HMAC
|
||
pattern), which runs /usr/lib/devdesk/devdesk-deploy to upgrade the
|
||
package from the apt registry. Running sessions are untouched.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Wed, 07 Oct 2026 13:20:58 -0400
|
||
|
||
devdesk (0.3.0) bookworm; urgency=medium
|
||
|
||
* Repo / CI panel is live: branch, ahead/behind, uncommitted changes, the
|
||
Gitea CI status of HEAD (linked to the run) and open PRs for the current
|
||
session's folder, via `devdesk attach --repo` over the ttyd channel. No
|
||
sidecar needed; public repos need no token (optional
|
||
/etc/devdesk/gitea-token for private ones). A notification fires when CI
|
||
for HEAD finishes while the tab is in the background.
|
||
* Remote Control verified with resume (same claude.ai session link).
|
||
* Local settings now go in /etc/devdesk/env.local (read after the packaged
|
||
env, never shipped), so upgrades no longer stop at a conffile prompt.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Wed, 07 Oct 2026 12:57:04 -0400
|
||
|
||
devdesk (0.2.1) bookworm; urgency=medium
|
||
|
||
* Session hook and status line only record for panes on DevDesk's own
|
||
tmux server (Claude run with these settings elsewhere no longer writes
|
||
into DevDesk's state).
|
||
* The Claude wrapper re-reads /etc/devdesk/env before every Claude launch,
|
||
so Remote Control and CLAUDE_ARGS changes apply on the next restart.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Wed, 07 Oct 2026 12:54:06 -0400
|
||
|
||
devdesk (0.2.0) bookworm; urgency=medium
|
||
|
||
* Sessions no longer need a project folder: any name works and starts in
|
||
DEVDESK_DEFAULT_DIR unless it matches a project; new NAME [PROJECT].
|
||
* Rename and end sessions from the Sessions panel (and devdesk rename).
|
||
Renames keep the running Claude and its recorded conversation.
|
||
* Claude Context panel is live: a statusLine command snapshots model,
|
||
context-window use, cost and edits per session; Claude's footer shows a
|
||
one-line summary.
|
||
* Drop GANDALF from the Ops Alerts panel.
|
||
* CI: bash shell, download retries, Node 22 test invocation,
|
||
build-essential, smoke-test pipe fix.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Wed, 07 Oct 2026 03:01:21 -0400
|
||
|
||
devdesk (0.1.0) bookworm; urgency=medium
|
||
|
||
* Initial release: persistent browser terminal for Claude Code
|
||
(ttyd + tmux) with LotusGuild TDS styling, multiple named sessions,
|
||
per-session conversation resume and Debian packaging.
|
||
|
||
-- Jared Vititoe <jjvititoe1@gmail.com> Tue, 06 Oct 2026 22:58:26 -0400
|