1.0.3 (2026-04-01)
- cli: scaffold portable configs and support base paths (816dcb6)
- serve: canonicalise prefixed app entry (d03168b)
1.0.2 (2026-03-29)
1.0.1 (2026-03-27)
- setup: clarify config auto-discovery validation (99267f3)
1.0.0 (2026-03-27)
- guard handleClientMessage against resize on exited PTY (41043ee)
- load Unicode11Addon on headless mirror to align character widths (54a3ec5)
- remove terminal padding that exposed white document background (cd92504), closes #terminal
- set document background from theme to eliminate white border (5c821ca), closes #1e1e2e #terminal-container #terminal
- strip TMUX env vars via destructuring instead of undefined assignment (33fa6ec)
- mark built-in runtime migration as breaking (20d466b)
- remobi replaces the ttyd-based runtime with the built-in terminal runtime.
1.0.0-dev.1 (2026-03-27)
- mark built-in runtime migration as breaking (20d466b)
- remobi replaces the ttyd-based runtime with the built-in terminal runtime.
0.5.1-dev.2 (2026-03-24)
- load Unicode11Addon on headless mirror to align character widths (54a3ec5)
- remove terminal padding that exposed white document background (cd92504), closes #terminal
- set document background from theme to eliminate white border (5c821ca), closes #1e1e2e #terminal-container #terminal
- strip TMUX env vars via destructuring instead of undefined assignment (33fa6ec)
0.5.1-dev.1 (2026-03-22)
- guard handleClientMessage against resize on exited PTY (41043ee)
0.5.0 (2026-03-20)
- ci: pin ttyd 1.7.7 via mise β fixes prefix e2e failures (2e88df3)
- prefix button sends prefix then opens combo picker (cae17de)
0.4.0 (2026-03-20)
- add double-tap gesture for configurable terminal action (7999f8e)
0.3.1 (2026-03-20)
- prevent synthesised click from closing overlays opened by touch (e5a625d)
0.3.0 (2026-03-20)
- prevent drawer from immediately closing on touch devices (5cbfefe)
- stop buttons opening keyboard on Android (d40fa46)
- show version in help overlay (eab3272)
0.2.7 (2026-03-19)
0.2.6 (2026-03-17)
- ci: gate release on CI success (0171dcf)
0.2.5 (2026-03-17)
- add WS relay buffer size limit (40478fb)
- apply origin check to catch-all ttyd proxy (240d8c3)
- scope CSP connect-src WebSocket to same host (75f2149)
- seal __remobiSockets global (be6e2db)
- tighten CSP with script-src directive (5a076fe)
- use crypto PRNG for internal ttyd port (10e7493)
0.2.4 (2026-03-16)
- security: escape font CDN URL and tighten WS origin check (1c55d5c)
0.2.3 (2026-03-16)
- serve: default remobi serve to localhost (6b8706e)
0.2.2 (2026-03-16)
- guard process.argv[1] for strict index access (fd07a60)
0.2.1 (2026-03-15)
- resolve symlink in entry guard so npx execution works (f2409e1)
0.2.0 (2026-03-15)
- ci: add npm to mise.toml for OIDC trusted publishing (62bfd3a)
- exclude package.json from Biome formatter (eb88ac5)
- remove leading ./ from bin path for npm 11 compatibility (b350ecb)
- remove redundant checks from prepublishOnly (9f2247c)
- add pixel R> logo and integrate across project (0235c4b)
- migrated from Bun to Node.js 22+ with pnpm β runtime is now Node, bundler is esbuild, test runner is vitest, transpiler is tsdown;
remobi serveuses Hono + @hono/node-ws; package ships transpiled JS (dist/) instead of TypeScript source - unified toolbar/drawer model to
ControlButton(id,label,description,action) and renameddrawer.commandstodrawer.buttons floatingButtonschanged from flatControlButton[]toFloatingButtonGroup[]withposition, optionaldirection, andbuttonsarray- removed plugin system (
RemobiPlugin,UISlot,UIContributionCollector, plugin manager, UI contributions, build-time resolution,config.plugins) β hooks and actions remain as core infrastructure
remobi serveβ single command with full PWA support, overlay build, ttyd lifecycle, manifest + icons + WebSocket relay- PWA support β web app manifest, 192/512px icons, apple-touch-icon, theme-color meta tags for "Add to Home Screen"
- reconnect overlay β detects connection loss via WebSocket interception, auto-reconnects on browser online event
remobi serve --no-sleepβ prevents macOS system sleep viacaffeinate -s -w <pid>floatingButtonsconfig β always-visible buttons on touch devicesgestures.swipe.left/rightandleftLabel/rightLabelfor configurable swipe actionsmobile.initDataβ arbitrary data sent to terminal on mobile init below width thresholdpwaconfig section (enabled,shortName,themeColor)- top-level
nameconfig field β used as document title, PWA manifest name, apple-mobile-web-app-title - default toolbar backspace button (
β«) for reliable mobile deletion - new drawer
Comboaction (combo-picker) for explicit Ctrl/Alt key sends - default toolbar
qbutton (row 2) for quitting interactive TUIs - explicit tmux
Prefix(C-b) andAlt+Entertoolbar buttons - dynamic help overlay rendered from current config
- runtime config validation with path-based errors and unknown-key checks
- stricter CLI parsing (
-c/-o/-n, unknown-flag errors) plus--dry-runforbuildandinject - action registry abstraction for toolbar/drawer button handling
- typed hook registry for overlay lifecycle and terminal send pipeline
- declarative button customisation via
ButtonArrayInput - per-machine config overrides via
.localconfig file - overlay pre-built as IIFE during
build:distβ fasterremobi servestartup
- visibilitychange listener leak in reconnect dispose path
- reconnect overlay retry on any tap, focused button for keyboard
Enter, duplicate reload guard - unhandled promise rejection when
document.fonts.readyfails - help overlay rewritten to DOM API (no innerHTML), eliminating XSS surface
- PWA meta-tag values HTML-attribute-escaped
waitForTermrejects after timeout (default 10s) instead of polling indefinitely- help overlay is fail-safe and cannot block core overlay init
- viewport/keyboard height handling and document scroll lock for mobile