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