## atuinsh/atuin — v18.22.0…v18.23.0

_68 commits._

### Features
- **feat: add easy config shortcuts (#4213)** (88f6589)
- **feat(common): SqliteObserver for cross-process SQLite change observation (#4195)** (12eb027)
- **feat(harnesstools): generic AI session-capture interface (#4191)** (900007c)
- **feat(common): generic file-tail and jsonl-tail utilities (#4186)** (6610ac4)
- **feat(common): add fs::tree_watcher directory watcher utility (#4188)** (eb239a6)
- **feat: AI Session Capture Daemon Interface (#4184)** (dc49314)
- **feat(mcp): add atuin_output_search tool (#4157)** (25cb843)
- **feat: json and ndjson output styles for `output search` (#4158)** (e7f8a8c)
- **feat: full-text search over captured command output (#4126)** (4a2e579)
- **feat(atuin-daemon): full-text search index over captured output (#4145)** (be5a694)
- **feat(atuin-common): add generic SQLite FTS5 helper (#4124)** (973eaf7)
- **feat(atuin-common): add HighlightedText type with proto conversion (#4123)** (2f7d944)
- **feat(atuin-common): cross-platform free-space probing for disk limits (#4122)** (80c1045)
- **feat(config): accept unit-aware durations in config (#4128)** (b2df649)
- **feat(search): allow repeated exit-code filters (#4132)** (50fcb6a)
- **feat: improve `atuin_common::ansi::to_plain_text` (#4101)** (dbfb333)

### Fixes
- **fix: restart the daemon when enabling output capture (#4215)** (5066e3f)
- **fix(docs): resolve atuin.sh self-hosting link 404 + tidy 404 page (#4194)** (1635778)
- **perf: make the daemon's large deletes and CI's integration tests fast (#4189)** (711544b)
- **fix(common): include the cause in the sqlite pool creation error (#4185)** (7233d77)
- **fix(wrapped): Command Evolution ignoring common_prefix (#4148)** (1b7d9f1)
- **bug: deletion state race (#4180)** (f0643b3)
- **fix: clarify migration errors caused by conflicting Atuin versions (#4173)** (22fa91f)
- **perf(atuin-daemon): skip History clone in start_cmd when no tail subscriber (#4165)** (11bfb4f)
- **perf(atuin): avoid per-char String allocation when drawing command cells (#4164)** (2d3ac7f)
- **perf(atuin): avoid clone on keystroke (#4160)** (bc4daa3)
- **fix(hook): accept a string tool_response from codex (#4171)** (5135f09)
- **perf(pty-proxy): forward stdout via raw fd write instead of buffered LineWriter (#4159)** (7809bb7)
- **perf(pty-proxy,common): use memchr for hot byte scans (#4144)** (372b092)
- **perf(atuin-daemon): make the output FTS index contentless (#4154)** (601d2ac)
- **bug(output-capture): reconcile can no longer crash (#4153)** (d398ef2)
- **bug: fix transaction lock (#4152)** (b892fc7)
- **perf(atuin-daemon): key the output FTS index by rowid (#4151)** (d6ebc4b)
- **fix(common): sleep before each backoff attempt (#4129)** (8e2e4ab)
- **fix(pty-proxy): resolve zsh --shell to an absolute path with :c (#4097)** (2db3dd2)

### Backend
- **Revert AI session capture stack (#4210)** (059ac37)
- **Remove dotfiles (#4193)** (a6b1371)

### Tests
- **test: fix flaky empty_history_search_can_be_cancelled e2e test (#4197)** (b7b3556)
- **test(atuin-common): use #[rstest] in place of #[test] (#4146)** (6787b8f)

### Docs
- **docs: clarify atuin-client vs atuin-common crate placement (#4192)** (03c0c14)
- **docs: slightly more pleasant help UX (#4111)** (8bcf4c7)
- **Remove MSRV badge from README** — Removed the Minimum Supported Rust Version (MSRV) badge from the project's README file. This badge previously displayed the minimum Rust version requirement of 1.95.0. (c0c717a)

### Chore
- **chore(release): prepare for release 18.23.0 (#4216)** (78366dc)
- **refactor(deps): bump atuin-vt100 from 0.19.0 to 0.19.1 (#4205)** (9622e57)
- **ci: sccache + Depot cache for integration-test (#4211)** (42d83b1)
- **ci: give integration-test root-disk headroom + disk telemetry (#4208)** (753fdbe)
- **ci: cut build-job time (#4182)** (5733209)
- **refactor(hooks): move agent hook install into atuin-common harnesstools (#4183)** (ff9d71f)
- **refactor(daemon): replace sync event-bus with a standalone engine (#4131)** (f71911b)
- **refactor(deps): bump soupsieve from 2.8.4 to 2.9 in /docs in the uv group across 1 directory (#4172)** (4a777f0)
- **refactor(atuin-daemon): restructure output_capture into persistence + engine (#4125)** (b5f9c4a)
- **refactor(client): rename SyncEngine to SyncSession (#4130)** (853584a)
- **chore: less strict versions (#4143)** (263b594)
- **refactor(atuin-daemon): move HistoryId proto message into common.proto (#4121)** (c03fbbc)
- **refactor(atuin-common): modularize futures::stream with chunked/merge combinators (#4120)** (31b7d59)
- **refactor(deps): bump uuid from 1.25.0 to 1.26.1 (#4135)** (42770c9)
- **refactor(deps): bump serde_regex from 1.1.0 to 1.2.0 (#4134)** (e2216d4)
- **refactor(deps): bump eyre from 0.6.12 to 0.6.14 (#4133)** (d960eb6)
- **refactor(deps): bump DeterminateSystems/nix-installer-action from 22 to 23 (#4137)** (a9f8f73)
- **refactor(deps): bump DeterminateSystems/update-flake-lock from 28 to 29 (#4138)** (068d340)
- **chore(deps): dependency version bumps (#4105)** (2485599)
- **chore(atuin-common): remove eyre in favor of thiserror (#4103)** (22cca3b)
- **chore: remove eyre from atuin-pty-proxy (#4110)** (ef2de77)
- **chore: ban eyre from atuin-history (#4108)** (c10d10f)
- **chore: remove eyre from atuin-domain (#4107)** (e1ba002)
- **chore: lower MSRV to 1.95 (#4100)** (6b5a74a)
- **chore: bump sysinfo to 0.39.6 (#4102)** (dc56a2e)
- **chore: replace daemonize with daemonix (#4099)** (274781b)

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