| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-08-13 | 3.4 kB | |
| v2.8.7 source code.tar.gz | 2026-08-13 | 2.7 MB | |
| v2.8.7 source code.zip | 2026-08-13 | 3.5 MB | |
| Terminay-Mac-2.8.7-Installer.dmg | 2026-08-13 | 185.1 MB | |
| Terminay-Mac-2.8.7-Installer.dmg.sha256 | 2026-08-13 | 99 Bytes | |
| Terminay-Linux-2.8.7.AppImage | 2026-08-13 | 210.0 MB | |
| Terminay-Linux-2.8.7.AppImage.sha256 | 2026-08-13 | 96 Bytes | |
| terminay-server-2.8.7.tgz | 2026-08-13 | 449.8 kB | |
| terminay-server-2.8.7.tgz.sha256 | 2026-08-13 | 92 Bytes | |
| terminay-server-2.8.7.tgz.sig | 2026-08-13 | 64 Bytes | |
| Totals: 10 Items | 401.7 MB | 0 | |
Terminay v2.8.7 strengthens remote workspace recovery with a unified connection controller and single-owner WebRTC transport architecture, ensuring exact terminal input ordering and elimination of silent reconnect failures.
Remote connection and recovery
Unified transport architecture
- Replaced overlapping connection entry paths and split bridge model with one stable connection controller keyed by profile identity.
- Made the session transport host the sole authority for WebRTC signaling, peers, data channels, and generation management.
- Eliminated raw
RTCDataChannelexposure to the server-bundled application and separate enrollment/recovery contracts.
Deterministic recovery behavior
- Unified initial pairing, automatic recovery, and manual Retry through a single state machine covering idle, connecting, authenticating, resubscribing, hydrating, connected, retry-wait, blocked, and stopped phases.
- Closed and fenced old clients synchronously at generation retirement; fully authenticated, resubscribed, and hydrated new terminal panels before publishing the connection as usable.
- Proved via native WebRTC testing that required-lane closure triggers immediate replacement regardless of peer connection state, eliminating the scenario where Retry cleared presentation but left terminals unable to deliver input.
Terminal state during recovery
- Preserved the mounted terminal emulator and render position across recoverable failures while discarding uncertain input queues.
- Resumed terminal hydration against the replacement client exactly once, preventing duplicate commands or missed state after reconnect.
- Bound complete renderer generation lifetime so transport failures during hydration return to retry-wait rather than trapping Retry indefinitely.
Testing and acceptance
- Expanded native WebRTC test coverage to inject faults on individual required lanes while the peer remains connected, proving single-owner recovery works for control, application, terminal, and assets lane failures.
- Covered offline/online transitions where Retry is invoked repeatedly during backoff, with network restoration coalescing into one successful replacement generation.
- Asserted exact cardinality of peer generations, data channels, application connections, and mounted PTY across all native failure modes.
Workspace and panel handling
- Fixed panel close convergence by reconciling confirmed closes at the server; kept empty selections JSON-safe across sequential panel removals.
- Improved e2e determinism for sequential panel operations and deterministic tab drop gestures through the file explorer.
Infrastructure and documentation
- Moved completed task specifications to
tasks_completed/and advanced three major recovery-related tasks to permanent documentation. - Documented single-owner WebRTC generation boundaries, unified renderer connection state machines, and native recovery acceptance criteria.
- Updated remote access and terminal stream congestion specifications with recovery ownership and lifecycle requirements.
Release Assets
- macOS installer: https://github.com/markwylde/terminay/releases/download/v2.8.7/Terminay-Mac-2.8.7-Installer.dmg
- Linux AppImage: https://github.com/markwylde/terminay/releases/download/v2.8.7/Terminay-Linux-2.8.7.AppImage
- Standalone server: https://github.com/markwylde/terminay/releases/download/v2.8.7/terminay-server-2.8.7.tgz