Skip to content

Releases: markwylde/terminay

v2.8.3

Choose a tag to compare

@github-actions github-actions released this 09 Aug 22:07

Terminay v2.8.3 fixes session-origin handoff for migrated profiles in the web manager.

Web Manager

Session Handoff

  • Fixed connections launched from the web manager to respect session-origin boundaries, ensuring migrated profiles properly delegate to their origin-bound reconnect state rather than attempting to establish remote connections through the manager.

Testing

E2E Coverage

  • Added test coverage for legacy manager migration with session-origin handoff to verify that imported profiles correctly transfer control to their respective session origins.

Release Assets

v2.8.2

Choose a tag to compare

@github-actions github-actions released this 09 Aug 19:57

Terminay v2.8.2 stabilizes the connection manager migration and packages the versioned web container image as part of the release workflow.

Connection Manager Authority

App manager cutover

Serving the browser connection manager from app.terminay.com is now the canonical authority. The app serves web clients on that exact hostname while preserving the hosted handshake and session service at *.terminay.com. Connection profiles and session-origin keys remain same-origin; no migration or deletion occurs.

Manager and runtime coordination

Updated the shared protocol and server allowlists to enforce app.terminay.com as the single browser manager origin. Fixed the connection manager to serve correctly from the app authority. Updated tests and deployment specs to reflect the new routing model.

Reliability

Process and PTY stability

Tolerated race conditions in procfs process exit detection during CI and web PIN fixture startup, and allowed bounded convergence time for PTY exit handling. These changes reduce flakiness in the main test suite without changing shipped behavior.

Release and Deployment

Versioned web image packaging

The release workflow now builds and publishes the terminay-web container image at versioned tags (latest, semantic version, and major-minor) as part of the release process. Image artifacts are bound to the exact source revision and immutably tagged in the registry.

Release workflow consolidation

Enhanced the release automation to enforce exact image artifact selection, verify the web container is bound to the release tag, and publish the resulting digest alongside desktop binaries and the standalone server package.

Release Assets

v2.8.1

Choose a tag to compare

@github-actions github-actions released this 09 Aug 10:11

This release adds specification progress tracking to the README and documentation workflow.

Documentation

Specification Progress

A new specification progress widget was added to track implementation status across Terminay features. The widget is automatically generated and displayed in the README, providing visibility into which features are fully specified versus in-progress or unspecified.

Development

Automation

Added a GitHub Actions workflow that generates and maintains the specification progress visualization, ensuring documentation stays synchronized with the current specification state.

Release Assets

v2.8.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 09:37

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

v2.7.5

Choose a tag to compare

@github-actions github-actions released this 08 Aug 15:24

Terminay v2.7.5 recovers terminal control after system sleep and strengthens E2E test stability.

Terminal Control Recovery

Sleep Resilience

Terminal presentations that remain live across operating-system sleep now automatically renew their lease when timers resume. If automatic renewal cannot restore control, the terminal visibly offers acquisition instead of silently remaining read-only and non-interactive.

Testing & Reliability

E2E Improvements

E2E tests now await bounded app command completion to eliminate race conditions in project window lifecycle assertions, preventing flaky popout-window and app-command-deadline scenarios.

Release Assets

v2.7.4

Choose a tag to compare

@github-actions github-actions released this 08 Aug 07:31

Terminay 2.7.4 isolates window close actions to the target window while preserving panels during renderer lifecycle events.

Project window close protection

  • Closing a project window now closes only that window and detaches its workspace view, leaving sibling windows intact and usable.
  • Close dialogs correctly distinguish between closing a single project window ("Close Window") and quitting the application ("Quit Terminay").

Renderer lifecycle and panel state

  • Panels are now preserved when the renderer unloads, ensuring that a refreshed or reconnected renderer restores the same panels and terminal sessions without recreating them.

Testing and infrastructure

  • Added comprehensive e2e tests for project window close isolation and cross-window workspace integrity.
  • Extended close-confirmation test coverage to validate scoped window closure and application lifecycle behavior.

Release Assets

v2.7.3

Choose a tag to compare

@github-actions github-actions released this 08 Aug 06:37

Terminay v2.7.3 improves resilience for remote access and project management across window tear-off and network recovery scenarios.

