Skip to content

Cookrew 0.3.0 — the canvas tidies its own cables, a seat is bought on the site, and a lane per agent

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Oct 10:11
3b53266

Cookrew 0.3.0 — the canvas tidies its own cables, a seat is bought on the site, and a lane per agent

Seventy-odd commits on dev since 0.2.0. Four things changed what the product is; the rest made it faster and more honest.

The canvas draws its cables as a wiring harness

Every connection on the board used to be its own line, drawn end to end across the whole canvas — 3,112 crossings on the Cookrew Dev board. The canvas now routes cables round the cards on a grid, draws a shared run once as one trunk, and shows a run only when both of its ends are on screen; a cable that leaves the screen becomes a tab on the card's border naming where it goes, newest first, with a fold for the rest. Hovering a card lights its cables and dims everything else. It is the default view, costs nothing per frame, and routes the live board in 41–51 ms.

A cable carries the question and the answer

When one agent asks another, the cable between them lights and a pulse runs along the trunks from the sender to the receiver; the answer runs back the other way, like a signal on a trace. One frame per moment from main, one compositor keyframe per pulse, nothing per frame — the render-count gate reads 2.07 commits a frame with or without it, and nothing is in the tree when nothing is in flight.

Switch workspaces by looking at them — the screen wall

The header's dropdown is gone. One chip opens a wall of your workspaces as pictures; tap one to go there, swipe on the phone. The wall carries NEW, DIRECTORIES, REMOVE and HISTORY for the picked screen. The canvas you leave is photographed on the way out, so the wall always has a picture of it; the one you are standing in has one without a camera.

A seat is bought on cookrew.dev, and the market knows your name

The purchase path the ladder promised finally runs end to end: BUY on a team's page goes to Stripe Checkout and comes back to that page, which opens the line on your new seat by itself; a bought seat admits you on every later session and follows you to any device. The marketplace is a shop with one identity — your username: it opens on YOUR AGENTS — the teams you serve and the seats you hold, one row and one act each, OPEN THE LINE — then what is for sale, free teams say so, priced ones wear their price and BUY, and a stranger is offered the account sheet — never a handle to enrol. Stars act as the account too. The front page puts the instances you can rent on its first screen; the import sheet in the app lists your saved teams and the seats you hold, no address needed. Verified in a real browser against Stripe's test mode and against a real registry.

Lanes — a worktree per agent, and landing is the app's job

Several agents on one canvas used to share one working tree, and one agent's edits rode into another's commit. A card can now open a LANE: a linked worktree on its own branch, cut from the branch the shared tree is on. LAND merges base into the lane, runs the repo's gate (its gate:lane script, else typecheck), and fast-forwards the shared tree — a conflict or a failed gate is a state on the card, never a prompt in the agent's conversation. AUTO-LAND lands four seconds after a turn ends.

Also

  • Every card says its agent's model and effort; Claude's and Pi's dials turn from the zoom view, Codex's stay read-only on evidence; the phone has the dials too.
  • The board row in another workspace takes you there and opens the card.
  • The homepage opens on ten seconds of the real app; every still on the site is retaken in the harness view from the agents' own records; the brand is the icon and seven pixel letters.
  • The zone answers the phone's probe (GET /v2/names/<host>), a 401 ends only the token it was about, and the path panel says who refused.
  • The version interaction (V pins, V chips) is gone from the rail and the serving surfaces.

The browser card keeps the last picture you saw

Four defects on the browser card's snapshot path, fixed without a byte of new loading: the thumbnail's version was a clock, so an idle page re-sent the same 65 KB frame over the relay every five seconds; the live frame was thrown away on zoom-out; a zoomed relay view read "unavailable" while the card's picture sat in the store; and the desktop photographed every browser on the canvas every tick. The version is now the pixels, the last painted live frame becomes the thumbnail on the way out, the stored picture is the poster, and the sweep captures only what the screen shows.

Performance

  • The API's p95/p98 tail was the main-thread gzip of a 750 KB /api/workspace: dynamic bodies are now compressed once per distinct content and cached under their hash, named by a weak ETag, and a poll that names it back is a 304 with no bytes. Measured on the live payload: 0.33 ms per hit against 15–26 ms idle and 183 ms loaded before.
  • A workspace switch that leaves an unchanged canvas writes nothing; the switch sends the canvas light first and whole a beat later.
  • Transcripts: a block window is answered from the index, state and marks are parsed once per change, an append parses only the appended lines, and rows re-render only when their own facts change.
  • Every synchronous shell-out lands in /api/health's loop ledger under its command's name, so a multi-second stall says which herdr or tmux call held the thread.

Fixes

Pi's effort was unreadable on sessions bigger than the window and it now records both dials; Codex agents kept their tag through a long turn; a block window arrives in the number the drawer is laid out in and skips rows the chain reports missing; the mini tile stacks model over effort so the effort survives; the wall is tappable on every platform; the header keeps its own layer; a door nobody is serving reads OFFLINE, not SIGNED OUT.

Known

  • The Windows CI leg stays red on POSIX-assumption tests (#80); the Windows build is a preview.
  • The watch companion is in progress on feat/watch and is not in this release.