ttyd serves a single-file xterm.js UI styled with the LotusGuild TDS (web_template base.css). Sessions live in a dedicated tmux server unit (devdesk-tmux.service), so restarting or upgrading the web unit never stops Claude. Each named session maps to a project directory. A Claude SessionStart hook records the conversation ID, so after a reboot the session resumes that exact conversation. - bin/devdesk: attach / new / ls / end / pick, with an fzf picker - ttyd requires a credential that NPM injects; origin check enabled - debian/: dh 13 with --no-stop-on-upgrade for the tmux unit, bundled sha256-verified ttyd 1.7.7, lintian overrides, man page - CI: lint, test, build, smoke-test, artifact; v* tags publish to the Gitea apt registry and create a release Refs: tinker ticket 887531976 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 lines
442 B
Bash
Executable File
13 lines
442 B
Bash
Executable File
#!/bin/bash
|
|
# ExecStartPost for devdesk-tmux.service: wait until the tmux server answers on
|
|
# its socket, so `systemctl start devdesk-tmux` only returns once clients can attach.
|
|
SOCK=${DEVDESK_SOCKET:-/run/devdesk/tmux.sock}
|
|
for _ in $(seq 1 100); do
|
|
if [ -S "$SOCK" ] && tmux -N -S "$SOCK" start-server 2>/dev/null; then
|
|
exit 0
|
|
fi
|
|
sleep 0.1
|
|
done
|
|
echo "devdesk-tmux-ready: tmux server did not come up on $SOCK" >&2
|
|
exit 1
|