Next release · live on master
Unreleased
Everything that has landed since v2.0.0.
3changes
nix run github:juspay/kolu- Added
- 2
- Changed
- 1
No release note matches that filter.
The Right Panel
-
AddedSee what a terminal is serving1 PR
When something in a terminal starts listening on a TCP port, a Ports section appears in the Inspector listing it — the number and the program holding it — usually within a second. No more scrolling back through a wall of agent output hunting for a URL that went by ten minutes ago. It is not a guess at printed text: kolu reads the machine’s own socket table every few seconds (and immediately whenever the terminal produces output), and attributes each listener to the terminal whose processes hold it. So a port appears because something genuinely is listening, and it disappears when that stops. Splits count as the same terminal, which matters because a dev server is usually where you put it — in the split. A port bound to all interfaces on the machine running kolu already answers at the address you are viewing kolu at, so it simply opens in a new tab; a loopback-only port, or one on a remote host, needs a door — see Port forwarding below. -
ChangedThe Inspector now leads with what needs you1 PR
The Inspector used to be eight equally-grey label-and-value sections you read top to bottom, which meant the one fact you check constantly — is this agent waiting on me? — was a small grey pill in the middle of the panel, styled exactly like the name of your colour theme. It now opens with the agent’s status: what it’s working on, and a state chip in the colour that state wears everywhere else in kolu (violet when it’s your turn, rust while it’s working), so you read the answer off the colour before reading a word. Branch, repo, pull request and CI collapse into one row of chips beneath it — CI as a single✓ 9 passedrollup — with the working directory shown once instead of twice. Everything you only occasionally need now folds away: the per-check list, the repo’s root and worktree paths, and the whole terminal-CLI section. The check list is the one that folds intelligently — nine passing checks stay behind their rollup, but a check that fails or is still running expands the list on its own with the exceptions sorted to the top, so you never open a list to find good news and never miss bad news because it was hidden. The Attach section is rebuilt around the shape its commands actually have: pick a pane and a verb (attach · snapshot · send) and copy the one command line, rather than scrolling six near-identical ones that repeated the same long socket path. And the Compose box rests as a single line, growing when you click into it, instead of opening as an empty six-row box at the top of the panel.
Port forwarding
-
AddedClick a port on any host, get the page1 PR
A dev server on127.0.0.1:5173is invisible from the laptop you are looking at, because loopback never leaves the machine it is on — and a port on a remote host is further away still. kolu now opens a door for both: click the port and it makes that port answer on the machine serving this page, then opens the tab. Anssh -Ltunnel when the port is on a remote host, a plain TCP relay when it is on kolu’s own machine and merely on loopback — kolu reads the bind address and picks, rather than guessing. The row then carries a⇄ :<port>badge naming where it answers, alongside a copy button and a⨯to close the door — one Ports list, one row per port, rather than the same port listed twice. A door you opened by hand, or one whose server has since died, trails that list under “also forwarded on this host”, because a door belongs to the machine rather than to any one terminal. Wherever a forwarded port appears, kolu names the terminal serving it, and that name is a link — click it and you land on the agent that started the thing. The host tab’s dropdown carries the same rows, and the tab’s connection dot wears a thin teal ring while doors are open there. Doors open lazily — only for ports you actually click — and they close themselves when the scanner sees the listener die. One you ask for by hand (⌘K→ Forward a port…, acceptinghost:port) stays until you cancel it, since kolu has no listener to watch on your behalf there. A restarted dev server gets its old door back, so links you saved keep working. Everything dies with the kolu server — guaranteed by the kernel rather than a timer — so a deploy never leaves an orphaned door open. One case is reported honestly rather than papered over: a port bound to a single interface of a remote machine answers at that address and by no door kolu can open, so its row says so instead of offering a button that would fail. A forwarded port is unauthenticated on every interface of the machine running kolu — the same exposure as starting the dev server on0.0.0.0yourself — so keep it to a network you trust.