WebRTC Remote Access

Transient Disconnect Recovery

Transient WebRTC ICE disconnections no longer detach authenticated browser sessions. The connection now gracefully recovers using the existing peer when the transport returns to health, preserving terminal and application state without requiring a manual refresh. Permanent failures and expired recovery timeouts close the connection exactly once.

Workspace and Project Tabs

Project Identity Across Window Tear-Off

Project tear-off now preserves the canonical project, panel, and terminal session identities when moving between native windows. The destination window renders only the moved project's view and never momentarily commits unrelated projects. Refreshing either renderer reproduces the same project split from the server snapshot.

Agent Status and Sidebar

Stale Agent State After Resync

Agent status projection now correctly handles reconnect and resync boundaries after a server restart. A replay-gap resync replaces stale completed states, resumes working agents, and admits newly discovered concurrent agents without applying stale revision fences.

Release Assets

v2.7.2

Choose a tag to compare

@github-actions github-actions released this 07 Aug 21:25

v2.7.2 aligns Git tree file interactions with the Explorer's filesystem operations contract.

Git sidebar file operations

Context menu and folder interactions

The Git panel's changed-file tree now mirrors the Explorer sidebar's filesystem interaction contract. Folder rows support file creation, renaming, deletion, and OS reveal actions through context menus, while double-clicking a folder opens a Folder panel without changing its disclosure state.

File and folder management

Create new file and folder actions are available on folder rows in the Git tree. Rename and delete operations are now available for both files and folders, with a dedicated "Reveal in OS" action to open paths in the host's file browser.

Testing

Updated acceptance coverage

End-to-end tests verify that Git tree folders expose the same applicable filesystem actions as Explorer entries, including create, rename, delete, copy-path, copy-relative-path, shell, and OS-reveal operations. File rows correctly omit folder-only actions, and folder disclosure states remain unchanged when opening Folder panels.

Release Assets

v2.7.1

Choose a tag to compare

@github-actions github-actions released this 07 Aug 18:57

Terminay v2.7.1 adds secure audio access for desktop dictation while maintaining the deny-by-default security posture of the Electron app.

Security Permissions

Desktop Dictation Audio

Trusted application and settings windows can now request audio permissions for dictation. The new permission handler validates that audio-only requests come from trusted windows, upholding the security policy while enabling voice input functionality.

Testing

E2E Reliability

Web PIN enrollment bootstrap now uses explicit timeout and wait conditions to accommodate cold Vite compilation times during test execution.

Release Assets

v2.7.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 16:14

Terminay v2.7.0 adds on-device Parakeet dictation for Apple Silicon Macs and protects running terminal work on close.

Dictation

On-device Parakeet transcription

Terminay now supports on-device speech-to-text transcription using Parakeet on Apple Silicon macOS. Users can install the pinned Parakeet model and transcribe audio locally without sending data to OpenAI. The Dictation settings now let users choose between OpenAI and On-device (Parakeet) providers, with provider-specific configuration and installation status displayed inline.

Parakeet setup and lifecycle

The Parakeet runtime can be explicitly installed from the Dictation settings. Setup progress is displayed with phase-based status (unavailable, not-installed, installing, ready, or error), and the runtime stays warm for subsequent transcription requests. Audio and transcripts are never persisted to the model cache.

Workspace

Close confirmation for running terminals

Busy terminals, projects containing busy terminals, and the application itself now show a context-specific close confirmation dialog when closed. The dialog defaults to Keep Running to prevent accidental termination of live work. Idle terminals, projects, and the app close immediately without confirmation.

Activity tracking improvements

The server now publishes foreground-process state in activity snapshots so the Desktop can distinguish idle shells from running sessions. The activity protocol includes normalized foregroundBusy events and status for accurate session state reporting.

Testing and reliability

End-to-end test refactoring

The E2E test suite was stabilized and aligned with Electron delivery constraints. Scenario and operation budgets are separated; fixtures are scoped; web readiness and terminal rendering are awaited; and graceful teardown keeps cleanup within resource budgets. CI delivery jitter is tolerated with bounded timeouts, and settings windows close gracefully during test cleanup.

Release Assets