Skip to content

MyTerm v0.38

Choose a tag to compare

@GordonBeeming GordonBeeming released this 26 Sep 15:57
· 4 commits to main since this release
5e3fbdc

Fixes connections being dropped on a timer while in active use, and terminals that never finished attaching afterwards.

Connections no longer expire while you are using them

The relay closed each connection when the access token it was opened with ran out, so a busy session was dropped roughly every 15 minutes however much was flowing through it, and a connection opened late in a token's life could last seconds. A connection now renews itself in place: the peer presents a refreshed token before the current one lapses and the relay extends the connection after revalidating it. A device that can no longer obtain a valid token still stops at its last validated expiry, so revocation is unchanged.

A burst of terminal output could also overflow the relay's send queue and cost the reader its connection. The queue is deeper and briefly-full queues now slow the sender instead of disconnecting the receiver.

This half only takes effect once your relay is redeployed. The apps negotiate the capability, so they are safe to update first.

Terminals re-attach after a reconnect

On a narrow screen the companion could sit on "Attaching terminal" indefinitely after reconnecting, and only leaving the workspace and returning would load it. Three separate causes are fixed: the attach was never retried once a connection came back, a failed attach left nothing behind to retry, and the lock guarding attachment could be left holding a permit that was never released.

Diagnosability

The relay now records why a connection ended, including slow receivers and rejected renewals, which it did not before. protocol.md documents the renewal exchange.

Install

brew install --cask gordonbeeming/tap/myterm

Apple silicon only.