## atuinsh/atuin — v18.16.1…v18.17.0

_66 commits._

### Features
- **feat: Add status bar with model and usage information (#3591)** (988e65d)
- **feat: add mcp server for history tools and expand search filters (#3581)** (95c8f0d)
- **feat: Add /model slash command for changing models (#3576)** (a96e6c7)
- **feat(doctor): add whether daemon is enabled to `doctor` output (#3572)** (2d54aff)
- **Add 'opencode' to KNOWN_AGENTS list (#3533)** (ad41103)
- **feat(pty-proxy): add --shell flag to override the spawned shell (#3327)** (0ad724d)
- **feat: Create database integration tests for atuin-server (#3514)** (863e9dc)
- **feat: Cache user contexts on load until `/reload` (#3525)** (e6a65f5)
- **feat: Capture command output + expose to new `atuin_output` tool (#3510)** (bcdf8c8)
- **feat: setup fossier to stop bot slop prs (#3482)** (89792a7)

### Fixes
- **fix(ai): dispatch skills registered in the slash command registry (#3593)** (663a28d)
- **fix(nu): suppress error when ATUIN_HISTORY_ID is missing in pre_prompt hook (#3587)** (95570e5)
- **perf: remove unnecessary clones in a hot path (#3580)** (55a0438)
- **perf: add synchronous(Normal) + optimize_on_close to record store SQLite (#3577)** (4b46200)
- **fix(i18n): fix typos in Russian localization (#3575)** (a396157)
- **fix(search): fix terminal clearing with latest Ratatui (#3578)** (cb64b4e)
- **Fix terminal clearing with latest Ratatui** (4954b39)
- **fix(sync): skip records that fail to decrypt or decode instead of failing the whole store (#3569)** (8eee5c8)
- **fix: respect `store_failed` when using daemon (#3571)** (8f3680f)
- **fix: silence shellcheck SC2016 on literal $all-user author filter** (000b28f)
- **fix: Exclude AI agent commands from zsh-autosuggestions (#3567)** (df6ec6c)
- **fix(pi): observe tool events instead of registering a bash tool (#3557)** (b6ca28c)
- **fix: Double input on arrow keys in AI setup prompt on Windows (#3552)** (38ef1d6)
- **perf(search): scan history by recency until N unique (#3553)** (ef54a8b)
- **fix: doctor resiliency fo runknown platforms + openbsd warning (#3551)** (009e1d6)
- **fix(pty-proxy): set $SHELL to the spawned shell (#3548)** (60b7953)
- **fix(nu): use `char -u 1b` for ESC in OSC 133 sequences (#3530)** (0a6a432)
- **fix: Capture session ID from stream headers rather than final event (#3531)** (2203a41)
- **fix: Atuin hangs when attempting to spawn daemon from Ctrl+R invocation (#3502)** (4475e17)
- **fix(ci): fossier install in scan workflow (#3485)** (68c048b)

### Backend
- **Merge branch 'main' into chore/remove-boilerplate-with-derive-more** (fd1ac18)
- **Merge pull request #2 from atuinsh/taylordotfish/markovejnovic/chore/remove-boilerplate-with-derive-more** (74e05ee)
- **Use `as_ref(str)` instead of `as_ref(forward)`** (215ce1c)
- **deslop lockfile** (476e8b2)
- **lockfile** (1950608)
- **deslop** (1be118c)
- **deslop** (2c28d45)
- **Don't resend command in `end_history`** (482576e)
- **Respect `store_failed` when using daemon** (f777449)
- **Update CONTRIBUTING.md** (54abd60)
- **Update CONTRIBUTING.md with AI usage guidelines** (02210ef)
- **Allow overriding model with env var (#3493)** (6ecbc8a)

### Docs
- **docs: add fish shell cleanup step to uninstall instructions (#3582)** (69c331a)
- **docs: make commented-out lines in config.toml match real defaults (#3583)** (e494f62)
- **docs: Fix command example typo in documentation (#3536)** (ba0ce4f)
- **docs: document store purge workflow (#3544)** (80dc058)
- **docs: Highlight `Ctrl-r` keybinding on docs page (#3489)** (b77b86b)

### Chore
- **chore(release): prepare for release 18.17.0 (#3594)** (0966e8b)
- **chore(rustdoc): fix Rustdoc warnings (#3585)** (d14c390)
- **chore(warnings): fix compile warnings with latest dependencies (#3586)** (2d975ee)
- **chore: adopt derive_more to reduce boilerplate (#3573)** (1a379ad)
- **chore: revert IsVariant and Constructor derives, narrow derive_more features** (b5ffc87)
- **chore: add IsVariant to ToolState and StreamPhase** (4bba51e)
- **chore: add Into, From, IsVariant, Error derives for remaining opportunities** (0d61de7)
- **chore: extend derive_more usage with Constructor, IsVariant, and full features** (7ca7461)
- **chore: adopt derive_more to reduce boilerplate across the workspace** (9e55507)
- **chore: update to Rust 1.96.1 (#3568)** (d1ee3d6)
- **chore(deps): bump lukemathwalker/cargo-chef from latest-rust-1.96.0-slim-bookworm to latest-rust-1.96.1-slim-bookworm (#3563)** (6b8f35c)
- **chore(deps): bump debian from bookworm-20260518-slim to bookworm-20260623-slim (#3554)** (1bc685f)
- **chore(deps): bump debian from bookworm-20260421-slim to bookworm-20260518-slim (#3500)** (e1ed175)
- **chore: update GitHub app token format** (c54d492)
- **chore(deps): bump lukemathwalker/cargo-chef** (c59c934)
- **chore: update to Rust 1.96 (#3507)** (42d4aff)
- **refactor: pull `fn into_utc` into atuin-server-database crate (#3487)** (27cf6d2)
- **chore: vouch for all existing contributors (#3486)** (17bc8f4)
- **refactor: Implement From<sqlx::Error> and clean up fix_error (#3484)** (d98ecd5)

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