Changelog
klawed ships as a binary, so this is how you see what is in one before you run it. Generated from the release tags.
0.36.177
October 10, 2026- build: the linux probe names a model, and docker on Debian 13 is two packages
0.36.176
October 9, 2026- model: the picker's copy stops promising a list it no longer has
- model: klawed ships no model names, and asks for one instead
- web: drop the server-default row from the provider picker
- provider: say it out loud when a key in the shell is not the one being used
- scripts: verify_release - check the download, not the build
- docs: the queue serves one daemon, and why that matters
- fix: check what ftruncate and pwrite did
- fix: one daemon per queue, enforced by the queue
- web: the drawer's close sits on the brand row's line
- fix: a background pass could silently unpin a thread
- provider: the config-run path falls back to the catalogue too
- provider: check the catalogue copies, as the truncation guard requires
- provider: a key in the environment names its provider
- fix: the web-state test did not build under GCC
- feat: per-thread provider, and a strip that names it
0.36.175
October 9, 2026- tests: free the model provider_init hands back
- fix: the three things the first CI run on this branch found
- provider: the quickstart sent an OpenAI key to Anthropic
- release: 0.36.175
- macos: an Intel build, and no Homebrew in either
- http: a certificate bundle to fall back on
- tui: start on a terminal ncurses has never heard of
- doctor: a report that says what is wrong with this machine
- build: a Linux download that needs nothing installed
- build: the download only ran on this machine
- docs: the step between a tag and a download
- release: a path from a built binary to the download page
- provider: a key with no model is the quickstart, so make it work
- site: cut the home copy the new one replaced
- site: fewer words, and a docs page
0.36.173
September 26, 2026- docs: note how pasting into the input box works
- tui: a normal-mode visual selection for the conversation
- tui: a thinking block's fold state gets a labeled bar
- tui: log the thinking-block fold settings at startup
- tui: a folded thinking trace shows its latest tokens, while it streams
- arena: stop arena.h declaring the ARENA_DEBUG entry points twice
- docs: name the commit the two arena entries landed as
- arena: the missing ratchet, and the tool registry's strings on the heap
- tui: a thinking block folds to its first few lines
- tui: a thinking block folds to its first few lines
- docs: pi and hermes styling, not their layout
- docs: pi and hermes styling, not their layout
- docs: what pi and hermes do with the conversation pad
- docs: what pi and hermes do with the conversation pad
- tools: build the tool table from a heap registry, not a 165KB stack local
0.36.172
September 22, 2026- compaction: stop truncating the summary silently
- web: settings pane split into one section per concern
- streaming: grow buffers on the heap instead of truncating in fixed arenas
- iced-gui: every hint the web's controls carry (F6)
- web: your prompts get seven designs, picked in settings
0.36.171
September 22, 2026- iced-gui: the sidebar's digits (D7)
- spinner: launch thought missiles, not the other kind
- iced-gui: the broom leaves the toolbar for the composer (D9)
- iced-gui: the toolbar's two status pills are one dot (D8)
- iced-gui: threads above the folder history on the dashboard (E10)
- iced-gui: settings moves into the drawer on a phone (D10)
- iced-gui: the header shows the folder's name, not a folded path (G8)
- web: resume a position in paged history, and stop paging on the pad's own noise
- scripts: make release.sh executable, as its usage line says
0.36.170
September 21, 2026- web: resume the reader's position when a thread is reopened
- iced-gui: catch the port up to upstream's ui, on paper
- iced-gui: the composer's lines are the browser's 17px, not --lh
- iced-gui: note the one shade of compositing still open
- iced-gui: paint the composer's text, and composite like a browser
- ci: one stage runner, and no passing on an empty sanitizer log
- ci: stop the hook's own test suite from paging us on every push
- web: keep markdown tables from crushing their columns on a phone
- iced-gui: carry both window backends on linux
- iced-gui: write down what the Linux box taught
- iced-gui: guard the font wiring
- iced-gui: the client carries its own type
- web: the header names a thread's folder, never its path
- web: show the tail of a thread's working path in the header
- iced-gui: give every test its own temp root
0.36.169
September 12, 2026- fix(api): free the parsed response when the response has an arena
- fix: unify content freeing, and stop width tests depending on the ambient locale
- fix(web): cap the provider test chat at 30 seconds
0.36.168
September 12, 2026- docs: answer the local-web-key objection in the relay security note
0.36.166
September 12, 2026- feat: show the extension version in the browser controller popup
- docs: gui port status, and the hosted-relay e2e question
0.36.165
September 12, 2026- test(iced-gui): drive the palette trigger through the composer
0.36.162
September 12, 2026- feat(web): reveal thread digit hints while cmd/ctrl is held
- feat(iced-gui): port the command palette (E3)
- feat(web): provider templates with brand icons and a test chat button
0.36.161
September 12, 2026- fix: leaks and a gcc-only error the sanitizer gate exposed
- site: contact by kasafox.com mail, and name the company in the footer
- feat: use the klawed mascot as the browser controller icon
- feat(site): minify the stylesheet, generate og:image, prerender the shell
- test: repair the last broken tests and empty the broken list
0.36.160
September 12, 2026- feat(site): prerender every route for search engines
- chore(site): rename site/ to klawed.ai.site/
0.36.159
September 11, 2026- fix(site): skip releases with nothing to report
0.36.157
September 11, 2026- feat(iced-gui): port the settings pane (E2)
- feat(site): serve klawed.ai from a Bonsai app
0.36.156
September 11, 2026- test: scope grep and cpu-watchdog scratch paths per process
0.36.155
September 11, 2026- feat(iced-gui): follow the upstream sidebar-row refinement
- feat(iced-gui): port the chrome gaps (D1-D6)
- fix: free the remaining test allocations LeakSanitizer found
- fix: gcc portability and leaks exposed by the widened CI
- ci: run the whole test suite, and keep it that way
0.36.154
September 11, 2026- web: hover tooltip on sidebar thread rows
0.36.153
September 11, 2026- web: keep a thread's folder visible under its generated title
0.36.152
September 11, 2026- feat(iced-gui): port the floating jump buttons (C4)
0.36.151
September 11, 2026- feat(iced-gui): finish the entry fold (B1-B3)
0.36.150
September 11, 2026- feat(iced-gui): port the home dashboard
0.36.149
September 11, 2026- fix Makefile deps so version bumps rebuild stale objects
0.36.148
September 11, 2026- fix: build and test cleanly on the registry's gcc/linux
- web: drag sidebar threads to reorder them
- feat: spill oversized bash output to a file instead of discarding it
- feat: recover more malformed tool-call arguments instead of dropping them
- fix: stop rewriting an unchanged system prompt before every API call
- feat: keep prompt-cache tokens through the openai streaming path
- docs: implementation plan for deepseek-harness learnings
0.36.146
September 11, 2026- feat(iced-gui): port the tool card's raw JSON disclosure
- feat(iced-gui): port the tool result label and body
- web: cmd+number jumps to the nth thread (figma-style tab switch)
- feat(web): set the session goal with ;goal
- web: restyle the scrollbars to match the dark theme
- docs: research notes on deepseek-harness tool-call efficiency
- feat(iced-gui): port tool_args_body, so expanded cards show arguments, not JSON
- feat(iced-gui): port tool_param_summary and make the render tests real
- web: show klawed's generated thread title on the thread
- feat: iced GUI prototype styled after the web client
- fix(web): derive session status from the queue db tail
- fix(web): derive session status from the queue db tail
- web: window the transcript pad so long threads stop janking
- fix(web): require a model name in the setup wizard
- feat(web): add endpoint step to the setup wizard