Releases: attacca-cc/zyris-code
Release list
v0.2.8
A new version is offered, not installed
Updating no longer happens by itself unless you ask for it. Installing unasked replaces the program
you are in the middle of using, and the wait lands on a launch you meant to spend on something else.
A newer release is now mentioned in the conversation and /update installs it. auto is still one
setting away (/config), and anything you have already set is left alone.
--version and --help no longer walk to the right
On Windows these ended their lines with a bare newline, which a console in virtual-terminal mode
takes literally: the cursor drops a row and stays in the column it was in. So the shell's next
prompt appeared indented under the end of the version, and --help started each line further right
than the last. Measured on a Windows 11 machine — twelve bytes, no carriage return.
The fade stays on what opened
Opening a tool or a stretch of reasoning faded everything below it as well. The lines a fold reveals
were bounded by the next thing that folds, and the agent's answer does not fold — so there was
nothing to stop at until the end of the conversation. A reveal now stops where its own card does.
Reasoning sections fade the same way as tools, which is what they should have been doing.
The head waves while a turn runs
The line that says what is being worked on now has a crest of brightness travelling along it. The
letters do not move — there is nothing to move on a terminal but the colour — and it stops when the
turn does. It is drawn in a few spans rather than one per letter, so it costs the wire almost
nothing on the frames between.
What changed
- feat(ui): wave the running head, and keep a reveal's fade to what opened
- test(pty): ask for updates to install themselves, now that they do not
- fix(print): answer a question instead of waiting for ever
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.8.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.7
Things move rather than jump
A tool that is waiting used to flash on and off twice a second, which pulls the eye away from
whatever is being read. It breathes now — its colour goes out toward the background and comes back
over a second and a half, and never all the way out, because a dot that vanishes reads as one that
finished.
Opening a card, a reasoning chip or a tool row now brings its body up out of the background over a
quarter of a second instead of dropping it onto the screen in one step, so the eye is led to what
opened. Both are the same idea the web page uses; a terminal has no opacity to turn down, so what
moves is the colour itself, toward what is behind it.
Closing something forgets what was open inside it
Open a finished card, open a tool inside it, close the card — and opening it again brought that
tool's output straight back, minutes and one deliberate collapse later. Every foldable thing lived
in one flat list, so shutting a card left its contents' state behind. Closing something is how you
say you are done with it, and what is inside goes with it.
What changed
- feat(ui): fade the waiting dot and the body of a fold as it opens
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.7.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.6
Windows starts without the Visual C++ redistributable
The Windows build linked VCRUNTIME140.dll, which is not part of Windows — it arrives with the
Visual C++ redistributable. Without it the program did not start at all: Windows put up its own
dialog saying it could not be started and that reinstalling might fix the problem, which is a lie
in a helpful voice, since reinstalling brings the same binary and the same missing DLL. Reading the
shipped executable's import table on a Windows 11 machine confirmed it. The C runtime is linked
into the binary now, so there is nothing left to be missing.
Selecting by dragging follows the mouse while the conversation scrolls
Scrolling with the button still down slid the whole highlight away from the pointer, so dragging
out to the edge and scrolling to reach further took in nothing new. The two ends move differently
now while the button is down: the anchor travels with the word it was put on, and the end under the
pointer stays on its cell. Carrying both together is right once the button is up, and still is.
A selection being made is also no longer thrown away by scrolling — that is how one longer than the
screen gets made — and an anchor scrolled out of sight comes back to the line it was put on rather
than to the edge it was held at.
The frame around a code block is no longer copied
Dragging across a code block came back with ┌─ powershell and └─ wrapped around it: drawn by
the screen, written by nobody, and nothing a shell will take. A table keeps its border, which is
the same characters doing a different job.
/update looks before it closes anything
/update on an up-to-date copy tore the conversation down to print "already the newest" at a shell
prompt. Closing the screen is what hands the installer the terminal, so it used to happen first and
the check came after. It now asks first, and only an answer that names a release closes anything.
Switching into a session that is still working shows it working
It read the session's past and then sat idle with no live updates. The live feed was being opened
from a path a switch never travels.
Also
- A new-version notice under
notifywent to the status line, which "connected" took a moment
later. It goes into the conversation now. - With two windows open,
/configin the second showed the settings that window loaded at launch
and could save them back over the first one's change. It reads from disk when it opens. /helplists the other names a command answers to —/quitis also/exit,/changesalso
/diff. The parser always took them; nothing said so.
What changed
- fix(windows): link the C runtime statically, and four selection/update fixes
- style: wrap the code-fence test the way rustfmt does
- test(pty): judge the yank by the word coming back, not by finding it joined
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.6.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.5
Windows: self-update now takes, and three fixes besides
Self-update was failing on Windows. It downloaded the new version, checked it,
and then failed at the last step — placing the binary — with a PowerShell error
about a null drive. The install never took, so every launch found the release
again and tried again, and /update kept offering it.
The cause: the app reads where it is installed with a call that, on Windows,
returns the extended-length form of the path (\\?\C:\...). That was handed to
the installer, and PowerShell's Join-Path cannot parse that prefix — it stops
with "the value of argument 'drive' is null" and exits before the binary is
copied. The app now hands over an ordinary path, and the installer also strips
the prefix defensively, so a copy already on an older version is rescued the
next time it updates — it fetches this installer fresh. Measured end to end on a
real Windows 11 machine: with the extended-length path passed in exactly as the
old code produced it, the install completes and the new binary runs.
Switching into a session that was still working showed nothing. It read its
past and then sat on "taking a break" with no live updates, even while the agent
kept going. The live turn feed was being opened from the wrong place — a path a
switch never travels — so a session reached by switching never got one. It is
opened where the history actually lands now.
A new-version notice vanished before it could be read. Under notify it went
to the status line, and "connected" landed right behind it and took the line.
The notice now goes into the conversation, where it stays until it is scrolled
past.
A second window's /config showed stale settings. With two windows open,
one changed a setting and the other still showed the old one — and saving from
the stale window would have written the old values back over the change. /config
now reads the files when it opens, so it shows what is on disk and adopts it.
/help now lists the other names a command answers to. /quit has always
also been /exit, /changes also /diff — the parser took them all along, but
nothing said so. They are printed beside the command now.
What changed
- fix(windows): make self-update take, and fix live session, notice, config
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.5.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.4
If you are on Windows, take this one
0.2.3 broke the mouse there: dragging to select stopped working at all. This
fixes it, and nothing else in 0.2.3 is affected — every other platform included.
The cause was a change made in 0.2.3 on reasoning rather than measurement.
Windows is asked for the mouse through the console, and 0.2.3 also sent the
escape sequence a terminal reads, on the theory that the console request does
not always reach it. Asking both ways gets the events delivered in a shape the
Windows code path does not parse, so none of them arrive. The console request
is on its own again, and the escape is kept only for the case where there is no
console to ask — a program talking over pipes, like mintty.
What changed
- fix(mouse): take the mouse the way Windows was already taking it
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.4.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.3
Updating to this one is the last odd one
If you are on 0.2.2, this upgrade will install correctly and then look like the app
quit. Start it again and you will be on 0.2.3; from there updates behave.
The reason is in the version you are leaving. Until now the update ran from inside the
screen: the app wrote a helper out, started it detached and exited, and the helper waited
for that exit before installing and starting the new binary. On Windows that last step
gives a console program a console of its own, so the window you were watching was left
with nothing in it. On Linux the helper's output went nowhere, which reads as the shell
coming back.
That code is in the old binary, so it is what runs this one time. 0.2.3 does the whole
thing at launch, on the terminal you started it from — printing as it goes, and coming
back on the new version in that same window.
What changed
- refactor(tools): one edit tool instead of two
- fix(mouse): tell Windows in both of the places it listens
- fix(update): install before the screen, in the terminal that started it
- fix(selection): carry the highlight with the conversation when it scrolls
- feat(install): show how far a download has got
- fix(selection): copy the character the drag ends on
- test(mcp): give discovery a home of its own to look in
- chore(release): 0.2.3
- fix(print): give up on the connection instead of waiting for ever
- feat(input): walk a multi-line draft with the arrows
- build: keep the unix-only code out of the Windows build, and fail on warnings
- fix(selection): leave the screen's own margin out of a drag
- fix(build): gate the kitty probe's tests with the probe itself
- ci(release): let a release say something of its own at the top
- ci(release): keep the per-release note where git will take it
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.3.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.2
What changed
- fix(update): install without waiting for a keystroke
- fix(input): survive a terminal that reports no room
- chore(release): 0.2.2
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.2.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.1
What changed
- fix(cli): let zsh keep ? and * in an unquoted prompt
- feat(picker): delete a project with Del, after asking
- ci: run fmt, tests and clippy on push and pull request
- docs: notes say what changed, and the README stops copying /help
- chore(release): 0.2.1
- test(gate): weigh a tilde against the real home, not one machine's
- test(mcp): make the fake server speak UTF-8, as a real one does
- test(pty): answer the cursor question on Windows, keep ignoring it on unix
- test(pty): share the one writer the master will give up
- test(pty): redraw before reading the screen, as the smokes already do
- test(pty): one place that types and reads the screen back
- test(pty): one pseudo-terminal at a time
Install
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | sh # macOS, Linux
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iex # WindowsTo pin this version: ... | sh -s -- --version v0.2.1.
Everything else — what it does, how to run it, every environment variable —
is in the README.
Verifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.2.0
Install
macOS / Linux
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | shWindows (PowerShell)
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iexBoth install under your own account and need no administrator rights:
~/.local/bin on macOS and Linux, %LOCALAPPDATA%\Programs\zyris-code on
Windows. Your PATH is set up for you — bash, zsh, fish and PowerShell — so
after opening a new terminal the command is simply:
zyriszyris-code works too; they are the same program.
Set ZYRIS_CODE_INSTALL_DIR to install elsewhere, or --no-modify-path
(-NoModifyPath on Windows) to leave your shell alone. To pin a version:
... | sh -s -- --version v0.2.0.
Run it in the directory you want to work in. It prints an enrollment code the
first time; approve it in the browser and it attaches.
Building instead
cargo install --git https://github.com/attacca-cc/zyris-code --tag v0.2.0 zyris-codeVerifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.
v0.1.1
Install
macOS / Linux
curl -fsSL https://github.com/attacca-cc/zyris-code/releases/latest/download/install.sh | shWindows (PowerShell)
irm https://github.com/attacca-cc/zyris-code/releases/latest/download/install.ps1 | iexBoth install under your own account and need no administrator rights:
~/.local/bin on macOS and Linux, %LOCALAPPDATA%\Programs\zyris-code on
Windows. Your PATH is set up for you — bash, zsh, fish and PowerShell — so
after opening a new terminal the command is simply:
zyriszyris-code works too; they are the same program.
Set ZYRIS_CODE_INSTALL_DIR to install elsewhere, or --no-modify-path
(-NoModifyPath on Windows) to leave your shell alone. To pin a version:
... | sh -s -- --version v0.1.1.
Run it in the directory you want to work in. It prints an enrollment code the
first time; approve it in the browser and it attaches.
Building instead
cargo install --git https://github.com/attacca-cc/zyris-code --tag v0.1.1 zyris-codeVerifying a download
Every archive is listed in SHA256SUMS, which the install scripts check before
unpacking anything. By hand:
sha256sum -c SHA256SUMS --ignore-missingFiles
| Platform | Archive |
|---|---|
| Linux x86_64 | zyris-code-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | zyris-code-aarch64-unknown-linux-gnu.tar.gz |
| macOS Apple silicon | zyris-code-aarch64-apple-darwin.tar.gz |
| macOS Intel | zyris-code-x86_64-apple-darwin.tar.gz |
| Windows x86_64 | zyris-code-x86_64-pc-windows-msvc.zip |
A platform missing from the release means its build failed; the others are
published regardless.