Skip to content

Releases

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:35
7409690

Hypa 1.2.0

Hypa 1.2.0 makes typing faster, in a local pane and on a remote cube.
On a cube, most of the keys that you type show before the round trip ends.
The mux and the attach also do less work for each key and each frame.

Highlights

Typed keys show before the round trip on a cube

On a remote cube, each typed key needed one network round trip before its echo showed.
The attach now predicts the echo of the keys that you type in the focused pane.

  • The first key of a typing run waits for the cube's echo. When that echo agrees with the prediction, the next keys show at once.

  • The prediction changes only what Hypa shows. It never changes the bytes that Hypa sends.

  • A predicted character looks the same as the real one. There is no underline, dim text or other marker.

  • The cube's reply replaces each prediction. If the reply is different, the reply shows.

  • Prediction covers printable ASCII characters, Backspace, and the left and right arrows with no modifier.
    It does not predict other characters, for example accented letters or emoji.
    It works in a shell and on the alternate screen of an agent such as Claude Code.

  • Prediction stops at a password prompt: when the pane turns off its echo in line mode, Hypa predicts nothing.

  • The default, adaptive, starts to show predictions when the measured round trip to the pane is more than 25 to 30 ms.
    It stops when the round trip is 20 ms or less.
    One exception: after a prediction in the typing run matched, a later prediction that waits 250 ms for its echo shows at any round trip.
    A local pane thus shows almost no prediction.
    The setting is experimental.predictive_echo in the attach config.toml, with the values adaptive, always and never.

Faster keys and frames

  • A key goes to its pane on its own input lane. Slow work that is not for that key, such as a large paint, does not hold it.
    A key still waits for an earlier resize of its pane or an earlier focus change, so that it goes to the correct pane and size.
  • The mux paints the pane that has a key echo waiting before the other panes.
  • When most of a pane scrolls, Hypa can send the change as a row shift, not as a repaint of each row.
    It uses the row shift only when it is smaller. Otherwise it sends a normal update or a full frame.
  • Hypa continues to send frames while you resize the outer terminal.

Fewer pauses on a busy cube

When a cube pane wrote a lot of output, the mux and the accept bridge stopped for garbage collection.
A typed key that arrived during a pause waited for it.

  • The mux allocates about 80% less memory for each byte of pane output.
    In our lab, the garbage collection pause time for each MB of output went down from 24–30 ms to 4–5 ms.
  • Each hypa process no longer loads the 40 MB token vocabulary when it starts.
    The vocabulary loads when a command counts tokens for the first time.
    The accept bridge never counts tokens, so it no longer has this memory.

Fixes

  • A crashed attach now resets the outer terminal. Before, the cursor or the keypad mode of the outer terminal could stay changed.
  • The mux ends a synchronized-output block (DEC 2026) that a program did not end, after one second. Before, the outer terminal could stop showing new frames.
  • The pane terminal answers the cursor position (DSR), device attributes (DA1) and terminal version (XTVERSION) queries from the program in the pane.
    It does not answer the kitty keyboard query, because panes get legacy key bytes.
  • Scrolling and the scrollbar keep their place while a pane writes output, when the view and the mux both run 1.2.0.
  • Dependencies: the Pi package dependencies (undici and @earendil-works/pi-coding-agent) are updated.

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • Restart the local mux after you upgrade, so that the mux uses the new version.
    Use the sidebar's ↻ restart to update action, or run hypa mux restart from a terminal outside Hypa.
    A restart closes every pane and disconnects active peers.
  • Upgrade each remote cube to 1.2.0 too.
    Then restart the mux on the cube. The faster key path and the fewer pauses are in the cube's mux.
  • If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 04:45
b58b5b7

Hypa 1.1.0

Hypa 1.1.0 shows what the programs in your panes are doing, through the Program Status Protocol (OSC 7501).
It also reconnects a lost cube in place, keeps QUIC cubes on different machines apart, and fixes upgrades with the install script.

Highlights

Program status in panes (OSC 7501)

A program in a Hypa pane can now report its status with the Program Status Protocol (OSC 7501).
The states are idle, working, blocked, done and error, with an optional kind, progress and message.

  • The agents sidebar shows one status row for each pane, for example cargo working 40% Building.
  • A tab that is not in view shows a badge: ◆ blocked, ✖ error, ● 40% working, ● done.
  • A pane that needs you (blocked, done or error) shows a notice, through the ui.toast.delivery setting.
    Notices are rate limited, and a pane that is in view does not show one.
  • Hypa sends one summary of the session to your outer terminal, for example Ghostty.
    The ui.host_status setting controls this: auto (the default) sends it only after the terminal answers the detection query, on always sends it, and off never sends it.
  • done and error go away from the badge and the summary after you look at the pane. The sidebar row keeps them.
  • A report from a program takes precedence over agent detection. A report from pane.report_agent takes precedence over both.

