| Name | Modified | Size | Downloads / 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.)