v2.8.0
v2.8.0 converges the browser connection manager to a single canonical origin with a tested legacy migration path and verified deployment contract.
Browser connection manager and pairing
The canonical web.terminay.com manager now provides one complete pair, save, and reconnect journey from every connection state. A visitor can paste a pairing link, complete enrollment with device name and PIN entry, connect immediately, and return later through a saved connection without reusing the one-time link. Connection profiles persist exact-origin credentials and device keys; metadata-only profiles without credentials clearly indicate that fresh pairing is required.
The pairing workflow validates and consumes the one-time fragment in memory before clearing it from the visible URL and browser history. Newly paired profiles connect immediately, atomically committing both the protected reconnect material and sanitized metadata only after both succeed. Re-pairing an existing session origin updates the saved profile and credential rather than creating a duplicate card or leaving the old grant active.
Legacy manager migration and redirect
app.terminay.com no longer serves an independently evolving manager. It instead performs a bounded, tested metadata-only migration from the documented legacy profile storage to the canonical origin through a one-time handoff in the browser context's window name. The migration excludes pairing fragments, reconnect grants, device keys, PINs, terminal data, and arbitrary fields.
The canonical manager consumes the handoff once, upserts profiles by stable identity and exact session origin, clears the handoff from browser history, and redirects future visits to web.terminay.com. Profiles without origin-bound credentials are marked as requiring fresh pairing. Failed imports leave the legacy record available for retry; successful imports trigger acknowledgement-gated cleanup at the legacy origin while preserving all session-origin credentials untouched.
Deployment and verification
The web-image.yml workflow now supports manual dispatch for controlled releases as well as the intended version-tag trigger, with every image bound to an immutable digest, source revision, SBOM, and provenance record. The /healthz endpoint now returns JSON {"ok":true} consistently across nginx, Docker health checks, deployment verification, and tests. Security headers including CSP, COOP, permissions policy, referrer policy, content-type protection, and frame denial are now reconciled between nginx configuration and the public verifier.
A new build-time integration test starts the actual production web image and runs the deployment verifier against it, catching contract drift between source configuration and the verifier without public network access. The verifier now identifies the expected release revision or image digest through a non-secret artifact marker, rejecting the legacy manager document, fallback signaling service, missing hashed assets, redirects, host-routing failures, and otherwise healthy but incorrect origins.
Hostname routing is hardened: web.terminay.com serves only the canonical static manager, app.terminay.com serves only the bounded migration redirect, and session/signaling hosts retain separate authority. A documented rollback procedure restores the prior immutable image and routing without deleting legacy metadata or session-origin reconnect credentials.
Test coverage and evidence
The canonical pairing coordinator and vault operations are exercised by dedicated pairing and local web-host tests, with metadata-import explicitly kept as an advanced operation that cannot report pairing success. Browser-local commits now use reversible exact-origin vault and device-key operations; credential storage failures restore the prior credential, and concurrent pairing cannot overwrite newer grants.
The exact manager-origin contract and bounded legacy migration protocol are covered by protocol tests, comprehensive legacy-migration tests, and Docker browser E2E. The deployment workflow, release marker, health response, headers, rollback procedure, and unknown-host rejection are guarded by source tests. Historical evidence gaps have been corrected to acknowledge that migration was a design milestone until the bounded implementation and Docker browser E2E are complete.
Release Assets
- macOS installer: https://github.com/markwylde/terminay/releases/download/v2.8.0/Terminay-Mac-2.8.0-Installer.dmg
- Linux AppImage: https://github.com/markwylde/terminay/releases/download/v2.8.0/Terminay-Linux-2.8.0.AppImage
- Standalone server: https://github.com/markwylde/terminay/releases/download/v2.8.0/terminay-server-2.8.0.tgz