## sudoprivacy/sudocode — v0.2.17…v0.2.19

_58 commits._

### Features
- **feat(engine-host): a CLI session gets a kernel of its own** (b615f86)
- **feat(runtime): resolve host paths into the VFS namespace** (cb60797)
- **feat(engine-host): host the co-host on the real engine, delete the parallel loop** (74ffaac)
- **feat(tools): let the host choose the filesystem the tools act on** (e30840e)
- **feat(tools): agent_list — one core discovery tool for addressable agents** (4c5fbcb)
- **feat(plan): write_plan clear-context = human-in-the-loop compaction** (4d65aa8)
- **tools: add Bocha web search provider** (2e6cc26)

### Fixes
- **fix(runtime): name the file the way the caller named it** (4ea52fd)
- **fix(runtime): the kernel backend answers in its host's spelling** (69ae5fc)
- **fix(config): register every key `scode config set` can write** (2ffc07f)
- **fix(cli): the local mailbox poller listens as the session, not the process** (cd2732d)
- **fix(test): stabilize live PTY checks (#740)** (0331b19)
- **fix(plan): show full plan in the approval dialog; tell the model the user approved** (784901a)
- **fix(repl): copy/paste into the DialPad custom-input row (bracketed + multi-line)** (0cda920)
- **Merge pull request #738 from sudoprivacy/fix/dialpad-inline-custom-input** (9e7b78b)
- **fix(repl): DialPad gets a built-in in-place custom-input row** (8434d51)
- **Merge pull request #737 from sudoprivacy/fix/stdin-deadline-flake** (1b54cae)
- **fix(test): stop the two stdin-pipe tests from spawning concurrently** (04772a3)
- **Merge pull request #727 from sudoprivacy/fix/retry-add-525** (a3d620a)
- **fix(api): retry Cloudflare 525 (SSL handshake failed) too** (71fc747)

### Backend
- **Merge pull request #750 from sudoprivacy/test/cohost-mock-e2e** (ffb5d91)
- **Merge pull request #749 from sudoprivacy/feat/standalone-on-kernel-fs** (79871d8)
- **Merge pull request #745 from sudoprivacy/feat/inject-fs-backend** (06562ef)
- **Merge pull request #742 from sudoprivacy/feat/agent-list-discoverability** (49d0067)
- **Merge pull request #743 from sudoprivacy/feat/write-plan-compaction** (782ed26)
- **Merge remote-tracking branch 'origin/main' into feat/write-plan-compaction** (b109852)
- **Merge pull request #741 from sudoprivacy/refactor/error-taxonomy-phase3** (1b0c22b)
- **Merge pull request #736 from sudoprivacy/docs/error-taxonomy-english** (dc4d292)
- **Merge pull request #735 from sudoprivacy/docs/error-taxonomy** (f933243)
- **Merge pull request #734 from sudoprivacy/refactor/transcript-predicate** (f3f642b)
- **[codex] Send screenshots to the active vision model (#731)** (5f8dde3)
- **Merge pull request #733 from sudoprivacy/refactor/error-taxonomy-phase1** (e26a176)
- **Merge pull request #732 from sudoprivacy/codex/bocha-web-search** (bbecbd8)
- **Merge pull request #730 from sudoprivacy/codex/compact-bash-results** (af4d7d8)
- **runtime: accept compact bash results in the public deserializer** (6f7652b)
- **runtime: share cancellation result projection and harden bash coverage** (b5aeb4e)
- **tools: compact model-facing bash results and preserve exit status** (f9c1bba)
- **Merge pull request #729 from sudoprivacy/refactor/drop-chat-with-me** (c9dd842)
- **Merge pull request #728 from sudoprivacy/chore/bump-vfs-multi-mount** (901701c)

### Tests
- **test(engine-host): a CI gate that actually runs a co-hosted agent** (a450b44)
- **test(mock): script the turn a co-hosted agent actually takes** (1084ec6)
- **test(engine-host): what a CLI session's filesystem is** (4fc6bc7)

### Docs
- **docs: what a session can reach, and the key that widens it** (2f231cf)
- **docs(design): make error-taxonomy English-only; note Phase 1 landed** (3bf5e4f)
- **docs(design): add error-handling taxonomy (who-can-act)** (3a46569)

### Chore
- **chore(release): prepare v0.2.19 (#753)** (108285f)
- **style(test): silence dead_code in the shared co-host harness** (109fb8f)
- **style: cargo fmt, and point one doc link at the function that replaced a type** (b470b88)
- **chore: delete configuration and code nothing reads** (c87ad3d)
- **refactor(engine-host): one host root, built once per session** (6221d33)
- **chore(tools): drop the dispatch entry the co-host no longer takes** (07422af)
- **refactor(engine-host): give the engine a host context, not a directory** (ef96aa6)
- **refactor(runtime): error taxonomy phase 3 — compaction uses typed classification, not strings** (adb05b5)
- **chore(release): prepare v0.2.18 (#739)** (8d8d57f)
- **refactor(runtime): read the transcript predicate under its own name** (21e4a68)
- **refactor(api): error taxonomy phase 1 — ErrorAction SSOT + dedup** (fc4fc8e)
- **refactor(runtime): drop the CHAT_WITH_ME_SUFFIX re-export chain** (3035abf)
- **chore(deps): nexus-vfs 191fa0efa (multi-mount federation wiring)** (95b0ae5)

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