Skip to content

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 15 Sep 02:38
· 45 commits to main since this release

Changelog

  • 617fe6d chore(release): bump to v0.20.6
  • 9f5fbd6 chore(release): bump to v0.21.0
  • dd065fd feat(config): hostname override for sockets and backend identity
  • cad8da5 feat(fast-mode): browser mobile flag as third OR input
  • b3ccb12 feat(history): archive overlay surfaces recorded history off the live terminal
  • 7b61b54 feat(history): cache recordings off the live path (storage tier)
  • f0cc197 feat(history): parse recordings off the live terminal path (worker + headless)
  • eded28f feat(kb): remote keyboard page (input.html) + pane input endpoint
  • 603b364 feat(quota): sidebar quota button with provider overlay
  • 19ff0b3 feat(sync): hash-cache negotiation for recording fetches
  • 10f0331 feat(term): console perf readout for the tablet gate
  • 0cce971 feat(term): mobile-only scrollback lane, keyboard recovery, compression guard
  • b49bbfc feat(term): restore bounded screen checkpoints via hot-v1 attach
  • a9f8323 feat(viewport): portrait-tall windows always drawer Sessions
  • d2424c4 feat(ws): sequence output and negotiate live-only attach
  • 2cc02ca fix(ci): biome optional chain in _onAttachHead
  • 71f1424 fix(ci): drop unused fmtDur in quota
  • eb9cb34 fix(ci): format sweep file
  • 9195f96 fix(ci): gofmt recording branch, biome optional chain
  • 6316319 fix(ci): no assignment in drain-waiter expression
  • 6ec5548 fix(ci): optional chains filetree and resize guard
  • 7a193d2 fix(ci): satisfy biome ci errors and rebase-marker cleanup
  • 987152c fix(ci): template literals and linear build in sweep
  • 2e49f97 fix(config): cmds paste accepts what copy produces
  • f978baf fix(desktop): don't read webContents off closed picker/menu windows
  • aaf5935 fix(desktop): vendor before tests so suite never runs stale
  • 71408a8 fix(desktop): vendor history.js and archive.js for desktop vitest
  • c23e53d fix(files): list everything inside ignored dirs, not just markdown
  • b909aa5 fix(hud): keep the brand self-HUD out of the sessions slide-out
  • 1c5595a fix(kb): Enter is CR + staged-bar byte parity; real auth in input.html
  • 53e6ae5 fix(lint): biome format on cmds import test
  • 8e90608 fix(lint): drop unused isCompactViewport import in web/app.js
  • 8bb00f0 fix(mobile): coalesce keyboard geometry into one scroll-neutral fit
  • d010f5a fix(mobile): keyboard never refits, resends, or scrolls
  • 963e4ea fix(mobile): route input focus/blur refits through the keyboard path
  • a768d8f fix(modal): cap content at viewport with body as scroller in base rules
  • 0667e82 fix(quota): scope the source-row Save button off full-width .btn
  • c666144 fix(term): architect block — watermarks, UTF-8, resize retry, callback guard
  • a6a2325 fix(term): dead-tab callbacks release drain waiters
  • b2c36fe fix(term): delta fetch degrades cleanly without AbortSignal.timeout
  • afeaa92 fix(term): drop checkpoint upload when terminal is gone
  • dc0ba3b fix(term): flood-throwing xterm write cannot brick the pump
  • 5b183c8 fix(term): gap patches dissolve on newer bootstrap generation
  • c712f7f fix(term): heal small live gaps instead of always dropping
  • 0e43cea fix(term): ordered bootstrap, stale-socket guards, bounded fetch
  • 70c0731 fix(term): overlapping bootstraps converge on newest generation
  • f5169d6 fix(term): prune settled bootstraps, swallow their rejections
  • 9c82b4b fix(term): restore 10000-row live scrollback, archive covers deep history
  • cca70da fix(term): skipped fits still size unsynced backend sockets
  • 58a65d8 fix(term): skipped-fit mark, gap comments stop promising an archive
  • e307282 fix(term): stale gate-waiters dissolve instead of double-patching
  • c9ac788 fix(test): whitespace-insensitive aspect prelude match
  • ee4a53f fix(tests): poll for auth button restore instead of one fixed tick
  • ae68845 fix(ws): gap flush stops at holes, patches serialize per tab
  • 4fbc90c fix(ws): keep epochs inside double-safe range for JSON clients
  • 0256cc1 fix(ws): malformed attach head redials instead of holding forever
  • 3f87f0b fix(ws-src): gap flush stops at holes, source of emitted ws.js
  • 7309b53 perf(preview): lazy-load Viewer.js, Plyr, json-viewer on first open
  • 9d79392 perf(term): cap live scrollback and remove replay from hot-v1
  • 26098a0 perf(term): instrument attach, writes, and fits
  • 72bdd97 perf(term): no sidecar, same-dims fits free, full scrollback kept
  • 4f27c17 perf(term): single DOM measure feeds font resolve and fit-skip
  • 56c6318 test(kb): pin input.html locked-server login flow end to end
  • 49b39a9 test(term): busy attach plus mid-bootstrap gap heals in order
  • 1721aa4 test(term): drain advance gates checkpoint watermark by mode
  • 9792a14 test(term): output-dropped banner stays off seq accounting
  • 127ed18 test(term): poll gap-tail settlement instead of fixed sleep
  • 9f35547 test(term): xterm write sweeps plus shared headless loader
  • 512b54c test(ws): gate hot attach bytes vs legacy full replay
  • f3d6fb5 test(ws): max-safe-integer epoch survives attach parse