## 1ay1/agentty — v0.9.16…v0.9.17

_77 commits._

### Features
- **add claybin as a second Linux sandbox backend, opt-in** (eb5fbda)

### Fixes
- **fix the windows build, and settings being clobbered by a second instance** (2dc5040)
- **fix effort auto and make sandbox audit use the real posture** (754b6e0)
- **bump maya: fix the comment that invited the wrong refactor** (f923a57)
- **bump claybin: fix the windows and i686 release builds** (453459a)
- **sandbox list: fix the unreachable ports row, add folders, cut the lag** (e428b52)
- **fix the list editor: caret, esc, and the invisible suggestions** (205780f)
- **fix number input, and stop the sandbox pane reporting non-problems** (a94de55)
- **fix: graphs went blank with the theme panel open — use-after-scope** (0ab3efa)

### Backend
- **release: v0.9.17** (1b9470e)
- **use the jaal guarantees instead of asserting them in comments** (c9f606f)
- **i18n: the language row was 43 ms per keystroke** (5799625)
- **i18n: five more languages - es, fr, ja, pt-BR, ru** (a6146b8)
- **i18n: Simplified Chinese, and get the double-width measurement right** (7ad1d00)
- **i18n: German, 100% complete, and the gate that makes it safe** (4eaeb30)
- **i18n: the language picker, live-applied** (6b866dd)
- **i18n: wire it up end to end, with the sandbox pane as the pilot** (51e81e4)
- **i18n: write down why english-only chrome costs nothing** (9b9fa43)
- **i18n: the core - lookup, CLDR plurals, live language switch** (ba4229c)
- **i18n: switching language applies live, no restart** (9fdf108)
- **i18n: design for 20 languages, and prove the layout can take it** (a188d0b)
- **save the sandbox posture when you pick one** (8e6e7ab)
- **bump claybin: a memory cap no longer kills every command** (d202b40)
- **drop the 25 tool-turn step cap** (cdfbeff)
- **cache the workspace mask sweep, keyed on directory mtimes** (24a4b96)
- **let the guest signal its own descendants, and compare pids in the right namespace** (a81bced)
- **put the empty-turn notice in error, not in the model's mouth** (7ee9d5c)
- **say something when a turn produces no output** (4f3be37)
- **mask /dev/tty so a sandboxed command can't write the terminal** (5794264)
- **gate the reasoning table on completeness, like the window ladder already is** (90e139a)
- **read litellm's supports_reasoning so reasoning models behind a proxy are detected** (08c1e8d)
- **the list editor is not linux-only, so stop declaring it inside the guard** (a36b442)
- **bump claybin: builds on windows now** (fa161ff)
- **bump claybin: conformance CI is green again** (c7f923c)
- **test the pixels, not just the model** (5d1baf4)
- **prove the docs through the REAL entry point, not a mirrored posture** (58136bd)
- **stop the test suite leaking /tmp, three ways** (d776cd4)
- **mask the credentials repos actually hold, and stop leaking 12GB of /tmp** (9580dda)
- **assert the suggestion invariant once, instead of at every exit** (bf376f6)
- **suggestions open when you write, and stay closed once accepted** (ac95866)
- **catch the path mistakes the compiler can't** (a7a7478)
- **close the browsing-mode key holes, and let arrows steer the suggestions** (aa19728)
- **a rejected keystroke must change nothing, and port rows need a caret** (032b708)
- **make the sandbox form learnable from the form** (91c644c)
- **tell the model it is sandboxed, and explain denials where it reads them** (426f7e4)
- **list editor: stop rebuilding the form while you are typing in it** (a03e4fe)
- **sandbox pane: real list editor, autosave, and off means off** (c1b336a)
- **check the "applies on restart" promise instead of just making it** (0c32106)
- **ui: users zoom scrolled back on its own, and never used two columns** (b42a182)
- **default to claybin, keep bwrap as the fallback** (4094e87)
- **stop the sandbox pane claiming walls that are not up** (4f7f8b0)
- **give the sandbox pane four postures instead of 28 primitives** (1fc0e75)
- **enforce the trust-handoff row, and put the walls on the rows** (7c37630)
- **decide claybin should NOT have a microvm backend, and pin why** (5c827e4)
- **measure what a microvm would actually cost here** (bb7f49a)
- **answer the microvm question honestly instead of building one** (ebb8e2a)
- **show what the sandbox actually blocked** (d34c5ca)
- **link logx into sandbox_audit, and verify brokering under sanitizers** (d5c8263)
- **broker ptrace and kill instead of killing the process** (feedbe3)
- **close the notify_fd leak, and say why brokering isn't wired** (72e5763)
- **audit what the sandbox actually enforces, and cap pids by default** (7e68a38)
- **claybin works where bwrap can't: hosts that deny user namespaces** (1b6505a)
- **delete the controls that were never wired, and guard against more** (72af45d)
- **find nested secrets, and make every claybin wall configurable** (9bcc39e)
- **bwrap masks credentials now, so the Masked row means something** (d88ba5e)
- **split dwarf for debug builds, and curl works in the sandbox now** (12706d4)
- **seal the sandbox policy at startup, and write down why** (2bb9551)
- **claybin is a normal submodule now, and the pane picks the backend** (2aebe49)
- **make the sandbox pane actually control the sandbox** (376e094)
- **move the path matcher to claybin, keep the rules here** (5a8dabf)
- **secret hygiene: mask credentials with mounts, not hope** (fe3f8fb)
- **defend the escape class every agent shipped: the trust handoff** (63938f3)
- **sandbox settings pane: configure the boundary, and SEE it** (6bce700)

### Docs
- **docs(website): explain the sandbox instead of naming its parts** (52fb781)
- **docs(website): rewrite sandboxing for what actually ships** (c07eeb8)
- **docs: a real reference for sandboxing** (494b0ab)

### Chore
- **ci: build every race-labelled target, not three of four** (e39a5de)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/1ay1/agentty?utm_source=github-action)._