- 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 #31 Closes #32 Closes #33 Closes #34 Closes #35 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
29 lines
1.2 KiB
Bash
Executable File
29 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# ExecStart for devdesk.service: builds the ttyd command line from
|
|
# /etc/devdesk/env and /etc/devdesk/secret.env (loaded by systemd).
|
|
set -euo pipefail
|
|
|
|
if [ -z "${DEVDESK_CREDENTIAL:-}" ]; then
|
|
echo "devdesk-serve: DEVDESK_CREDENTIAL is not set (expected in /etc/devdesk/secret.env)" >&2
|
|
exit 1
|
|
fi
|
|
|
|
args=(
|
|
--port "${DEVDESK_PORT:-7681}"
|
|
--writable # ttyd >= 1.7.4 is read-only by default
|
|
--url-arg # ?arg=<session> becomes `devdesk attach <session>`
|
|
--check-origin # refuse cross-site WebSocket connections
|
|
--max-clients "${DEVDESK_MAX_CLIENTS:-32}"
|
|
--credential "$DEVDESK_CREDENTIAL" # injected by NPM as an Authorization header
|
|
--index "${DEVDESK_INDEX:-/usr/share/devdesk/index.html}"
|
|
--debug "${DEVDESK_TTYD_LOG_LEVEL:-3}" # errors+warnings only: notice level would log the credential
|
|
)
|
|
if [ -n "${DEVDESK_BIND:-}" ]; then
|
|
args+=(--interface "$DEVDESK_BIND")
|
|
fi
|
|
|
|
# Tells `devdesk attach` it talks to a browser through ttyd (see dd_linger).
|
|
export DEVDESK_VIA_TTYD=1
|
|
|
|
exec "${DEVDESK_TTYD:-/usr/lib/devdesk/bin/ttyd}" "${args[@]}" "${DEVDESK_BIN:-/usr/bin/devdesk}" attach
|