mirror of
https://github.com/atuinsh/atuin.git
synced 2026-09-28 13:02:01 +02:00
### Bug Fixes - *(daemon)* Periodically flush captured command output to disk ([#4070](https://github.com/atuinsh/atuin/issues/4070)) - *(daemon)* Stream large DeleteHistory requests ([#4076](https://github.com/atuinsh/atuin/issues/4076)) - *(daemon)* Delete captured output when history entries are deleted ([#4074](https://github.com/atuinsh/atuin/issues/4074)) - *(nix)* Export OpenSSL lib for LD_LIBRARY_PATH in nix devshell ([#4018](https://github.com/atuinsh/atuin/issues/4018)) - *(pty-proxy)* Make PTY proxy aware of other PTYs ([#4079](https://github.com/atuinsh/atuin/issues/4079)) - *(server)* Wrap multi-write DB operations in transactions ([#4088](https://github.com/atuinsh/atuin/issues/4088)) - *(server)* Emit HTTP access logs at INFO and compile in debug tracing ([#4087](https://github.com/atuinsh/atuin/issues/4087)) - *(sync)* Expand a packfile whose range is a hole below the store head ([#4085](https://github.com/atuinsh/atuin/issues/4085)) - Normalize output of `atuin --version` ([#4038](https://github.com/atuinsh/atuin/issues/4038)) - Make `atuin ai init` a no-op instead of erroring ([#4040](https://github.com/atuinsh/atuin/issues/4040)) - Do not try to decrypt plaintext records ([#4057](https://github.com/atuinsh/atuin/issues/4057)) - Behavior of PTY proxy on terminal resizes ([#4061](https://github.com/atuinsh/atuin/issues/4061)) - Build error ([#4094](https://github.com/atuinsh/atuin/issues/4094)) ### Features - *(daemon)* Daemon owns History Deletion ([#4045](https://github.com/atuinsh/atuin/issues/4045)) - *(mcp)* Make agents actually use the atuin MCP server ([#4050](https://github.com/atuinsh/atuin/issues/4050)) - *(pty-proxy)* Keep the start and end of command captures that exceed the max size ([#4092](https://github.com/atuinsh/atuin/issues/4092)) - *(pty-proxy)* Mirror the CWD of the PTY proxy child ([#4091](https://github.com/atuinsh/atuin/issues/4091)) - Implement command capture and remove semantic.rs ([#4048](https://github.com/atuinsh/atuin/issues/4048)) - Simplify semantic captures ([#4065](https://github.com/atuinsh/atuin/issues/4065)) - Store terminal size in command captures ([#4072](https://github.com/atuinsh/atuin/issues/4072)) - Version Stored Output Capture and Avoid PB on disk ([#4068](https://github.com/atuinsh/atuin/issues/4068)) - Redact secrets from captured command output ([#4071](https://github.com/atuinsh/atuin/issues/4071)) - Rework inspector and add output view ([#4090](https://github.com/atuinsh/atuin/issues/4090)) - Add [output_capture] settings ([#4069](https://github.com/atuinsh/atuin/issues/4069)) ### Miscellaneous Tasks - *(ci)* Limit concurrency of workflows on same branch ([#4073](https://github.com/atuinsh/atuin/issues/4073)) - Lift dependencies into top-level Cargo.toml ([#4042](https://github.com/atuinsh/atuin/issues/4042)) - Sort dependencies in `Cargo.toml`s ([#4046](https://github.com/atuinsh/atuin/issues/4046)) - Enable Clippy cast warnings ([#4049](https://github.com/atuinsh/atuin/issues/4049)) - Temporary workaround for flaky test ([#4083](https://github.com/atuinsh/atuin/issues/4083)) - Emit proptest regression artifacts so CI failures are reproducible ([#4084](https://github.com/atuinsh/atuin/issues/4084)) - Lockfile bumps ([#4089](https://github.com/atuinsh/atuin/issues/4089)) - Don't fail if we can't capture output ([#4086](https://github.com/atuinsh/atuin/issues/4086)) - Link to upstream rustix issue in atuin-pty-proxy ([#4093](https://github.com/atuinsh/atuin/issues/4093)) ### Refactor - *(daemon)* Manage sync inside of the daemon ([#4055](https://github.com/atuinsh/atuin/issues/4055)) - *(daemon)* Split output capture into fjall and nop backends ([#4082](https://github.com/atuinsh/atuin/issues/4082)) - *(deps)* Bump mkdocs-material from 9.7.0 to 9.7.7 in /docs in the uv group across 1 directory ([#4059](https://github.com/atuinsh/atuin/issues/4059)) - *(deps)* Bump vale-cli/vale-action from 2.1.2 to 3.0.0 ([#3887](https://github.com/atuinsh/atuin/issues/3887)) - *(deps)* Bump rpassword from 7.4.0 to 7.5.0 in the cargo group across 1 directory ([#3877](https://github.com/atuinsh/atuin/issues/3877)) - *(history)* Make HistoryId a Copy Uuid ([#4013](https://github.com/atuinsh/atuin/issues/4013)) - Clean up the history service and fix minor bugs ### Testing - *(daemon)* Adversarial test suites with new daemon ([#4058](https://github.com/atuinsh/atuin/issues/4058)) - E2e pty test harness ([#4075](https://github.com/atuinsh/atuin/issues/4075)) - Filtered commands leave no captured output ([#4081](https://github.com/atuinsh/atuin/issues/4081))
114 KiB
114 KiB
Changelog
All notable changes to this project will be documented in this file.
18.22.0
Bug Fixes
- (daemon) Periodically flush captured command output to disk (#4070)
- (daemon) Stream large DeleteHistory requests (#4076)
- (daemon) Delete captured output when history entries are deleted (#4074)
- (nix) Export OpenSSL lib for LD_LIBRARY_PATH in nix devshell (#4018)
- (pty-proxy) Make PTY proxy aware of other PTYs (#4079)
- (server) Wrap multi-write DB operations in transactions (#4088)
- (server) Emit HTTP access logs at INFO and compile in debug tracing (#4087)
- (sync) Expand a packfile whose range is a hole below the store head (#4085)
- Normalize output of
atuin --version(#4038) - Make
atuin ai inita no-op instead of erroring (#4040) - Do not try to decrypt plaintext records (#4057)
- Behavior of PTY proxy on terminal resizes (#4061)
- Build error (#4094)
Features
- (daemon) Daemon owns History Deletion (#4045)
- (mcp) Make agents actually use the atuin MCP server (#4050)
- (pty-proxy) Keep the start and end of command captures that exceed the max size (#4092)
- (pty-proxy) Mirror the CWD of the PTY proxy child (#4091)
- Implement command capture and remove semantic.rs (#4048)
- Simplify semantic captures (#4065)
- Store terminal size in command captures (#4072)
- Version Stored Output Capture and Avoid PB on disk (#4068)
- Redact secrets from captured command output (#4071)
- Rework inspector and add output view (#4090)
- Add [output_capture] settings (#4069)
Miscellaneous Tasks
- (ci) Limit concurrency of workflows on same branch (#4073)
- Lift dependencies into top-level Cargo.toml (#4042)
- Sort dependencies in
Cargo.tomls (#4046) - Enable Clippy cast warnings (#4049)
- Temporary workaround for flaky test (#4083)
- Emit proptest regression artifacts so CI failures are reproducible (#4084)
- Lockfile bumps (#4089)
- Don't fail if we can't capture output (#4086)
- Link to upstream rustix issue in atuin-pty-proxy (#4093)
Refactor
- (daemon) Manage sync inside of the daemon (#4055)
- (daemon) Split output capture into fjall and nop backends (#4082)
- (deps) Bump mkdocs-material from 9.7.0 to 9.7.7 in /docs in the uv group across 1 directory (#4059)
- (deps) Bump vale-cli/vale-action from 2.1.2 to 3.0.0 (#3887)
- (deps) Bump rpassword from 7.4.0 to 7.5.0 in the cargo group across 1 directory (#3877)
- (history) Make HistoryId a Copy Uuid (#4013)
- Clean up the history service and fix minor bugs
Testing
- (daemon) Adversarial test suites with new daemon (#4058)
- E2e pty test harness (#4075)
- Filtered commands leave no captured output (#4081)
18.21.0
Bug Fixes
- (daemon) Check for socket in
/tmpeven when$TMPDIRis set (#4036) - (daemon) Reject invalid pidfile pids before signalling (#4031)
- (deps) Update unsound/yanked dependencies (#4005)
- (docs) Disambiguate sqlx intra-doc links to functions (#4007)
- (server) Connect eagerly to MySQL so a bad db_uri fails fast (#4032)
- (sqlite) Prevent stale prepared-statement panic across migrations (#4006)
Features
Miscellaneous Tasks
Refactor
- (deps) Bump shlex from v1 to v2 (#4024)
- (server) Merge server database crates into atuin-server (#4009)
- (server) Polymorphic database (#4014)
- (server) Share SQLite + Postgres Database impls via a blanket impl (#4015)
18.20.1
Bug Fixes
- (client) Bound WAL growth with journal_size_limit + a periodic compactor (#3994)
- (docs) Correct sync_frequency default (#3984)
- (nu) Use unique keybinding names (#3975)
- Correct documented local_timeout default (#3983)
- Drop nonexistent session_path and correct path defaults (#3985)
- Auto-generate encryption key if it doesn't exist (#3998)
Features
- Switch terminal emulation to
atuin-vt100(#3995)
Miscellaneous Tasks
- (release) Include all crates in publish order
Refactor
18.20.0
Bug Fixes
- (ai) Execute commands from enter in the bash integration (#3892)
- (ai) Answer unrecognized tool calls with an error result (#3893)
- (bash) Localize "READLINE_{LINE,POINT}" in Bash <= 3.2 (#3926)
- (common) Survive wide characters on a one-column screen (#3876)
- (docs) Don't say
enter_acceptdefaults to true in example config.toml (#3865) - (history) Don't misclassify users named after an agent as agents (#3951)
- (install) Atuin init for bash (#3919)
- (nix) Add an RPATH for OpenSSL so the built binary runs (#3852)
- (search) Prepare daemon search index in shell init scripts (#3864)
- (search) Fall back when daemon-fuzzy fails (#3895)
- (search) Don't overflow on a session id with an out-of-range uuid timestamp (#3965)
- (sync) Fix off-by-one bugs in sync (#3913)
- (wrapped) Panic when every command is in stats.ignored_commands (#3925)
- (zsh) Don't clobber RPS1 when wrapping the prompt for OSC 133 (#3861)
- 'atuin login' prints 401 failures until authorized (#3916)
- Silence hub 401 log spam during installer login (#3918)
- Fix panics from
vt100::Parser::new(#3933) - Make pty-proxy socket path shorter (#3991)
Documentation
- Document rstest/proptest testing conventions in AGENTS.md (#3942)
Features
- (common) Add rmp::serde iterator-to-MessagePack helper (#3897)
- (daemon) Change default daemon socket path (#3910)
- (domain) Add RecordTag string enum (#3899)
- (sync) Send the auth token on the capabilities fetch when logged in (#3974)
- Add agent hooks for opencode (#3844)
- Add devcontainers (#3871)
- Setup claude in devcontainers (#3878)
- Add windows/powershell highlighting (#3883)
- Add turn time and tips to Atuin AI (#3870)
- Enable syntax highlighting on illumos (#3879)
- Offer account login during install setup (#3849)
- Client-side history packfiles (#3737)
- Parallel packfile upload/download (#3944)
- Eager Key Query (#3968)
- Capabilities-driven sync page size (#3979)
- Improve powershell highlighting (#3917)
- Enable gzip and zstd for reqwest (#3980)
Miscellaneous Tasks
- (ai) Remove obsolete
atuin ai initcommand (#3936) - (docker) Install the toolchain pinned by rust-toolchain.toml (#3963)
- (lints) Use workspace lints instead of overriding lints in GHA workflow (#3949)
- (rustfmt) Update Rustfmt config (#3945)
- (tests) Fix flaky pty-proxy test (#3874)
- Add profiling to the app (#3853)
- Temporarily drop tailscale and atuin (#3873)
- Instruct agents to use
rstestin AGENTS.md (#3912) - More xdg compliance (#3932)
- Remove atuin-nucleo (#3950)
- Enable more Clippy lints (#3953)
- Update to rust 1.98 (#3964)
- Revert changes to
atuin-pty-proxyfromlab sharePR / feat: store pty-proxy sockets in/tmp/atuin-$UID(#3988)
Performance
- (sql) Chunked bulk inserts + shared sqlite wrapper (#3981)
- (sync) Batch post-sync history indexing into bulk transactions (#3947)
- (sync) Parallel record downloads (#3955)
- (tracing) OTel export + instrumentation coverage (#3952)
Refactor
- (ai/bash) Use existing facility for accept-line (#3928)
- (bash) Remove redundant check of existing preexec-backend (#3927)
- (caps) CapClient owns its client and warms on construction (#3898)
- (client) Own sync_addr via Arc, drop Client lifetime (#3896)
- (client) Remove the Database trait in favor of Sqlite (#3946)
- (deps) Bump pymdown-extensions from 11.0 to 11.0.1 in /docs in the uv group across 1 directory (#3875)
- (domain) Make Record::with_data consume self, add with_data_clone (#3900)
- (domain) Make Record.version a RecordVersion enum (#3903)
- (domain) Drop the vestigial Host.name field (#3941)
- (encryption) Introduce PasetoV4Key newtype for the encryption key (#3860)
- (encryption) Move encryption into atuin-common. (#3863)
- (record) Name the (host, tag) pair as RecordSeriesKey (#3961)
- (sqlx) Use FromRow instead of manual row mapping (#3958)
- (sync) Introduce SyncEngine to hold shared sync state (#3962)
- Add a
CmdOriginType (#3943)
Bug
- Avoid rare race condition in sync (#3972)
18.19.0
Bug Fixes
- (client) Avoid panic decoding an empty encryption key (#3803)
- (client) Keep sqlx-postgres out of the client crate (#2884) (#3823)
- (config) Preserve comments in
atuin config set(#3766) - (search) Correct fuzzy result ranking (#3603) (#3624)
- Fix atuin-search-bench/benches/search.rs (#3788)
- Close OSC133 C when launching Atuin AI to prevent content erasure (#3794)
- Authenticate beta release push as atuin-bot (#3809)
- Copy vendored axoasset into docker builder stage (#3816)
Documentation
- Clarify update check network, provide build command (#3767)
- Remove old i18n docs (#3787)
- Use shell-agnostic install command in quickstart pages (#3820)
- Document named stats periods (today/week/month/year) (#3821)
- State minimum supported Rust version in install guide (#3822)
- Document iTerm2 tmux popup incompatibility (#3826)
- Clarify key binding snippets belong in shell startup file (#3837)
- Mention RustRover in IDE integration guidance (#3834)
Features
- (client) Show intent in inspector (#3804)
- (client) Enable pty-proxy via config (#3828)
- (config) Validate new settings in
atuin config setbefore writing them to disk (#3769) - (lab) Experimental
atuin lab share - (search) Remove the "skim" engine (#3825)
- Remove word with ALT-Backspace ALT-D (#2457)
- Add scheduled beta release workflow (#3805)
- Migrate TLS backend from rustls to native-tls (#3807)
- Make
updatea real subcommand (#3813) - Capability negotiation protocol (client + server) (#3797)
Miscellaneous Tasks
- (ci) Fix
packagestep (#3770) - Remove Store trait (#3779)
- Daemon search benchmark (divan + CodSpeed) (#3763)
- Run CodSpeed benchmarks on macro runners in walltime mode (#3786)
- Add
OrFilteras a replacement forVecs as filter lists (#3768) - Add
atuin-domaincrate for shared domain types (#3790) - Run CodSpeed walltime benchmarks on depot-macos-26 (#3791)
- Fix deny.toml and get it to run in CI (#3808)
- Remove codspeed workflow (#3812)
- Richer logging for atuin-server (#2564)
- Hide --active sharing (#3846)
Refactor
- (deps) Bump thiserror from 2.0.18 to 2.0.19 (#3839)
- (deps) Bump strum_macros from 0.27.2 to 0.28.0 (#3841)
- (deps) Bump tonic-types from 0.14.5 to 0.14.6 (#3842)
- (deps) Bump pulldown-cmark from 0.13.3 to 0.13.4 (#3840)
- (deps) Bump itertools from 0.14.0 to 0.15.0 (#3838)
- Adopt enum_dispatch for enum trait delegation (#3806)
Testing
- Adopt rstest across the workspace test suite (#3785)
Daemon
- Replace nucleo with frizbee, rank by match quality with frecency tiebreak (#3782)
18.18.1
Bug Fixes
- (crates.io) Fix installation from crates.io (#3764)
Refactor
- (daemon) Drop fs4, use std::fs file locking (#3753)
18.18.0
Bug Fixes
- (daemon) Index synced history directly instead of malformed SQL (#3627) (#3641)
- (deps) Update unsound/vulnerable dependencies in Cargo.lock (#3632)
- (docs) Repair every stale link in the repo (#3727)
- (docs) Make the incorrect-decrypt-key error actionable (#3609)
- (hook) Drop agent commands containing NUL bytes via NonNulStr (#3589) (#3660)
- (import) Survive corrupt entries instead of aborting the import (#3721)
- (init) Fix include guard in Bash init script; chore(init): improve inclusion of shell init scripts in Rust (#3645)
- (install) Make /dev/tty authoritative for interactivity detection (#3691)
- (search) Add
DbSearchMode; correctly fall back to "fuzzy" in non-interactive searches (#3744) - (ui) Calculate preview height based on command display width instead of byte count (#3678)
- (win32) Cargo-binstall package metadata (#3673)
- Search functionality to respect character offsets and non-ASCII (#3659)
- Quote argument-hint YAML values so Copilot CLI ≥1.0.65 loads all skills (#3613) (#3614)
- Correct grammar in 'history last' help text (#3430)
- Work around rust nightly warning on eyre bail (#3680)
- Improve non-interactive TTY detection in install.sh (#3315)
- Add /model hint to status bar (#3687)
- Set correct umask for pty-proxy (#3700)
- Atuin AI not erasing the input box before closing (#3715)
- Show server status next to AI progress indicator (#3723)
- Show full command when using AtuinOutput tool (#3725)
Documentation
- (ai) Add self hosting + slash command docs (#3623)
- (config) Standardize TOML examples for config options (#3441)
- Advise users to pass
--lockedwhen installing from Cargo (#3630) - Add docs for store_failed and default for enter_accept (#2696)
- Serve docs.atuin.sh from this repo; remove Desktop docs (#3684)
- Version docs.atuin.sh with mike (per-release + main) (#3688)
- Hotfix bad path (#3690)
- Document built-in bash-preexec (#3651)
- Retheme docs.atuin.sh to the Atuin brand (#3701)
- Bundle of improvements (#3716)
- Remove ugly cards on landing page (#3724)
- Fix broken README links (#3696)
- Lint prose with Vale and gate it in CI (#3726)
- Slightly nicer default config.toml order (#2485)
- Kubernetes self-hosting documentation (#3238)
- Add canonical Supported platforms page (#3736)
- Add friendly hover tips for new terms (#3740)
- Clarify how to uninstall shell integration (#3741)
Features
- (ai) Up/down to scroll through previously sent messages (#3720)
- (bash) Bundle bash-preexec with Atuin; automatically load if no other preexec backend is loaded (#3650)
- (search) Add
--shelloption toatuin searchto filter results by shell (#3658) - (search) Syntax highlight commands in interactive search (#3704)
- (search) Filter by shell in interactive search (#3692)
- (string) EllipsizeExt -- General-purpose utility for adding ellipses to strings (#3639)
- Add 'yolo' setting to Atuin AI options (#3637)
- Add
shellfield to history entries (#3636) - Add hickory-dns resolver for musl target to improve DNS resolution (#3647)
- Add atuin stats --filter-mode (#1737)
- More aggressive optimizations for dist release (#3683)
- Capture zsh comments as history (#3699)
- Allow injecting extra HTTP headers on sync server requests (#3718)
Miscellaneous Tasks
- (atuin-common) Add ellipsize_or_pad for unicode pad (#3663)
- (ci) Bump GitHub Actions to latest versions (#3689)
- (ci) Lint tests & docs in CI (#3746)
- (clap) Simplify clap field types and fix help message formatting (#3640)
- (logging) Refactor logging (#3622)
- (release-skill) Time label-gated PR merges around the release (#3654)
- Remove fossier (#3629)
- Trigger docs repo deploy (#3631)
- Remove redundant test (#3635)
- Add
.editorconfigand.nvim.lua(#3648) - Clean up
WordJumperin atuin/src/command/client/search/cursor.rs (#3662) - Don't panic if clipboard cannot be accessed (#2648)
- Update some dependency versions (#3666)
- Update sqlx to v9 (#3668)
- Follow-up on #1737 (#3649)
- Update Atuin AI to eye-declare v0.6.1 (#3686)
- Remove docs-dispatch (#3694)
- Docker healtcheck (#2451)
- Run windows jobs on depot-windows-2025-16 (#3711)
- Hotfix script (#3714)
- Update flake.nix (#3509)
- Add Timezone and restart policy for postgres backup docker (#3083)
- Add riscv64 to release targets (#3339)
- Build x86_64-apple-darwin on Depot M4 macs; move all macOS CI to Depot (#3742)
Performance
- Do not block counting history (#3729)
- Actually delete history rows, and index active history (#3730)
- Index filtered history search, record store tags, and cache inspector stats (#3731)
Refactor
- (hook) Typed protocol for agent hook events (#3638)
- (render) Slightly nicer and more correct non-printable escaping (#3633)
- (sync) Remove deprecated V1 sync protocol (#3634)
- Use typed Url instead of hand-built string URLs (#3644)
- Extract shared vt100 logic into atuin-common (#3664)
Styling
- Improve Atuin AI TUI styles (#3710)
Testing
- Parametrize tests with rstest across 8 crates (#3653)
Bug
18.17.1
Bug Fixes
- (ai) Default to non-Hub mode for custom AI endpoints (#3620)
- (import) Fix order of entries imported from zsh history (#3597)
- (import) Fix import order of nushell history entries (#3598)
- Various prefix mode bugs (#3616)
Documentation
- Document output capture and mcp (#3595)
Features
- (tui) Truncate long commands from middle to show start...end (#3602)
Miscellaneous Tasks
18.17.0
Bug Fixes
- (ai) Dispatch skills registered in the slash command registry (#3593)
- (ci) Fossier install in scan workflow (#3485)
- (i18n) Fix typos in Russian localization (#3575)
- (nu) Use
char -u 1bfor ESC in OSC 133 sequences (#3530) - (nu) Suppress error when
ATUIN_HISTORY_IDis missing inpre_prompthook (#3587) - (pi) Observe tool events instead of registering a bash tool (#3557)
- (pty-proxy) Set
$SHELLto the spawned shell (#3548) - (search) Fix terminal clearing with latest Ratatui (#3578)
- (sync) Skip records that fail to decrypt or decode instead of failing the whole store (#3569)
- Atuin hangs when attempting to spawn daemon from Ctrl+R invocation (#3502)
- Capture session ID from stream headers rather than final event (#3531)
- Doctor resiliency fo runknown platforms + openbsd warning (#3551)
- Double input on arrow keys in AI setup prompt on Windows (#3552)
- Exclude AI agent commands from zsh-autosuggestions (#3567)
- Silence shellcheck SC2016 on literal
$all-userauthor filter - Respect
store_failedwhen using daemon (#3571)
Documentation
- Highlight
Ctrl-rkeybinding on docs page (#3489) - Document store purge workflow (#3544)
- Fix command example typo in documentation (#3536)
- Make commented-out lines in
config.tomlmatch real defaults (#3583) - Add fish shell cleanup step to uninstall instructions (#3582)
Features
- (doctor) Add whether daemon is enabled to
doctoroutput (#3572) - (pty-proxy) Add
--shellflag to override the spawned shell (#3327) - Setup fossier to stop bot slop prs (#3482)
- Capture command output + expose to new
atuin_outputtool (#3510) - Cache user contexts on load until
/reload(#3525) - Create database integration tests for atuin-server (#3514)
- Add
/modelslash command for changing models (#3576) - Add mcp server for history tools and expand search filters (#3581)
- Add status bar with model and usage information (#3591)
Miscellaneous Tasks
- (rustdoc) Fix Rustdoc warnings (#3585)
- (warnings) Fix compile warnings with latest dependencies (#3586)
- Vouch for all existing contributors (#3486)
- Update GitHub app token format
- Update to Rust 1.96.1 (#3568)
- Adopt
derive_moreto reduce boilerplate across the codebase (#3573)
Performance
- (search) Scan history by recency until N unique (#3553)
- Add
synchronous(Normal)+optimize_on_closeto record store SQLite (#3577) - Remove unnecessary clones in a hot path (#3580)
Refactor
- Implement
From<sqlx::Error>and clean upfix_error(#3484) - Pull
fn into_utcintoatuin-server-databasecrate (#3487)
18.16.1
Bug Fixes
- (shell/xonsh) Use os.devnull instead of hard-coded /dev/null (#3464)
- Atuin update on windows (#3453)
- Ensure local key matches remote data before syncing (#3474)
Documentation
- Add related projects section to README
Features
- (ui) Prominent banner for wrong-key errors at login/sync (#3475)
Miscellaneous Tasks
18.16.0
Features
This release brings full agentic workflows to Atuin AI with file read+write tools, shell command execution, skills, and more. Check out the docs for Atuin AI for more information.
- AI tool rendering overhaul + edit_file tool (#3423)
- Implement write_file tool with overwrite safety (#3432)
- Shell tool execution timeouts (#3437)
- Send user-defined context with
TERMINAL.md(#3443) - Add skill discovery, loading, and invocation (#3444)
Bug Fixes
- Shell tool preview stuck as Running after completion (#3436)
- Require all subcommands covered for shell allow rules (#3440)
- Minor issues with fish's vim mode(s) (#3362)
Documentation
Miscellaneous Tasks
- Update to rust 1.95 (#3426)
- Clarified note about regular expressions matching in path. (#3427)
- Use cat -n format for read_file tool (#3435)
- Update to eye_declare 0.5.1 (#3449)
Performance
- Reduce AI TUI rendering overhead for long conversations (#3447)
Refactor
- Replace ad-hoc dispatch with FSM + driver architecture (#3434)
18.15.2
Bug Fixes
- Tab doesn't insert suggested command (#3420)
18.15.1
Bug Fixes
- Enter runs suggested command when selecting permissions (#3418)
18.15.0
Bug Fixes
- Install script incorrectly tries to install opencode hooks (#3410)
- Dependency fix (#3414)
- Loss of loading spinners + tokio panic on exit (#3415)
Features
- Add OCI standard labels to Dockerfile (#3412)
- Enable atuin hex for illumos (#3413)
- Allow resuming previous AI sessions (#3407)
Miscellaneous Tasks
- Add release script (#3411)
18.14.1
Bug Fixes
- Ensure we can publish to crates (#3403)
- Thread remote and content_length through system for server tool calls (#3404)
Documentation
- Add Tools & Permissions doc section (#3402)
18.14.0
Bug Fixes
- (ui) Make preview line breaking algorithm aware of CJK double-width characters (#3360)
- (ui) When inverted, invert scroll events handling (#3373)
- Replace
e>|with|in nushell integration to restore history recording (#3358) - Resolve git worktrees to main repo in workspace filter (#3366)
- Ensure daemon is running (#3384)
Documentation
- Remove docker-compose duplication (#3376)
- Cover prefix mode properly (#3383)
- Minor readability improvement to README (#3381)
Features
- Opt-in to sharing last command with ai (#3367)
- Add 'atuin config' subcommand for reading and setting config values (#3368)
- Option to disable mouse support (#3372)
- Add support for deleting all matching commands via keybindings (#3375)
- Add strip_trailing_whitespace, on by default (#3390)
- Client-tool execution + permission system (#3370)
- Add history tail for live monitoring view (#3389)
- Track coding agent shell usage (#3388)
- Remove agent search from tui (#3397)
- Add pi hook installer (#3398)
- Autoinstall ai shell history hooks (#3399)
Miscellaneous Tasks
Refactor
- Rename examples -> contrib (#3400)
18.13.6
Bug Fixes
- (powershell) Handle non-FileSystem drives (#3353)
- Remove unnecessary arboard/image-data default feature (#3345)
- Use printf to append fish shell init block (#3346)
- Set WorkingDirectory in PowerShell Invoke-AtuinSearch (#3351)
Features
- Use eye-declare for more performant and flexible AI TUI (#3343)
Miscellaneous Tasks
18.13.5
Bug Fixes
- Atuin Hex fails to init on bash and zsh (#3341)
Documentation
- Fix duplicated word in Kubernetes guide (#3338)
Miscellaneous Tasks
- Prepare 18.13.5 (#3342)
18.13.4
Bug Fixes
- (ai) Restore url-quote-magic for ? in zsh (#3304)
- Redirect tty0 when running setup
- Redirect tty0 when running setup (#3302)
- Call ensure_hub_session even if primary sync endpoint is self-hosted
- Call ensure_hub_session even if primary sync endpoint is self-hosted (#3301)
- Remove per-event mouse capture toggling that leaked ANSI to stdout (#3299)
- Clarify what data is sent when using Atuin AI during setup (only OS and shell) (#3290)
- Better tty check (#3313)
- Disable features in init when that feature is explicitly disabled (#3328)
- Don't run 'atuin init' in 'atuin hex init' — each must be initialized separately (#3334)
Documentation
- Fix typo in FAQ alternatives section (#3292)
- Remove 'experimental' status from Atuin Daemon
- Remove 'experimental' status from Atuin Daemon (#3295)
- Add inline_height_shell_up_key_binding (#3270)
Features
- Report distro name with OS for distro-specific commands (#3289)
- Allow setting kv values from stdin
- Error if value not provided and no stdin
- Add a small atuin label to the ai box (#3309)
- Allow running
atuin search -ias subcommand on Windows (#3250) - Hex init nu (#3330)
Miscellaneous Tasks
- (ci) Tag docker images with semantic versions on tag creation (#3316)
- Replace atuin-ai rendering with component-oriented system (#3288)
- Refactor CLI auth flows and token storage (#3317)
18.13.3
Bug Fixes
- Nushell 0.111; future Nushell 0.112 support (#3266)
Features
- Call atuin setup from install script (#3265)
- Allow headless account ops against Hub server (#3280)
- Add custom filtering and scoring mechanisms
Miscellaneous Tasks
- (ci) Migrate to depot runners (#3279)
- (ci) Use depot to build docker images too (#3281)
- (ci) Use github for macos
- Update changelog
- Update permissions in Docker workflow (#3283)
- Change CHANGELOG format to be easier to parse
- Symlink changelog so dist can pick it up
- Vendor nucleo-ext + fork, so we can depend on our changes properly (#3284)
- Update changelog
18.13.2
Miscellaneous Tasks
- (release) Building windows aarch64 was overly optimistic
- Update changelog
18.13.1
Miscellaneous Tasks
- (release) Update dist, remove custom runners
- Update changelog
18.13.0
Bug Fixes
- (deps) Add use-dev-tty to crossterm in atuin-ai (#3185)
- (docs) Update Postgres volume path in Docker as required by pg18 (#3174)
- Systemd Exec for separate server binary (#3176)
- Multiline commands with fish (#3179)
- Silent DB failures e.g. when disk is full (#3183)
- Forward $PATH to tmux popup in zsh (#3198)
- Dramatically decrease daemon memory usage (#3211)
- Regen cargo dist
- Clear script database before rebuild to prevent unique constraint violation (#3232)
- Support Nushell 0.111 (#3249)
- Ctrl-c not exiting ai (#3256)
Documentation
- Update config.md to remove NuShell support note (#3190)
- Document
search.filters(#3195) - Clean up doc references for sqlite-based self-hosting (#3216)
- Document daemon-fuzzy search mode (#3254)
Features
- (docs) Add Shell Integration and Interoperability docs (#3163)
switch-context(#3149)- Add Hub authentication for future sync + extra features (#3010)
- Add Atuin AI inline CLI MVP (#3178)
- Add autostart and pid management to daemon (#3180)
- Generate commands or ask questions with
atuin ai(#3199) - Add history author/intent metadata and v1 record version (#3205)
- In-memory search index with atuin daemon (#3201)
- Update script for smoother setup (#3230)
- Initial draft of atuin-shell (#3206)
- Allow setting multipliers for frequency, recency, and frecency scores (#3235)
- Allow running
atuin search -ias subcommand (#3208) - Use pty proxy for rendering tui popups without clearing the terminal (#3234)
- Allow authenticating with Atuin Hub (#3237)
- Initialize Atuin AI by default with
atuin init(#3255) - Add
atuin setup(#3257)
Miscellaneous Tasks
- Update changelog
- Update changelog
- Update changelog
- Use workspace versions (#3210)
- Move atuin ai subcommand into core binary (#3212)
- Update changelog
- Update to Rust 1.94 (#3247)
- Strip symbols in dist profile to reduce binary size
- Upgrade thiserror 1.x to 2.x to deduplicate dependency
- Upgrade axum 0.7 to 0.8 to deduplicate with tonic's axum
- Update changelog
- Update changelog
- Update changelog
- Update changelog
18.12.1
Bug Fixes
- (shell) Fix ATUIN_SESSION errors in tmux popup (#3170)
- (tui) Enter in vim normal mode, shift-tab keybind (#3158)
- Server start commands for Docker. (#3160)
Features
- Expand keybinding system with vim motions, media keys, and inspector improvements (#3161)
- Add original-input-empty keybind condition (#3171)
Miscellaneous Tasks
- Update changelog
18.12.0
Bug Fixes
- (powershell) Preserve
$LASTEXITCODE(#3120) - (powershell) Display search stderr (#3146)
- (search) Allow hyphen-prefixed query args like
---(#3129) - (tui) Space and F1-F24 keys not handled properly by new keybind system (#3138)
- (ui) Don't draw a leading space for command
- (ui) Time column can take up to 9 cells
- (ui) Align cursor with the expand column (usually the command)
- (ui) Align cursor when expand column is in the middle (#3103)
- Zsh import multiline issue (#2799)
- Do not hit sync v1 endpoints for status
- Do not hit sync v1 endpoints for status (#3102)
- Do not set ATUIN_SESSION if it is already set (#3107)
- Custom data dir test on windows (#3109)
- New session on shlvl change (#3111)
- Larger exit column width on Windows (#3119)
- Halt sync loop if server returns an empty page (#3122)
- Use directories crate for home dir resolution (#3125)
- Tab behaving like enter, eprintln (#3135)
- Issue with shift and modifier keys (#3143)
- Remove invalid IF EXISTS from sqlite drop column migration (#3145)
Documentation
- (CONTRIBUTING) Update links (#3117)
- (README) Update links (#3116)
- (config) Clarify scope of directory filter_mode (#3082)
- (configuration) Describe new utility "atuin-bind" for Bash (#3064)
- (installation) Add mise alternative installation method (#3066)
- Various improvements to the
atuin importdocs (#3062) - Disambiguate 'setup' (noun) vs. 'set up' (verb) (#3061)
- Fix punctuation and grammar in basic usage guide (#3063)
- Expand and clarify usage of the history prune command (#3084)
- Small edit to themes website file (#3069)
- Config/ with initial uid:gid
- Add PowerShell install instructions
- Add PowerShell and Windows install instructions (#3096)
- Update the
[keys]docs (#3114) - Add history deletion guide (#3130)
- Update how to use Docker to self-host (#3148)
- Add IRC contact information to README
Features
- (dotfiles) Add sort and filter options to alias/var list (#3131)
- (theme) Note new default theme name and syntax (#3080)
- (tui) Add clear-to-start/end actions (#3141)
- (ui) Highlight fulltext search as fulltext search instead of fuzzy search
- (ui) Highlight fulltext search as fulltext search instead of fuzzy search (#3098)
- (ultracompact) Adds setting for ultracompact mode (#3079)
- Add custom column support (#3089)
- Left arrow/backspace on empty to start edit (#3090)
- Add more vim movement bindings for navigation (#3041)
- Support setting a custom data dir in config (#3105)
- Remove user verification functionality (#3108)
- Add option to use tmux display-popup (#3058)
- Move atuin-server to its own binary (#3112)
- Add a parameter to the sync to specify the download/upload page (#2408)
- Replace several files with a sqlite db (#3128)
- Add new custom keybinding system for search TUI (#3127)
Miscellaneous Tasks
- Remove total_history from api index response (#3094)
- BREAKING: remove total_history from api index response (#3094)
- Update to rust 1.93
- Update to rust 1.93 (#3101)
- Update changelog
- Update agents.md (#3126)
- Update changelog
- Update changelog
- Update changelog
Theming
- Explain how to set ANSI codes directly (#3065)
Faq
- Add alternative projects (#3076)
18.11.0
Bug Fixes
- (bash) Fix issues with intermediate key sequences in the vi editing mode (#2977)
- (bash) Work around a keybinding bug of Bash 5.1 (#2975)
- (bash/blesh) Suppress error message for auto-complete source (#2976)
- (powershell) Run
atuin history endin the background (#3034) - (powershell) Add error safety and cleanup (#3040)
- Highlight the correct place when multibyte characters are involved (#2965)
- Prevent interactive search crash when update check fails (#3016)
- Move thorough search through search.filters w/ workspaces (#2703)
Documentation
- Migrate docs from separate repo to
docssubfolder (#3018)
Features
- Support additional history filenames in replxx importer (#3005)
- Add colors to --help/-h (#3000)
- Add support for read replicas to postgres (#3029)
- Allow disabling sync v1 (#3030)
- Consider atuin dotfile aliases when calculating atuin wrapped (#3048)
- Add session and uuid column support to history list (#3049)
Miscellaneous Tasks
- (nix) Prevent deprecation warning on evaluation (#3006)
- Update changelog
- Adjust update wording (#2974)
- Add Windows builds, second try (#2966)
- Update to rust 1.91 (#2981)
- Add Atuin Desktop information to install script
- Remove trailing whitespace (#2985)
- Fix typo (#2994)
- Clarify docstring of the enter_accept config key (#3003)
- Fix github action syntax for variables (#2998)
- Add AGENTS.md
- Update changelog
- Remove x86_64 mac from build targets (#3052)
Build
- (nix) Update rust toolchain hash (#2990)
18.10.0
Bug Fixes
- Stats ngram window size cli parsing (#2946)
Features
- (bash) Use Readline's accept-line for enter_accept (#2953)
- Add commit to displayed version info (#2922)
- Add import from PowerShell history (#2864)
- Interactive Inspector (#2319)
- Nu ≥ 0.106.0 support commandline accept (#2957)
Miscellaneous Tasks
- Update rusty_paseto and rusty_paserk (#2942)
- Update changelog
18.9.0
Bug Fixes
- (dotfiles) Properly escape spaces/quotes in vars
- Clippy issues on Windows (#2856)
- Honor timezone in inspector stats (#2853)
- Make status exit 1 if not logged in (#2843)
- Match logic of theme directory with settings directory, so ATUIN_CONFIG_DIR is respected (#2707)
- Expand path for daemon.socket_path (#2870)
- Use fullscreen if
inline_heightis too large (#2888) - Clean up new rustc and clippy warnings on Rust 1.89
cargo updateand changes needed to accomodate it- Run
cargo fmt - Clippy warnings I don't have on my version of clippy
- Add forgotten
rust-toolchain.tomlto match changes (oops) - Update version in Cargo.toml + github workflows
- Clippy warnings
- Dissociate command_chaining from enter_accept
- Remove atuin_chain_command prefix
- Docker compose link (#2914)
- Fish up binding (#2902)
Features
- (stats) Add dotnet to default common subcommands
- (tui) Select entries using number in vim-normal mode. closes #2368 (#2893)
- (tui) Add show_numeric_shortcuts config to hide 1-9 shortcuts (#2766)
- Highlight matches in interactive search (#2653)
- Add session-preload filter mode to include global history from before session start
- Add various acceptance keys (#2928)
- More accurately filter secret tokens (#2932)
- Add shell pipelines to command chaining (#2938)
Miscellaneous Tasks
- Update changelog
- Remove legacy Apple SDK frameworks (#2885)
- Update dist workflows
- Update to Rust 1.90 (#2916)
Refactor
- Shell environment variables
Build
- Update flake.nix with new sha256
18.8.0
Bug Fixes
- (build) Enable sqlite feature for sqlite server (#2848)
- Make login exit 1 if already logged in (#2832)
- Use transaction for idx consistency checking (#2840)
- Ensure the idx cache is cleaned on deletion, only insert if records are inserted (#2841)
Features
- Command chaining (#2834)
- Add info for 'official' plugins (#2835)
- Support multi part commands (#2836) (#2837)
- Add inline_height_shell_up_key_binding option (#2817)
- Add IDX_CACHE_ROLLOUT (#2850)
Miscellaneous Tasks
- Update to rust 1.88 (#2815)
Nushell
- Fix
get -ideprecation (#2829)
18.7.1
Bug Fixes
- Add check for postgresql prefix (#2825)
Miscellaneous Tasks
- Update changelog
18.7.0
Bug Fixes
- (api) Allow trailing slashes in sync_address (#2760)
- (doctor) Mention the required ble.sh version (#2774)
- (search) Prevent panic on malformed format strings (#2776) (#2777)
- Clarify that HISTFILE, if used, must be exported (#2758)
- Don't print errors in
zsh_autosuggesthelper (#2780) atuin.nuenchancements (#2778)- Refuse "--dupkeep 0" (#2807)
Features
- Add sqlite server support for self-hosting (#2770)
Miscellaneous Tasks
- (ci) Install toolchain that matches rust-toolchain.toml (#2759)
- Allow setting script DB path (#2750)
18.6.1
Bug Fixes
- Selection vs render issue (#2706)
Features
- (stats) Add jj to default common subcommands (#2708)
- Delete duplicate history (#2697)
- Sort
atuin store statusoutput (#2719) - Implement KV as a write-through cache (#2732)
Miscellaneous Tasks
18.5.0
Bug Fixes
- (1289) Clear terminal area if inline (#2600)
- (bash) Fix preexec of child Bash session started by enter_accept (#2558)
- (build) Change atuin-daemon build script .proto paths (#2638)
- (kv) Filter deleted keys from
kv list(#2665) - (stats) Ignore leading environment variables when calculating stats (#2659)
- (wrapped) Fix crash when history is empty (#2508)
- (zsh) Fix an error introduced earilier with support for bracketed paste mode (#2651)
- (zsh) Avoid calling user-defined widgets when searching for history position (#2670)
- Add .histfile as file to look for when doing atuin import zsh (#2588)
- Panic when invoking delete on empty tui (#2584)
- Sql files checksums (#2601)
- Up binding with fish 4.0 (#2613) (#2616)
- Don't save empty commands (#2605)
- Improve broken symlink error handling (#2589)
- Multiline command does not honour max_preview_height (#2624)
- Typeerror in client sync code (#2647)
- Add redundant clones to clippy and cleanup instances of it (#2654)
- Allow -ve values for timezone (#2609)
- Fish up binding bug (#2677)
- Switch to astral cargo-dist (#2687)
Documentation
- Update logo and badges in README for zh-CN (#2392)
Features
- (client) Update AWS secrets env var handling checks (#2501)
- (health) Add health check endpoint at
/healthz(#2549) - (kv) Add support for 'atuin kv delete' (#2660)
- (wrapped) Add more pkg managers (#2503)
- (zsh) Try to go to the position in zsh's history (#1469)
- (zsh) Re-enable bracketed paste (#2646)
- Add the --print0 option to search (#2562)
- Make new arrow key behavior configurable (#2606)
- Use readline binding for ctrl-a when it is not the prefix (#2626)
- Option to include duplicate commands when printing history commands (#2407)
- Binaries as subcommands (#2661)
- Support storing, syncing and executing scripts (#2644)
- Add 'atuin scripts rm' and 'atuin scripts ls' aliases; allow reading from stdin (#2680)
Miscellaneous Tasks
- Remove unneeded dependencies (#2523)
- Update rust toolchain to 1.85 (#2618)
- Align daemon and client sync freq (#2628)
- Migrate to rust 2024 (#2635)
- Show host and user in inspector (#2634)
- Update to rust 1.85.1 (#2642)
- Update to rust 1.86 (#2666)
Performance
- Cache
SECRET_PATTERNS'sRegexSet(#2570)
Styling
- Avoid calling
unwrap()when we don't have to (#2519)
Build
- (nix) Bump
flake.lock(#2637)
Flake.lock
- Update (#2463)
18.4.0
Bug Fixes
- (crate) Add missing description (#2106)
- (crate) Add description to daemon crate (#2107)
- (daemon) Add context to error when unable to connect (#2394)
- (deps) Pin tiny_bip to 1.0.0 until breaking change resolved (#2412)
- (docker) Update Dockerfile (#2369)
- (gui) Update deps (#2116)
- (gui) Add support for checking if the cli is installed on windows (#2162)
- (gui) WeekInfo call on Edge (#2252)
- (gui) Add \r for windows (shouldn't effect unix bc they should ignore it) (#2253)
- (gui) Terminal resize overflow (#2285)
- (gui) Kill child on block stop (#2288)
- (gui) Do not hardcode db path (#2309)
- (gui) Double return on mac/linux (#2311)
- (gui) Cursor positioning on new doc creation (#2310)
- (gui) Random ts errors (#2316)
- (history) Logic for store_failed=false (#2284)
- (mail) Incorrect alias and error logs (#2346)
- (mail) Enable correct tls features for postmark client (#2347)
- (theme) Restore original colours (#2339)
- (themes) Restore default theme, refactor (#2294)
- (tui) Press ctrl-a twice should jump to beginning of line (#2246)
- (tui) Don't panic when search result is empty and up is pressed (#2395)
- Cargo binstall config (#2112)
- Unitless sync_frequence = 0 not parsed by humantime (#2154)
- Some --help comments didn't show properly (#2176)
- Ensure we cleanup all tables when deleting (#2191)
- Add idx cache unique index (#2226)
- Idx cache inconsistency (#2231)
- Ambiguous column name (#2232)
- Atuin-daemon optional dependency (#2306)
- Windows build error (#2321)
- Codespell config still references the ui (#2330)
- Remove dbg! macro (#2355)
- Disable mail by default, resolve #2404 (#2405)
- Time offset display in
atuin status(#2433) - Disable the actuated mirror on the x86 docker builder (#2443)
Documentation
- (README) Fix broken link (#2206)
- (gui) Update README (#2283)
- Streamline readme (#2203)
- Update quickstart install command (#2205)
Features
- (bash/blesh) Hook into BLE_ONLOAD to resolve loading order issue (#2234)
- (client) Add filter mode enablement and ordering configuration (#2430)
- (daemon) Follow XDG_RUNTIME_DIR if set (#2171)
- (gui) Automatically install and setup the cli/shell (#2139)
- (gui) Add activity calendar to the homepage (#2160)
- (gui) Cache zustand store in localstorage (#2168)
- (gui) Toast with prompt for cli install, rather than auto (#2173)
- (gui) Runbooks that run (#2233)
- (gui) Use fancy new side nav (#2243)
- (gui) Add runbook list, ability to create and delete, sql storage (#2282)
- (gui) Background terminals and more (#2303)
- (gui) Clean up home page, fix a few bugs (#2304)
- (gui) Allow interacting with the embedded terminal (#2312)
- (gui) Directory block, re-org of some code (#2314)
- (gui) Folder select dialogue for directory block (#2315)
- (history) Filter out various environment variables containing potential secrets (#2174)
- (tui) Configurable prefix character (#2157)
- (tui) Customizable Themes (#2236)
- (tui) Fixed preview height option (#2286)
- Use cargo-dist installer from our install script (#2108)
- Add user account verification (#2190)
- Add GitLab PAT to secret patterns (#2196)
- Add several other GitHub access token patterns (#2200)
- Add npm, Netlify and Pulumi tokens to secret patterns (#2210)
- Allow advertising a fake version to clients (#2228)
- Monitor idx cache consistency before switching (#2229)
- Ultracompact Mode (search-only) (#2357)
- Right Arrow to modify selected command (#2453)
- Provide additional clarity around key management (#2467)
- Add
atuin wrapped(#2493)
Miscellaneous Tasks
- (build) Compile protobufs with protox (#2122)
- (ci) Do not run current ci for ui (#2189)
- (ci) Codespell again (#2332)
- (deps-dev) Bump @tauri-apps/cli in /ui (#2135)
- (deps-dev) Bump vite from 5.2.13 to 5.3.1 in /ui (#2150)
- (deps-dev) Bump @tauri-apps/cli in /ui (#2277)
- (deps-dev) Bump tailwindcss from 3.4.4 to 3.4.6 in /ui (#2301)
- (install) Use posix sh, not bash (#2204)
- (nix) De-couple atuin nix build from nixpkgs rustc version (#2123)
- Add installer e2e tests (#2110)
- Remove unnecessary proto import (#2120)
- Update to rust 1.78
- Add audit config, ignore RUSTSEC-2023-0071 (#2126)
- Setup dependabot for the ui (#2128)
- Cargo and pnpm update (#2127)
- Update to rust 1.79 (#2138)
- Update to cargo-dist 0.16, enable attestations (#2156)
- Do not use package managers in installer (#2201)
- Enable record sync by default (#2255)
- Remove ui directory (#2329)
- Update to rust 1.80 (#2344)
- Update rust to
1.80.1(#2362) - Enable inline height and compact by default (#2249)
- Update to rust 1.82 (#2432)
- Update cargo-dist (#2471)
Performance
Testing
- Add env ATUIN_TEST_LOCAL_TIMEOUT to control test timeout of SQLite (#2337)
Flake.lock
18.3.0
Bug Fixes
- (bash) Fix a workaround for bash-5.2 keybindings (#2060)
- (ci) Release workflow (#1978)
- (client) Better error reporting on login/registration (#2076)
- (config) Add quotes for strategy value in comment (#1993)
- (daemon) Do not try to sync if logged out (#2037)
- (deps) Replace parse_duration with humantime (#2074)
- (dotfiles) Alias import with init output (#1970)
- (dotfiles) Fish alias import (#1972)
- (dotfiles) More fish alias import (#1974)
- (dotfiles) Unquote aliases before quoting (#1976)
- (dotfiles) Allow clearing aliases, disable import (#1995)
- (stats) Generation for commands starting with a pipe (#2058)
- (ui) Handle being logged out gracefully (#2052)
- (ui) Fix mistake in last pr (#2053)
- Support not-mac for default shell (#1960)
- Adapt help to
enter_acceptconfig (#2001) - Add protobuf compiler to docker image (#2009)
- Add incremental rebuild to daemon loop (#2010)
- Alias enable/enabled in settings (#2021)
- Bogus error message wording (#1283)
- Save sync time in daemon (#2029)
- Redact password in database URI when logging (#2032)
- Save sync time in daemon (#2051)
- Replace serde_yaml::to_string with serde_json::to_string_yaml (#2087)
Documentation
Features
- (daemon) Add support for daemon on windows (#2014)
- (doctor) Detect active preexec framework (#1955)
- (doctor) Report sqlite version (#2075)
- (dotfiles) Support syncing shell/env vars (#1977)
- (gui) Work on home page, sort state (#1956)
- (history) Create atuin-history, add stats to it (#1990)
- (install) Add Tuxedo OS (#2018)
- (server) Add me endpoint (#1954)
- (ui) Scroll history infinitely (#1999)
- (ui) Add history explore (#2022)
- (ui) Use correct username on welcome screen (#2050)
- (ui) Add login/register dialog (#2056)
- (ui) Setup single-instance (#2093)
- (ui/dotfiles) Add vars (#1989)
- Allow ignoring failed commands (#1957)
- Show preview auto (#1804)
- Add background daemon (#2006)
- Support importing from replxx history files (#2024)
- Support systemd socket activation for daemon (#2039)
Miscellaneous Tasks
- (ci) Don't run "Update Nix Deps" CI on forks (#2070)
- (codespell) Ignore CODE_OF_CONDUCT (#2044)
- (install) Log cargo and rustc version (#2068)
- (release) V18.3.0-prerelease.1 (#2090)
- Move crates into crates/ dir (#1958)
- Fix atuin crate readme (#1959)
- Add some more logging to handlers (#1971)
- Add some more debug logs (#1979)
- Clarify default config file (#2026)
- Handle rate limited responses (#2057)
- Add Systemd config for self-hosted server (#1879)
- Switch to cargo dist for releases (#2085)
- Update email, gitignore, tweak ui (#2094)
- Show scope in changelog (#2102)
Performance
- (nushell) Use version.(major|minor|patch) if available (#1963)
- Only open the database for commands if strictly required (#2043)
Refactor
- Preview_auto to use enum and different option (#1991)
18.2.0
Bug Fixes
- (bash) Do not use "return" to cancel initialization (#1928)
- (crate) Add missing description (#1861)
- (doctor) Detect preexec plugin using env ATUIN_PREEXEC_BACKEND (#1856)
- (install) Install script echo (#1899)
- (nu) Update atuin.nu to resolve 0.92 deprecation (#1913)
- (search) Allow empty search (#1866)
- (search) Case insensitive hostname filtering (#1883)
- Pass search query in via env (#1865)
- Pass search query in via env for Nushell (#1874)
- Report non-decodable errors correctly (#1915)
- Use spawn_blocking for file access during async context (#1936)
Documentation
- (bash-preexec) Describe the limitation of missing commands (#1937)
- Add security contact (#1867)
- Add install instructions for cave/exherbo linux in README.md (#1927)
- Add missing cli help text (#1945)
Features
- (bash/blesh) Use _ble_exec_time_ata for duration even in bash < 5 (#1940)
- (dotfiles) Add alias import (#1938)
- (gui) Add base structure (#1935)
- (install) Update install.sh to support KDE Neon (#1908)
- (search) Process [C-h] and [C-?] as representations of backspace (#1857)
- (search) Allow specifying search query as an env var (#1863)
- (search) Add better search scoring (#1885)
- (server) Check PG version before running migrations (#1868)
- Add atuin prefix binding (#1875)
- Sync v2 default for new installs (#1914)
- Add 'ctrl-a a' to jump to beginning of line (#1917)
- Prevents stderr from going to the screen (#1933)
Miscellaneous Tasks
- (ci) Add codespell support (config, workflow) and make it fix some typos (#1916)
- (gui) Cargo update (#1943)
- Add issue form (#1871)
- Require atuin doctor in issue form (#1872)
- Add section to issue form (#1873)
Performance
- (dotfiles) Cache aliases and read straight from file (#1918)
18.1.0
Bug Fixes
- (bash) Rework #1509 to recover from the preexec failure (#1729)
- (build) Make atuin compile on non-win/mac/linux platforms (#1825)
- (client) No panic on empty inspector (#1768)
- (doctor) Use a different method to detect env vars (#1819)
- (dotfiles) Use latest client (#1859)
- (import/zsh-histdb) Missing or wrong fields (#1740)
- (nix) Set meta.mainProgram in the package (#1823)
- (nushell) Readd up-arrow keybinding, now with menu handling (#1770)
- (regex) Disable regex error logs (#1806)
- (stats) Enable multiple command stats to be shown using unicode_segmentation (#1739)
- (store-init) Re-sync after running auto store init (#1834)
- (sync) Check store length after sync, not before (#1805)
- (sync) Record size limiter (#1827)
- (tz) Attempt to fix timezone reading (#1810)
- (ui) Don't preserve for empty space (#1712)
- (xonsh) Add xonsh to auto import, respect $HISTFILE in xonsh import, and fix issue with up-arrow keybinding in xonsh (#1711)
- Fish init (#1725)
- Typo (#1741)
- Check session file exists for status command (#1756)
- Ensure sync time is saved for sync v2 (#1758)
- Missing characters in preview (#1803)
- Doctor shell wording (#1858)
Documentation
- Minor formatting updates to the default config.toml (#1689)
- Update docker compose (#1818)
- Use db name env variable also in uri (#1840)
Features
- (client) Add config option keys.scroll_exits (#1744)
- (dotfiles) Add enable setting to dotfiles, disable by default (#1829)
- (nix) Add update action (#1779)
- (nu) Return early if history is disabled (#1807)
- (nushell) Add nushell completion generation (#1791)
- (search) Process Ctrl+m for kitty keyboard protocol (#1720)
- (stats) Normalize formatting of default config, suggest nix (#1764)
- (stats) Add linux sysadmin commands to common_subcommands (#1784)
- (ui) Add config setting for showing tabs (#1755)
- Use ATUIN_TEST_SQLITE_STORE_TIMEOUT to specify test timeout of SQLite store (#1703)
- Add 'a', 'A', 'h', and 'l' bindings to vim-normal mode (#1697)
- Add xonsh history import (#1678)
- Add 'ignored_commands' option to stats (#1722)
- Support syncing aliases (#1721)
- Change fulltext to do multi substring match (#1660)
- Add history prune subcommand (#1743)
- Add alias feedback and list command (#1747)
- Add PHP package manager "composer" to list of default common subcommands (#1757)
- Add '/', '?', and 'I' bindings to vim-normal mode (#1760)
- Add
CTRL+[binding as<Esc>alias (#1787) - Add atuin doctor (#1796)
- Add checks for common setup issues (#1799)
- Support regex with r/.../ syntax (#1745)
- Guard against ancient versions of bash where this does not work. (#1794)
- Add automatic history store init (#1831)
- Adds info command to show env vars and config files (#1841)
Miscellaneous Tasks
- (ci) Add cross-compile job for illumos (#1830)
- (ci) Setup nextest (#1848)
- Do not show history table stats when using records (#1835)
Performance
- Optimize history init-store (#1691)
Refactor
- (alias) Clarify operation result for working with aliases (#1748)
- (nushell) Update
commandlinesyntax, closes #1733 (#1735) - Rename atuin-config to atuin-dotfiles (#1817)
18.0.1
Bug Fixes
- Reorder the exit of enhanced keyboard mode (#1694)
18.0.0
Bug Fixes
- (bash) Avoid unexpected
atuin history startfor keybindings (#1509) - (bash) Prevent input to be interpreted as options for blesh auto-complete (#1511)
- (bash) Work around custom IFS (#1514)
- (bash) Fix and improve the keybinding to
up(#1515) - (bash) Work around bash < 4 and introduce initialization guards (#1533)
- (bash) Strip control chars generated by
\[\]in PS1 with bash-preexec (#1620) - (bash/preexec) Erase the prompt last line before Bash renders it
- (bash/preexec) Erase the previous prompt before overwriting
- (bash/preexec) Support termcap names for tput (#1670)
- (docs) Update repo url in CONTRIBUTING.md (#1594)
- (fish) Integration on older fishes (#1563)
- (perm) Set umask 077 (#1554)
- (search) Fix invisible tab title (#1560)
- (shell) Fix incorrect timing of child shells (#1510)
- (sync) Save sync time when it starts, not ends (#1573)
- (tests) Add Settings::utc() for utc settings (#1677)
- (tui) Dedupe was removing history (#1610)
- (windows) Disables unix specific stuff for windows (#1557)
- Prevent input to be interpreted as options for zsh autosuggestions (#1506)
- Disable musl deb building (#1525)
- Shorten text, use ctrl-o for inspector (#1561)
- Print literal control characters to non terminals (#1586)
- Escape control characters in command preview (#1588)
- Use existing db querying for history list (#1589)
- Add acquire timeout to sqlite database connection (#1590)
- Only escape control characters when writing to terminal (#1593)
- Check for format errors when printing history (#1623)
- Skip padding time if it will overflow the allowed prefix length (#1630)
- Never overwrite the key (#1657)
- Set durability for sqlite to recommended settings (#1667)
- Correct download list for incremental builds (#1672)
Documentation
- (README) Clarify prerequisites for Bash (#1686)
- (readme) Add repology badge (#1494)
- Add forum link to contributing (#1498)
- Refer to image with multi-arch support (#1513)
- Remove activity graph
- Fix
Destination file already existsin Nushell (#1530) - Clarify enter/tab usage (#1538)
- Improve style (#1537)
- Remove old docusaurus (#1581)
- Mention environment variables for custom paths (#1614)
- Create pull_request_template.md (#1632)
- Update CONTRIBUTING.md (#1633)
Features
- (bash) Support high-resolution timing even without ble.sh (#1534)
- (search) Introduce keymap-dependent vim-mode (#1570)
- (search) Make cursor style configurable (#1595)
- (shell) Bind the Atuin search to "/" in vi-normal mode (#1629)
- BREAKING: bind the Atuin search to "/" in vi-normal mode (#1629)
- (ui) Add redraw (#1519)
- (ui) Vim mode (#1553)
- (ui) When in vim-normal mode apply an alternative highlighting to the selected line (#1574)
- (zsh) Update widget names (#1631)
- Enable enhanced keyboard mode (#1505)
- Rework record sync for improved reliability (#1478)
- Include atuin login in secret patterns (#1518)
- Make it clear what you are registering for (#1523)
- Add extended help (#1540)
- Add interactive command inspector (#1296)
- Add better error handling for sync (#1572)
- Add history rebuild (#1575)
- Make deleting from the UI work with record store sync (#1580)
- Add metrics counter for records downloaded (#1584)
- Make store init idempotent (#1609)
- Don't stop with invalid key (#1612)
- Add registered and deleted metrics (#1622)
- Make history list format configurable (#1638)
- Add change-password command & support on server (#1615)
- Automatically init history store when record sync is enabled (#1634)
- Add store push (#1649)
- Reencrypt/rekey local store (#1662)
- Add prefers_reduced_motion flag (#1645)
- Add verify command to local store
- Add store purge command
- Failure to decrypt history = failure to sync
- Add
store push --force - Add
store pull - Disable auto record store init (#1671)
- Add progress bars to sync and store init (#1684)
Miscellaneous Tasks
- (ci) Use github m1 for release builds (#1658)
- (ci) Re-enable test cache, add separate check step (#1663)
- (ci) Run rust build/test/check on 3 platforms (#1675)
- Remove the teapot response (#1496)
- Schema cleanup (#1522)
- Update funding (#1543)
- Make clipboard dep optional as a feature (#1558)
- Add feature to allow always disable check update (#1628)
- Use resolver 2, update editions + cargo (#1635)
- Disable nix tests (#1646)
- Set ATUIN_ variables for development in devshell (#1653)
Refactor
- (search) Refactor vim mode (#1559)
- (search) Refactor handling of key inputs (#1606)
- (shell) Refactor and localize
HISTORY => __atuin_output(#1535) - Use enum instead of magic numbers (#1499)
- String -> HistoryId (#1512)
Styling
- (bash) Use consistent coding style (#1528)
Testing
- Add multi-user integration tests (#1648)
Stats
- Misc improvements (#1613)
17.2.1
Bug Fixes
- (server) Typo with default config (#1493)
17.2.0
Bug Fixes
- (bash) Fix loss of the last output line with enter_accept (#1463)
- (bash) Improve the support for
enter_acceptwithble.sh(#1465) - (bash) Fix small issues of
enter_acceptfor the plain Bash (#1467) - (bash) Fix error by the use of ${PS1@P} in bash < 4.4 (#1488)
- (bash,zsh) Fix quirks on search cancel (#1483)
- (clippy) Ignore struct_field_names (#1466)
- (docs) Fix typo (#1439)
- (docs) Discord link expired
- (history) Disallow deletion if the '--limit' flag is present (#1436)
- (import/zsh) Zsh use a special format to escape some characters (#1490)
- (install) Discord broken link
- (shell) Respect ZSH's $ZDOTDIR environment variable (#1441)
- (stats) Don't require all fields under [stats] (#1437)
- (stats) Time now_local not working
- (zsh) Zsh_autosuggest_strategy for no-unset environment (#1486)
Documentation
- (readme) Add actuated linkback
- (readme) Fix light/dark mode logo
- (readme) Use picture element for logo
- Add link to forum
- Align setup links in docs and readme (#1446)
- Add Void Linux install instruction (#1445)
- Add fish install script (#1447)
- Correct link
- Add docs for zsh-autosuggestion integration (#1480)
- Remove stray character from README
- Update logo (#1481)
Features
- (bash) Provide auto-complete source for ble.sh (#1487)
- (shell) Support high-resolution duration if available (#1484)
- Add semver checking to client requests (#1456)
- Add TLS to atuin-server (#1457)
- Integrate with zsh-autosuggestions (#1479)
Miscellaneous Tasks
Refactor
- (bash) Factorize
__atuin_accept_line(#1476) - (bash) Refactor and optimize
__atuin_accept_line(#1482)
17.1.0
Bug Fixes
- (fish) Clean up the fish script options (#1370)
- (fish) Use fish builtins for
enter_accept(#1373) - (fish) Accept multiline commands (#1418)
- (nix) Add Appkit to the package build (#1358)
- (zsh) Bind in the most popular modes (#1360)
- (zsh) Only trigger up-arrow on first line (#1359)
- Initial list of history in workspace mode (#1356)
- Make
atuin account deletevoid session + key (#1393) - New clippy lints (#1395)
- Reenable enter_accept for bash (#1408)
- Respect ZSH's $ZDOTDIR environment variable (#942)
Documentation
- Update sync.md (#1409)
- Update Arch Linux package URL in advanced-install.md (#1407)
- New stats config (#1412)
Features
- (nix) Add a nixpkgs overlay (#1357)
- Add metrics server and http metrics (#1394)
- Add some metrics related to Atuin as an app (#1399)
- Allow configuring stats prefix (#1411)
- Allow spaces in stats prefixes (#1414)
Miscellaneous Tasks
- (readme) Add contributor image to README (#1430)
- Update to sqlx 0.7.3 (#1416)
cargo update(#1419)- Update rusty_paseto and rusty_paserk (#1420)
- Run dependabot weekly, not daily (#1423)
- Don't group deps (#1424)
- Setup git cliff (#1431)
17.0.1
Bug Fixes
- (bash) Improve output of
enter_accept(#1342) - (enter_accept) Clear old cmd snippet (#1350)
- (fish) Improve output for
enter_accept(#1341)
17.0.0
Bug Fixes
- (1220) Workspace Filtermode not handled in skim engine (#1273)
- (nu) Disable the up-arrow keybinding for Nushell (#1329)
- (nushell) Ignore stderr messages (#1320)
- (ubuntu/arm)* Detect non amd64 ubuntu and handle (#1131)
Documentation
- Update
workspaceconfig key toworkspaces(#1174) - Document the available format options of History list command (#1234)
Features
- (installer) Try installing via paru for the AUR (#1262)
- (keyup) Configure SearchMode for KeyUp invocation #1216 (#1224)
- Mouse selection support (#1209)
- Copy to clipboard (#1249)
Refactor
- Duplications reduced in order to align implementations of reading history files (#1247)
Config.md
- Invert mode detailed options (#1225)
16.0.0
Bug Fixes
- (docs) List all presently documented commands (#1140)
- (docs) Correct command overview paths (#1145)
- (server) Teapot is a cup of coffee (#1137)
- Adjust broken link to supported shells (#1013)
- Fixes unix specific impl of shutdown_signal (#1061)
- Nushell empty hooks (#1138)
Features
- Do not allow empty passwords durring account creation (#1029)
Skim
- Fix filtering aggregates (#1114)
15.0.0
Documentation
Features
- Add delete account option (attempt 2) (#980)
Miscellaneous Tasks
Cwd_filter
- Much like history_filter, only it applies to cwd (#904)
14.0.0
Bug Fixes
- (client) Always read session_path from settings (#757)
- (installer) Use case-insensitive comparison (#776)
- Many wins were broken 📝 (#789)
- Paste into terminal after switching modes (#793)
- Record negative exit codes (#821)
- Allow nix package to fetch dependencies from git (#832)
Documentation
- (README) Fix activity graph link (#753)
Features
- Add common default keybindings (#719)
- Add an inline view mode (#648)
- Add Nushell support (#788)
- Add github action to test the nix builds (#833)
Miscellaneous Tasks
Nix
- Add flake-compat (#743)
13.0.0
Documentation
- (README) Add static activity graph example (#680)
- Remove human short flag from docs, duplicate of help -h (#663)
- Fix typo in zh-CN/README.md (#666)
Features
- (history) Add new flag to allow custom output format (#662)
Fish
- Fix
atuin initfor the fish shell (#699)
Install.sh
- Fallback to using cargo (#639)
12.0.0
Documentation
- Add more details about date parsing in the stats command (#579)
0.10.0
Miscellaneous Tasks
- Allow specifiying the limited of returned entries (#364)
0.9.0
README
- Add MacPorts installation instructions (#302)
0.8.1
Bug Fixes
- Get install.sh working on UbuntuWSL (#260)
0.8.0
Bug Fixes
- Resolve some issues with install.sh (#188)
Features
- Login/register no longer blocking (#216)
0.7.2
Bug Fixes
- Dockerfile with correct glibc (#198)
Features
- Allow input of credentials from stdin (#185)
Miscellaneous Tasks
- Some new linting (#201)
- Supply pre-build docker image (#199)
- Add more eyre contexts (#200)
- Improve build times (#213)
0.7.1
Features
- Build individual crates (#109)
0.6.3
Bug Fixes
- Help text
Features
- Use directories project data dir
Miscellaneous Tasks
- Use structopt wrapper instead of building clap by hand