Skip to content

v0.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Oct 14:03

v0.7.0 — one computer per terminal, and pairing that arrives

A terminal is for one computer. The window that showed every computer at once is gone: its project panel was a column in which nothing said which rows were yours. A terminal for this computer now lists your projects and nothing else, and a terminal for another computer lists that computer's, drawn as if it were your own. Plain neosh asks which computer? whenever another computer is paired, connected or not, and esc means this one; with nothing paired it does not ask. In ^J, ↵ on a machine moves the window there (dialling it if needed, landing in its newest conversation), and ↵ on This computer moves it back. The row for the machine a window is on says this window. swarm.device = "all", neosh connect all and /device all now mean ask, and /device ask asks. Machine codes like @lb are the same in every window.

^N no longer asks which computer. It starts on the computer the window is for. The path field (^N's Another directory…, and ^O) no longer lists other machines as rows, but typing linux-box: still completes on that machine, and the hint strip says so.

Pairing requests arrive. Adding a computer used to tell the other machine once, with a six-second toast, and at the wrong moment: when you were only looking at the address, before you had pressed Add. After that every redial was ignored, so a request that arrived while you were elsewhere was simply lost. Now a request shows up as a notification ("A computer wants to join") and as a pulsing ? linux-box wants to join row at the top of the project panel, with ^J beside it. It stays until somebody answers. From the waiting side, ^R on the machine asks again. On the asked side, ^X turns a request away until it asks again. A request that goes quiet for 90 seconds drops off. Unpairing removes a machine from the list at once, and adding an address that turns out to be this computer is refused. ^J computers is now in the project panel's key strip and on the welcome screen.

A project on another computer asks what one here asks. n or ^N on another machine's project offers the same choices: here, a new worktree, one inside the project, one you name, an existing one, or elsewhere. Each is answered and carried out on that machine. p pulls over there. An address after a machine's name (linux-box:https://…), or pasted into ^O in a window for that machine, clones onto it.

Tables wrap instead of clipping. A markdown table no longer cuts cells off with …. Columns shrink to fit their longest word (up to 40 columns) and long cells wrap inside their column. When even that is too wide, the table is shown as one record per row.

1M context compacts near 1M. The claude CLI sets when to compact separately from [1m]. Unless told otherwise it uses a window from its own server configuration, and was seen compacting under 400k. With context 1M selected, neosh now passes autoCompactWindow: 1000000.

What an interrupted turn left running shows at once. After <Esc>, the first thing the CLI says is which tasks it moved into the background, and that line was dropped. The project panel showed nothing until you sent another message. It is shown when the turn stops now.

For plugin authors, 0.7.0 is a breaking release of the Rust crates: ApiCall has SwarmDismiss and SwarmCall, AscpMessage has Call and Called and an optional knock on Hello, and NodeCapabilities has calls. ViewDevice::All still decodes, but every reader treats it as Here. neosh.swarm.dismiss(node) and neosh.swarm.at(node) are new, and notify.when takes pairing. Older machines can still pair with and talk to new ones. One that predates calls gets a conversation in the directory you chose, or a message saying it needs updating.

After upgrading, run neosh stop and start neosh again: a running workspace keeps executing the old binary.