Cubes reconnect in place

Before, a laptop sleep or a network drop left the view on a dead cube with <cube> health timed out.
Keys went nowhere until you selected Local and then the cube again.

  • The view now stays on the cube and keeps the last frame. Hypa dials the cube again at once, then after 0.5, 1, 2 and 4 seconds, then every 5 seconds.
  • For the first 2 seconds the status line stays empty. Then it shows Reconnecting to <cube>….
    After 30 seconds it shows <cube> is unreachable. Retrying…. Hypa keeps trying, and the view comes back with no input from you.
  • After a wake from sleep, Hypa finds a dead link in 3 seconds, not 10.
  • A failed connection shows its reason, for example [join_denied], and writes it to the log.
    hypa connectivity accept logs each join that it refuses.

QUIC cubes on different machines

  • hypa work placements add-quic no longer replaces a cube that has the same session name on a different machine.
    Before, a second machine that also ran session default silently took over the first cube.
    A cube is now the owner, the target and the session together.
  • add-quic --device DEVICE_ID sets the device that joins the cube.
  • With no device set, the join tries your paired devices one at a time and keeps the first one that the host accepts.
    If the host accepts none of them, the error tells you to use add-quic --device.

Fixes

  • An upgrade with the install script now changes the version.
    Before, every upgrade after the first install said that it succeeded but kept the old version.
    Run the new install.sh one time to repair an install that is affected.
  • hypa commands such as hypa run and hypa --version no longer crash when the current directory was deleted.
    This happened when an agent removed the directory that it ran in, and the next wrapped command ran from it.
    hypa mux serve and hypa serve can still fail in that case.
    Thanks to @giuseppecrj (#105).
  • The mux no longer stops sending events after a client disconnects at the wrong moment.
    Shutdown no longer hangs in that case.
  • A pane whose program exits during start-up now shows as exited, not as running.
  • A program status rename or label change is no longer lost when two updates arrive at the same time.
  • Security: System.Security.Cryptography.Pkcs is now 10.0.13, which fixes two denial-of-service faults (CVE-2026-84008 and CVE-2026-70162).

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • Restart the local mux after you upgrade, so that the mux uses the new version.
    Use the sidebar's ↻ restart to update action, or run hypa mux restart from a terminal outside Hypa.
    A restart closes every pane and disconnects active peers.
  • A remote cube must also run 1.1.0 to send program status to your view.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.8

Choose a tag to compare

@github-actions github-actions released this 06 Oct 05:59
02bc060

Hypa 1.0.8

Hypa 1.0.8 fixes panes that froze when another window or a cube peer was viewing them, and agents that appeared signed out inside Hypa panes. The in-app "what's new" overlay now shows these release notes instead of placeholder text.

Highlights

Fixes

  • Your own window keeps working while a cube peer drives your panes.
    Previously, when a peer connected to your shared cube, your local window could stop repainting and reject your typing, then close.
    The peer's connection was mistaken for your own window reconnecting, because both used the same per-mux connection number.
    Each window now identifies itself to other cubes with its own stable id.
    (#149)
  • A pane keeps updating when another window viewing it has a different size.
    The pane follows the size of the window that drives it; other windows now show it clipped or padded to fit, instead of freezing.
    This happened with two local windows of different sizes as well as with a cube peer.
    (#148)
  • Agents started in a Hypa pane see the same sign-in as a normal terminal.
    Panes now receive the standard login-session variables, including USER, LOGNAME, SHELL, TMPDIR, SSH_AUTH_SOCK and the XDG_* directories.
    This fixes Claude Code and other agents reporting that you are signed out, and restores SSH agent access in panes, for example for git push over SSH.
    Secret-like variables are still not passed to panes.
    (#146)
  • "What's new" shows the real release notes.
    Previously, it showed the same placeholder text after every upgrade.
    (#147)

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • Restart the local mux after upgrading so new panes get the login-session environment.
    Use the sidebar's ↻ restart to update action, or run hypa mux restart from a terminal outside Hypa.
    A restart closes every pane and disconnects active peers.
  • The cube freeze fix needs only one of the two machines on 1.0.8, so it also works with peers that have not upgraded yet.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.7

Choose a tag to compare

@github-actions github-actions released this 06 Oct 00:17
3ba2f94

Hypa 1.0.7

Hypa 1.0.7 keeps cube sharing available when an attach closes and restores it after mux restarts. It also fixes reconnecting to a rebooted peer, Escape leaking into shared panes, and QUIC being disabled on Linuxbrew installs.

Highlights

Fixes

  • Cube sharing keeps running after you close or detach the attach that started it.
    The mux now owns the share listener, so paired peers stay connected while your panes keep running.
    Any attach on the same mux can see the running share and stop it.
    Sharing resumes after a mux restart or upgrade, using the same certificate so saved peers keep their pin.
    If the listener fails, the mux retries automatically; the share dialog shows the error while it retries.
    The dialog also reports when share settings could not be saved, so you know whether sharing will resume after a restart.
    (#141)
  • Clicking a cube reconnects after its peer reboots or its connection closes.
    Previously, a selected cube could remain marked as connected and clicking it did nothing, leaving a frozen view.
    Hypa now checks that the connection is live before reusing it and dials the peer again when needed.
    (#142)
  • Escape closes dialogs without reaching the pane underneath.
    A lone Escape released after an input pause now follows the same dialog and menu routing as other keys.
    This fixes dialogs that would not close and shared-shell input that could lose its first character after Escape leaked through.
    (#142)
  • QUIC works on Linuxbrew installs whose group-writable directory is private to its owner.
    Previously, these installs fell back to TLS over TCP because the integrity check rejected all group write permissions.
    On Linux, the check now permits the owner's private primary group when the system's account sources can be verified as local.
    Shared groups and directories writable by other users remain rejected.
    (#140)

Maintenance

  • Make activation-pump wake tests independent of runner scheduling delays and fix a macOS Unix-socket test failure.
    (#143, #144)

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • After upgrading, restart the local mux to enable mux-owned sharing.
    Use the sidebar's ↻ restart to update action, or run hypa mux restart from a terminal outside Hypa.
    A restart closes every pane and disconnects active peers.
  • If sharing was enabled before upgrading, start it again in the share dialog after the restart.
    From then on, sharing resumes automatically when that mux session restarts, unless you press stop.
    Hypa stores the sharing settings in share.json beside the session socket; no manual configuration migration is required.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.6

Choose a tag to compare

@github-actions github-actions released this 05 Oct 05:09
8a8a974

Hypa 1.0.6

Hypa 1.0.6 detects a mux that is still running from an install an upgrade removed, explains why its new panes fail, and restarts it onto the new version in one step.

Highlights

Features

  • The sidebar offers to restart a mux left over from an upgrade.
    When the local mux runs from a removed install, a ↻ restart to update row appears at the top of the sidebar.
    Click it and confirm, and attach stops the mux, starts it from the installed Hypa, and reattaches on the new version.
    The row is not shown while you view a remote cube, because a restart would act on the local mux.
  • New hypa mux restart command.
    It stops the mux and starts it from the installed version. It asks first; without a terminal, pass --yes.
    It targets the mux named by --session or --socket.
    It refuses to run inside the mux it would restart, because stopping that mux would close the shell running the command.
  • Attach warns before connecting to a stale mux.
    On a terminal, attach explains that the mux is running from the old install and asks Continue? [y/N].
    Non-interactive and --once attaches print a warning with the hypa mux restart command.
  • hypa status shows client and server versions.
    New lines: client.version, server.version, server.install_present and server.stale.

Fixes

  • New tabs and panes on a stale mux now explain the failure.
    Previously, after a package upgrade removed the install directory, every new tab or pane failed with the generic "child/provider start failure".
    The error now names the version the mux is running and how to restart it.
  • hypa update ends with the restart step to run.
    It points at the sidebar row or hypa mux restart instead of "Please restart hypa."

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • No configuration changes are needed.
  • A mux started by 1.0.5 or earlier does not report its version, so 1.0.6 counts it as stale.
    On your first attach after upgrading, accept the restart prompt, or run hypa mux restart from a terminal outside Hypa.
    A restart closes every pane.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.5

Choose a tag to compare

@github-actions github-actions released this 04 Oct 10:33
161d215

Hypa 1.0.5

Hypa 1.0.5 keeps your local machine in the cubes list, so you can always switch back to it after connecting to a remote cube.

Highlights

Fixes

  • The local machine always appears in the cubes section.
    It is now listed first, under the machine's name, from the first launch.
    Previously, it was listed only if a local placement had been registered by hand.
    On most installs the section showed "No cubes" until you added a remote cube, and then listed only that remote.
    After you connected to the remote, there was no entry to click to get back to your own machine.
    A local placement you registered yourself is still used as-is and is not listed twice.

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • No configuration changes are needed. Cubes you have already added are kept.
  • After upgrading, close and reopen the attach client to see the local cube.
    A running mux keeps the binary that started it; run hypa mux stop, then hypa attach, to restart it with the new version.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.4

Choose a tag to compare

@github-actions github-actions released this 04 Oct 08:52
b95a24c

Hypa 1.0.4

Hypa 1.0.4 fixes cube sharing on fresh installs and restores the large startup logo in the attach client.

Highlights

Fixes

  • Sharing a cube works on the first attempt after a fresh install.
    Share → Start now creates the certificate automatically and displays an invite code.
    Previously, it stopped with "certificate file is missing" before starting the helper that creates the certificate.
    Installed builds also now start the correct helper executable, fixing the "accept helper listen json is invalid" error.
    Later shares reuse the certificate and issue a new invite.
  • The attach client shows the large Hypa startup logo again.
    The logo is now included in the packaged attach executable, which previously fell back to plain HYPA text.

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • No manual certificate setup is needed for first-time sharing.
  • After upgrading, close and reopen the attach client to use the updated sharing flow.
    A running mux keeps the binary that started it; run hypa mux stop, then hypa attach, to restart it with the new version.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 03 Oct 06:53
bd232cf

Hypa 1.0.3

Hypa 1.0.3 fixes pasting into hypa attach, keeps the workspaces panel in step with the directory you are working in, and fixes hypa attach after an upgrade from a release that left a group-writable runtime directory.

Highlights

Fixes

  • Multi-line pastes no longer run line by line inside hypa attach.
    The attach client never enabled bracketed paste on your terminal, so every newline in a paste ran as Enter in shells and coding agents.
    A pasted control byte could also trigger a Hypa keybinding; for example, a pasted ctrl+b entered prefix mode.
    Attach now enables bracketed paste and restores your terminal on detach.
    Pasted text bypasses keybindings and goes to the pane, wrapped in paste markers only when the program in the pane asked for them, as tmux does.
    Prompts, pickers, and copy mode still receive a paste as typed keys.
  • Large pastes no longer lose input or detach the client.
    Pasting more than a few hundred characters could print an input backpressure error and deliver only part of the text, or drop you back to your shell.
    The client now waits for space instead of dropping input, and the mux bounds pane input by bytes rather than by count.
    A 2 MiB paste arrives intact.
  • The workspaces panel now follows the directory you navigate to.
    The workspace path, repository name, branch, and dirty marker update as you cd, switch repositories, or leave Git.
    Each workspace takes its directory from the first pane of its first tab, not from whichever pane has focus, so splitting or switching tabs does not change it.
    If that pane closes, the next remaining pane takes over.
    Names you set yourself are kept; generated names follow the directory.
    The mux reads the directory from the shell's OSC 7 reports, or from the shell process on Linux and macOS, and resolves Git status itself.
  • hypa attach works again after upgrading from a release that left a group-writable runtime directory.
    Releases before 1.0.2 could create ~/.config/hypa/runtime/<session> with mode 0775 when the umask was 002.
    Attach then refused to start with "Socket parent ... is writable by group or others".
    Hypa now changes its own runtime directory to 0700 when you own it.
    It still refuses a custom HYPA_RUNTIME_SOCKET parent, a directory another user owns, and shared directories such as /tmp.
  • hypa -c keeps a word with quoted parts as one argument.
    hypa -c "printf '[%s]\n' --flag='(a|b)'" passed --flag= and (a|b) as two arguments, where a shell passes one.
    hypa -c and the hypa_shell tool now join the parts of a word as a shell does.
  • Pi no longer warns at startup when it loads @hypabolic/pi-hypa.
    The package now declares @earendil-works/pi-tui as a peer dependency, as Pi requires for packages it provides.

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • A running mux keeps the binary that started it.
    After you upgrade, run hypa mux stop, then hypa attach.
    Until you do, the workspaces panel does not follow your directory.
  • The session database gains two columns when the new mux first starts.
    The migration is automatic.
    Existing workspace names that match their directory become generated names and follow the directory; any other name is kept as yours.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 01 Oct 16:10
0e5bb34

Hypa 1.0.2

Hypa 1.0.2 fixes a crash on macOS when you open a new workspace, a startup failure on Linux machines with a 002 umask, and a crash in sandboxes that cannot list a parent directory.
The install script now offers your package manager.

Highlights

Fixes

  • macOS: pressing "new" in the workspaces panel could crash Hypa with a segmentation fault.
    Hypa starts the attach client and the mux by replacing its own process image.
    On macOS, that leaves the signal that the .NET runtime uses to pause threads for garbage collection in a state the runtime does not expect.
    The first pause then jumped to address 0.
    It could land anywhere, in the attach client or in the mux, which made the crash look random.
    Hypa now resets signal handling when it starts those programs, and does the same for detached custom commands.
    We saw the crash on macOS 27.0.1 with the 10.0.12 runtime.
    The runtime fixed this upstream in dotnet/runtime#132581, in 10.0.13, which is not yet released.
  • Linux: the mux now starts when the umask is 002.
    That is the Ubuntu default with user-private groups.
    Before, hypa failed with "Mux server did not become ready", and no mux.log existed to explain why.
    The runtime directory is now created with mode 0700.
    If an existing directory is group-writable, Hypa says so and prints chmod 700 '<dir>'.
    When the mux exits without writing a log, the error now names hypa mux serve --session <name> instead of a missing file.
  • hypa --version and every other command no longer crash when a parent directory cannot be listed.
    Project root detection listed each parent directory and failed with UnauthorizedAccessException.
    That happens in sandboxes such as brew test on Linux, where / cannot be listed.
    A directory that cannot be listed now counts as having no project marker.

Install

  • install.sh offers Homebrew, npm, pipx, or uv when they are available, and installs directly by default.
    Press Enter to keep the old behavior.
    The prompt also works with curl | sh.
  • If the hypa on your PATH belongs to a package manager, the script prints the upgrade command and asks before it installs a second copy.
    A run with no terminal stops with exit code 1 in that case.
  • --via script|brew|npm|pipx|uv or HYPA_INSTALL_METHOD skips the prompt.
  • The README now documents every install channel.

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host.

Upgrade notes

  • A running mux keeps the binary that started it.
    After you upgrade, run hypa mux stop, then hypa attach.
    Until you do, the mux keeps the old signal handling.
  • If you installed with a package manager, upgrade with brew upgrade hypa, npm install --global @hypabolic/hypa, or pipx upgrade hypa.
    If you installed with install.sh, hypa update upgrades in place.

Report a fault at https://github.com/Hypabolic/Hypa/issues.

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 05:07
51babad

Hypa 1.0.1

Hypa 1.0.1 makes the mux installable through Homebrew, npm, and PyPI, and fixes a hang at startup on macOS.

Highlights

Install with a package manager

Hypa 1.0.0 shipped only as a GitHub release and an install script.
The npm, PyPI, and Homebrew packages stayed at 0.1.15, and they did not carry the mux.
Each release now publishes to all three.

brew install hypabolic/tap/hypa
npm install --global @hypabolic/hypa
pipx install hypa
  • Every channel installs the same release archive that install.sh installs.
    hypa finds the mux host, the attach client, the PTY helper, and the Ghostty library next to itself.
  • The packages cover Linux (glibc 2.34 or newer) and macOS 12 or newer, on x64 and arm64.
  • Wheel tags now match the binaries, so pip no longer installs a wheel on a system that cannot run it.
  • npm and PyPI launchers repair a missing execute bit on the helper programs.

Update

  • hypa update finds Homebrew, npm, pnpm, pip, pipx, and uv installs.
    It prints the matching upgrade command, for example brew upgrade hypa or pipx upgrade hypa.
  • A package manager that owns the binary now takes precedence over an old ~/.hypa/install.json
    from an earlier script install.
    Before, hypa update could aim at the wrong copy.

Fixes

  • hypa --version and every other command no longer spin forever when macOS denies mach-lookup.
    That is the rule that brew test and agent sandboxes use.
    The default host watched appsettings.json for changes, and that watcher cannot start in such a sandbox.
    Hypa ships no appsettings.json, so the mux host, hypa serve, and the CLI no longer watch it.
  • The Homebrew formula declares the correct license, FSL-1.1-ALv2.

Platforms

  • Linux and macOS, on x64 and arm64.
  • Windows is not a mux host. The npm and PyPI packages have no Windows build.
    The 0.1.x Windows npm packages stay on the registry and are not updated.

Upgrade notes

  • A running mux keeps the binary that started it.
    After you upgrade, run hypa mux stop, then hypa attach.
  • If you installed with install.sh, hypa update upgrades in place as before.
    If you switch to a package manager, remove the script install first, so that only one hypa is on your PATH.

Report a fault at https://github.com/Hypabolic/Hypa/issues.