Download Latest Version Caprock_0.107.7_x64-setup.exe (9.4 MB) Google Add to Preferred Sources
Home / v0.32.1
Name Modified Size InfoDownloads / Week
Parent folder
caprock_0.32.1_linux_amd64.tar.gz 2026-08-28 8.5 MB
caprock_0.32.1_linux_arm64.tar.gz 2026-08-28 7.9 MB
checksums.txt 2026-08-28 600 Bytes
caprock_0.32.1_darwin_amd64.tar.gz 2026-08-28 8.6 MB
caprock_0.32.1_darwin_arm64.tar.gz 2026-08-28 8.2 MB
caprock_0.32.1_windows_amd64.zip 2026-08-28 8.7 MB
caprock_0.32.1_windows_arm64.zip 2026-08-28 8.0 MB
README.md 2026-08-28 2.1 kB
v0.32.1 source code.tar.gz 2026-08-28 5.5 MB
v0.32.1 source code.zip 2026-08-28 5.7 MB
Totals: 10 Items   61.1 MB 0

Fixed

  • The terminal now tells the daemon how big it is. fit() resized the canvas and nothing else, so the PTY kept whatever size it was created with — 120×40 by default — for its whole life. Claude Code lays its menus out to the terminal size, so on any other window it drew an interface for a screen that was not there: arrow keys moved a selection nobody could see, which is what the first user reported as "only Enter works".

The socket now carries two things, told apart by frame type: binary is what you typed, written byte for byte, and text is a control message — today only {"resize":{"cols":N,"rows":N}}. A text frame that is not valid control JSON is still written through as input, so an older dashboard against a newer daemon keeps typing rather than going mute.

Keystroke passthrough itself was never the problem: term.onData has always sent every key straight to the PTY. The diagnosis in the milestone note turned out to be wrong, and checking it before building was what found the real cause.

  • Shift+Enter inserts a newline again, on a prompt with text in it. It has been wrong twice, and the second one is the interesting failure: a bare line feed (0x0A) is what Ctrl+J sends and what the documentation says works everywhere — but Claude Code reads a lone line feed as submit. On an empty prompt that looks like a newline, because there is nothing to submit; the moment the prompt has text, the same key sends the message. That is exactly what the user reported.

The fix came from reading a terminal that works rather than reasoning about the protocol: /terminal-setup writes a binding into iTerm2, and that binding is on disk — Send Text, two bytes, 5c 6e. Claude Code sees the backslash before the line ends and turns the pair into a newline. All four keys now send it.

(The first wrong guess was CSI u, ESC [ 13 ; 2 u, which a terminal only sends after negotiating the kitty keyboard protocol — a negotiation this terminal never performs, so it did nothing at all.)

Source: README.md, updated 2026-08-28