You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Supervised both ttyd endpoints with independent health probes, automatic
crash recovery, and truthful active, degraded, or off state.
Kept the preferred /term route and compatibility fallback synchronized
without caching endpoint health.
Prevented the touch toolbar from widening or horizontally shifting phone
pages.
Made selected Ctrl+C copy the exact xterm selection without sending SIGINT;
ordinary Ctrl+C still reaches the shell when nothing is selected.
Preserved direct input, iframe identity, and WebSocket identity during
height-only keyboard animation and theme changes.
Mobile and tablet
Phone portrait and coarse-pointer tablet portrait use one visible surface at
a time. Touch landscape splits only when both panel and terminal retain their
minimum usable widths.
Tabs are 44 px high, the terminal toolbar is a stable non-overlay row, and
all toolbar controls are at least 40 px high.
Toolbar panning remains native and independent from terminal gestures.
Terminal swipes scroll tmux history per pane, text selection remains
available in selection mode, and long-press border drags resize horizontal
and vertical tmux splits.
Clipboard paste supports the browser API plus a manual dialog fallback.
Bruno theme
Added the bruno theme across the dashboard, xterm, GTK/VTE, and tmux chrome.
Bruno uses the dark neutral surface and yellow brand palette while retaining
distinct ANSI colors and readable selection, border, status, and message
states.
Theme changes propagate live without recreating the terminal iframe or tmux
client.
Compatibility
Existing tmux sessions, windows, panes, PWDs, foreground processes, and pane
IDs are preserved.
The custom terminal remains preferred at /term; the ttyd compatibility
endpoint remains available on :8443.
The browser harness supports the installed tmux 3.2a configuration and does
not assume a zero-based pane index.
Teach this change and learning/skill storage were intentionally not
implemented in v1.6.0.
Verification
pytest -q: 320 passed in 43.83s.
All four shell fixtures, Bash syntax, Python compilation, JavaScript parsing,
Node syntax, and git diff --check passed.
Real remote E2E passed at 320x568, 390x844, 834x1112, and 1194x834,
with one active terminal iframe in every viewport and split mode only at 1194x834.
Real gestures proved toolbar pan, tmux history scroll, exact selection copy,
and horizontal plus vertical pane resize.
Bruno -> Day -> Bruno preserved one iframe, one WebSocket, and one tmux
client. Native GTK/VTE and all expected tmux styles were inspected live.
Primary ttyd crash recovery changed PID 210393 to 217733 while its
disposable tmux pane survived.
The final dashboard, fallback ttyd, primary ttyd, and native app were active
as PIDs 208148, 288780, 288782, and 320254 respectively.
The 33-pane before/after inventory was byte-identical
(8664bed266f404e0360727c9d3f94b36fcf3319336df99b04e0c0a409685b10b),
as was the 15-session inventory
(46edf4980827f5cd0f19807762aa45bb5cbe0b8c0f607bacc81d1a1c34dc5f47).