What changed.
Etti is still experimental: the CLI, the store format and the local package can change between releases. Published release bytes are not replaced by later versions. Each entry records what was verified and what was left open.
Finished runs keep their compaction boundaries.
- A finished run retains safe compaction boundaries between complete tool batches, so a large historical run no longer blocks a small follow-up request.
- Raw history, paired receipts, protected instructions, and the existing context and call limits are unchanged. Source fix only — published binaries are not replaced.
The CLI stops clipping what it shows.
- Complete output: the assistant's answer and the whole text a tool returned, with the tool's name, the command or path it acted on, the outcome, and the complete metadata of any retained artifact. The previous 1,024-byte tool preview and the 32 KiB aggregate reply cut no longer apply to the CLI — Telegram keeps its bounded presentation.
- Readable records: a terminal status starts on its own line after the answer instead of gluing itself to it, and the prompt is a short sanitized directory name with no timestamp.
- No dropped output: a slow consumer applies backpressure instead of losing accepted text, and a disconnected sink is an error rather than a silent success. An explicit quit with an undelivered display is reported as an incomplete display.
- Complete content on request: `/content <run> text|reason|selection|call|result <id>` reads the whole content object through the bounded content pages, and a canonical final recovered after a watch gap is displayed in full and labelled as recovered.
- Removed. The optional Kanban task board and its work scheduler — the board, its work sessions, the `/task`, `/tasks` and `/work …` commands, the corresponding wire operations, and the automatic pull of board work. Conversations, runs, paired receipts, the intent-before-effect journal, `UnknownEffect`/`NotStarted`, steering, cancellation, recovery, compaction and `etti improve` are unchanged. Stored board metadata is retained as inert, unread data; no schema migration or row deletion happened.
- Added. Durable-agent trajectory research and its attributed source record — a field survey of where "durable" is going in 2026, and the four gaps that remain for a local coding agent.
- Fixed. A pending inspection read could stall its own connection write on this toolchain when it was abandoned mid-poll, which left a content read waiting forever. The content read now keeps its connection out of that path.
Verification. 62 targets / 549 passed before the task-board removal; 58 targets / 526 passed / 0 failed / 6 ignored after it. Formatting, strict all-target Clippy, the package helper suite and the offline observability checks pass. The independent whole-branch release review, the minimum-OS/clean-Mac check, the synthetic-account Keychain/ACL check and the notices/name/privacy review are outstanding manual gates — not completed checks.
First published release.
- The local macOS arm64 package and its Homebrew formula, with the native Keychain setup boundary, the offline fixture provider, the daily-driver CLI and the candidate (`etti improve`) foundation.
- Public formula, published archive digest, payload allowlist, signed-binary identity and offline help/doctor were verified before publication. A host install or upgrade of 0.1.1, a clean minimum-OS Mac, the synthetic-account Keychain/ACL/upgrade check and the notices/name/privacy review remain open.
The project is still private.
The published artifact is the Homebrew binary. The source repository is not public yet, so the release notes here are the public record of what shipped.