aboutsummaryrefslogtreecommitdiffstats
path: root/Cargo.lock (unfollow)
Commit message (Collapse)Author
27 hourschore(treewide): Remove `cargo` warnings to 0Benedikt Peetz
There are still the `clippy` warnings, but they are for a future date.
3 dayschore: Move everything into one big crateBenedikt Peetz
That helps remove duplicated code and rustc/cargo will now also show dead code correctly.
3 dayschore: Somewhat simplify sync codeBenedikt Peetz
3 dayschore: Remove more (kinda) useless stuffBenedikt Peetz
3 dayschore: Remove some unused rust codeBenedikt Peetz
5 daysfeat: Capture command output + expose to new `atuin_output` tool (#3510)Michelle Tilley
2026-05-14refactor: Implement From<sqlx::Error> and clean up fix_error (#3484)John Oxley
In the database crates for atuin-server, there is `fn fix_error`. This PR implements `From<sqlx::Error>` on `DbError` which makes it possible to mostly use `?` to bubble up the errors. There are cases where `?` is not being used e.g. ```rust async fn get_session(&self, token: &str) -> DbResult<Session> { sqlx::query_as("select id, user_id, token from sessions where token = $1") .bind(token) .fetch_one(&self.pool) .await .map_err(fix_error) .map(|DbSession(session)| session) } ``` There are two options ## 1. Use `Into::into` ```rust async fn get_session(&self, token: &str) -> DbResult<Session> { sqlx::query_as("select id, user_id, token from sessions where token = $1") .bind(token) .fetch_one(&self.pool) .await .map_err(fix_error) .map(|DbSession(session)| session) } ``` ## 2. Create a variable and use `?` ```rust async fn get_session(&self, token: &str) -> DbResult<Session> { let session = sqlx::query_as("select id, user_id, token from sessions where token = $1") .bind(token) .fetch_one(&self.pool) .await .map(|DbSession(session)| session)?; Ok(session) } ``` I chose to do option 1 as it was just a find/replace but say the word and I'll convert them all to option 2 ## Checks - [X] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [X] I have checked that there are no existing pull requests for the same thing
2026-05-12chore(release): prepare for release 18.16.1 (#3476)Ellie Huxtable
## 18.16.1 ### Bug Fixes - *(shell/xonsh)* Use os.devnull instead of hard-coded /dev/null ([#3464](https://github.com/atuinsh/atuin/issues/3464)) - Atuin update on windows ([#3453](https://github.com/atuinsh/atuin/issues/3453)) - Ensure local key matches remote data before syncing ([#3474](https://github.com/atuinsh/atuin/issues/3474)) ### Documentation - Add related projects section to README ### Features - *(ui)* Prominent banner for wrong-key errors at login/sync ([#3475](https://github.com/atuinsh/atuin/issues/3475)) ### Miscellaneous Tasks - Generate LLM-optimized docs ([#3468](https://github.com/atuinsh/atuin/issues/3468)) - Rename 'atuin hex' to 'atuin pty-proxy' ([#3473](https://github.com/atuinsh/atuin/issues/3473))
2026-05-11chore: Rename 'atuin hex' to 'atuin pty-proxy' (#3473)Michelle Tilley
2026-04-28chore(release): prepare for release 18.16.0 (#3457)Michelle Tilley
2026-04-24chore(release): prepare for release 18.16.0-beta.1 (#3450)Michelle Tilley
2026-04-24chore: Update to eye_declare 0.5.1 (#3449)Michelle Tilley
2026-04-23perf: Reduce AI TUI rendering overhead for long conversations (#3447)Michelle Tilley
Fixes keystroke lag in Atuin AI that scales with conversation length. After extended use (many turns, lots of tool calls with output viewports), pressing a key had noticeable delay before the letter appeared. Three layers of optimization: - **Skip `sync_view_state` for `InputUpdated`** — every keystroke was cloning all events, tools, and archived data even though no FSM state changed. Uses `handle.update_tracked()` (eye_declare 0.5) to skip rebuilds when values haven't actually changed. - **Pre-compute turns and `has_command` on the driver thread** — the view function was rebuilding the full turn structure from raw events and scanning for `suggest_command` tool calls 3× per render frame. Now computed once per FSM state change and cached in ViewState. - **Commit-based element tree pruning** — turns that scroll into terminal scrollback are tracked via `on_commit` and filtered from the element tree, keeping rendering work proportional to visible content. Turn views are now direct children of the root VStack (not nested inside AtuinAi) so `detect_committed` can see them.
2026-04-23feat: Add skill discovery, loading, and invocation (#3444)Michelle Tilley
Adds a skills system that lets users define reusable LLM instructions as `SKILL.md` files with YAML frontmatter.
2026-04-21feat: AI tool rendering overhaul + edit_file tool (#3423)Michelle Tilley
Overhaul of how AI tool calls are modeled, rendered, and displayed in the Atuin AI TUI. Fixes bugs in shell command output capture, implements the `edit_file` tool with full safety infrastructure, and adds a diff preview for edits.
2026-04-16chore(release): prepare for release 18.15.2 (#3421)Michelle Tilley
## 18.15.2 ### Bug Fixes - Tab doesn't insert suggested command ([#3420](https://github.com/atuinsh/atuin/issues/3420))
2026-04-15chore(release): prepare for release 18.15.1 (#3419)Michelle Tilley
2026-04-15fix: Enter runs suggested command when selecting permissions (#3418)Michelle Tilley
2026-04-15chore(release): prepare for release 18.15.0 (#3417)Michelle Tilley
2026-04-15feat: Allow resuming previous AI sessions (#3407)Michelle Tilley
This PR introduces session continuation to Atuin AI. * Conversations with Atuin AI are stored in a local SQLite database * Upon startup, Atuin AI tries to find a session to resume based on its directory/workspace and the time since the last event * If found, Atuin AI will show a note that the session has been resumed, and an event is added to help the LLM know where the invocation boundaries are * If not, Atuin AI will create a new conversation * The user can create a new conversation with `/new` * The new setting `ai.session_continue_minutes`, which defaults to `60`, controls how old the last event in a session can be before it's no longer considered for automatic resuming. <img width="1055" height="593" alt="image" src="https://github.com/user-attachments/assets/3f9ff01a-ef64-44a9-b0e2-3a4252c5746f" /> ## Architecture A new `SessionService` trait defines an API contract for a service that can manage session data. `LocalSessionService` implements this, with `DaemonSessionService` a possible future extension point. `SessionManager` owns a `dyn SessionService` and delegates as appropriate.
2026-04-14feat: Enable atuin hex for illumos (#3413)Michael Zeller
This bumps the `portable-pty` dep which itself has a dependency on a newer termios that knows about illumos. Unless this was pinned for a particular reason I think this is fine. With this dep bumped we can enable `atuin hex` on illumos. ## Checks - [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [x] I have checked that there are no existing pull requests for the same thing
2026-04-13chore(release): prepare for release 18.14.1 (#3405)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-04-13chore(release): prepare for release 18.14.0 (#3401)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-04-10chore: Prepare 18.14.0-beta.1 release (#3393)Michelle Tilley
2026-04-10feat: Client-tool execution + permission system (#3370)Michelle Tilley
Adds client-side tool execution to Atuin AI, starting with `atuin_history`. The server can request tool calls, which are executed locally with a permission system, and results are sent back to continue the conversation.
2026-03-30chore: Update to eye-declare 0.3.0 (#3365)Michelle Tilley
2026-03-27chore: Prepare 18.13.6 release (#3356)Michelle Tilley
2026-03-27chore(deps): Update to eye-declare v0.2.0 (#3355)Michelle Tilley
eye-declare v0.2.0 includes two relevant changes: * "Capture-phase" event handling lets us remove the special-case event handling in `InputBox` that allowed global keyboard binds to work; the `AtuinAi` component now handles this directly. * `Tracked::read()` allows reading fields in tracked state without triggering the dirty-tracking from the `DerefMut` implementation, allowing us to send messages on the app event bus without marking the containing state as dirty.
2026-03-27feat: Use eye-declare for more performant and flexible AI TUI (#3343)Michelle Tilley
This PR replaces the mess of custom rendering code in Atuin AI with [eye-declare](https://github.com/BinaryMuse/eye-declare), and updates the TUI to feel more terminal-native: output appears inline and persists in scrollback, so you can scroll up and look at previous conversations for reference. The "review" state — which used to exist between the LLM generating a response and the user either executing or following up — has been removed; just start typing to follow up with the LLM, or press `enter` at the empty input box to execute the suggested command. <img width="1203" height="633" alt="image" src="https://github.com/user-attachments/assets/159ee447-9a2a-4edd-b56e-a79bf1aaaa94" />
2026-03-25fix: remove unnecessary arboard/image-data default feature (#3345)Ross Williams
2026-03-24chore: Prepare 18.13.5 (#3342)Michelle Tilley
2026-03-23chore(release): prepare for release 18.13.4 (#3336)Michelle Tilley
2026-03-20feat: Allow running `atuin search -i` as subcommand on Windows (#3250)Lucas Trzesniewski
This is the equivalent of #3208, but for Windows. ~The rendering performance is noticeably slower in this mode when refreshing a large part of the screen, but it's better than not having the feature at all.~ Fixed 🙂 The second commit fixes some unrelated warnings. /cc @BinaryMuse FYI ## Checks - [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [x] I have checked that there are no existing pull requests for the same thing
2026-03-16chore(release): prepare for release 18.13.3Ellie Huxtable
2026-03-16vendor nucleo fork into atuin workspaceEllie Huxtable
Rename crates (nucleo → atuin-nucleo, nucleo-matcher → atuin-nucleo-matcher), add to workspace members and dependencies, update all import paths, remove vendored CI workflow, and suppress upstream clippy warnings. format codespell fixes clippy clappy
2026-03-13chore(release): prepare for release 18.13.2 (#3264)Ellie Huxtable
I tried adding a windows arm64 build to the last release, which was perhaps a little naive of me. I thought it working on x86 windows and arm everything else would be enough 💀 ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-13chore(release): prepare for release 18.13.1 (#3263)Ellie Huxtable
We were using buildjet as our runners previously, but it looks like they have gone under. Luckily, GitHub now provides the arm runners we need ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-13chore(release): prepare for release 18.13.0 (#3262)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-12chore(release): prepare for release 18.13.0-beta.7 (#3259)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-12feat: Add `atuin setup` (#3257)Michelle Tilley
2026-03-12chore(release): prepare for release 18.13.0-beta.6 (#3258)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-11chore(release): prepare for release 18.13.0-beta.5 (#3253)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-10chore(release): prepare for release 18.13.0-beta.4 (#3252)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-09chore: upgrade axum 0.7 to 0.8 to deduplicate with tonic's axumEllie Huxtable
atuin-server used axum 0.7 while tonic already pulled in axum 0.8, resulting in both versions compiled into the binary. Migrates to axum 0.8: path params use {param} syntax, FromRequestParts uses native async traits (dropping async-trait dep from atuin-server).
2026-03-09chore: upgrade thiserror 1.x to 2.x to deduplicate dependencyEllie Huxtable
Our crates used thiserror 1.x while the ratatui ecosystem already pulled in thiserror 2.x, resulting in both versions in the binary. The API is compatible; this consolidates to a single version.
2026-03-09feat: use pty proxy for rendering tui popups without clearing the terminal ↵Ellie Huxtable
(#3234) It feels much, much nicer this way. This has also been asked for pretty consistently since we made inline rendering the default. Now we can have everything :) Maintains a shadow vt100 renderer so that we can restore the terminal state upon popup close. This happens on a background thread, so our impact on terminal performance should still be super minimal, if anything ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-05feat: Allow setting multipliers for frequency, recency, and frecency scores ↵Michelle Tilley
(#3235)
2026-03-04feat: initial draft of atuin-shell (#3206)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing --------- Co-authored-by: Claude <noreply@anthropic.com>
2026-03-02chore(release): prepare for release 18.13.0-beta.3 (#3228)Ellie Huxtable
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
2026-03-02chore(deps): bump rustix from 0.38.44 to 1.1.4 (#3220)dependabot[bot]
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.44 to 1.1.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/bytecodealliance/rustix/releases">rustix's releases</a>.</em></p> <blockquote> <h2>1.0.0</h2> <p>This release introduces the <a href="https://docs.rs/rustix/1.0.0/rustix/buffer/trait.Buffer.html"><code>Buffer</code> trait</a>, which is used in <a href="https://docs.rs/rustix/1.0.0/rustix/io/fn.read.html"><code>read</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/io/fn.pread.html"><code>pread</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/net/fn.recv.html"><code>recv</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/net/fn.recvfrom.html"><code>recvfrom</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/rand/fn.getrandom.html"><code>getrandom</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.readlinkat_raw.html"><code>readlinkat_raw</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/event/epoll/fn.wait.html"><code>epoll::wait</code></a>, <a href="https://docs.rs/rustix/1.0.0/x86_64-unknown-freebsd/rustix/event/kqueue/fn.kevent.html"><code>kevent</code></a>, <a href="https://docs.rs/rustix/1.0.0/x86_64-unknown-illumos/rustix/event/port/fn.getn.html"><code>port::getn</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.getxattr.html"><code>getxattr</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.lgetxattr.html"><code>lgetxattr</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.fgetxattr.html"><code>fgetxattr</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.listxattr.html"><code>listxattr</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.llistxattr.html"><code>llistxattr</code></a>, and <a href="https://docs.rs/rustix/1.0.0/rustix/fs/fn.flistxattr.html"><code>flistxattr</code></a>, and adds support for reading data into uninitialized buffers, as well as safely reading data into the spare capacity of <code>Vec</code>s.</p> <p>This release also simplifies the way network addresses are handled. Instead of having separate functions with <code>_v4</code>, <code>_v6</code>, <code>_unix</code>, <code>_xdp</code>, and now <code>_netlink</code> suffixes, rustix now uses a <a href="https://docs.rs/rustix/1.0.0/rustix/net/trait.SocketAddrArg.html"><code>SocketAddrArg</code> trait</a> so that functions such as <a href="https://docs.rs/rustix/1.0.0/rustix/net/fn.bind.html"><code>bind</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/net/fn.connect.html"><code>connect</code></a>, <a href="https://docs.rs/rustix/1.0.0/rustix/net/fn.sendto.html"><code>sendto</code></a>, and <a href="https://docs.rs/rustix/1.0.0/rustix/net/fn.sendmsg_addr.html"><code>sendmsg_addr</code></a> can accept any type of address, and are easier to extend to new address types in the future.</p> <p>And, this release simplifies the <code>ioctl</code> API, replacing opcode wrapper types with const generics.</p> <p>This updates several APIs to add Linux 6.13 features, and raw linux-raw-sys types are no longer exposed in the public API, so it should be easier to stay up to date with new Linux releases.</p> <p>And many more new features, bug fixes, and cleanups. See the <a href="https://github.com/bytecodealliance/rustix/blob/main/CHANGES.md#changes-from-038x-to-1x">CHANGES.md file</a> for the full list of breaking changes.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/bytecodealliance/rustix/commit/c4caf5caaa7e93828a2e4a4cdba1dd0171e45717"><code>c4caf5c</code></a> chore: Release rustix version 1.1.4</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/5953a2c6bc7bc97c308a8e6a0fd4a8bf79997117"><code>5953a2c</code></a> Prune pins in CI that are no longer needed. (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1588">#1588</a>)</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/9116c05d2eab3484748a629e72bdff17117c4f5b"><code>9116c05</code></a> Bump dependencies (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1567">#1567</a>)</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/5ee0ca360f41b3699b7c543d1153e94c65988610"><code>5ee0ca3</code></a> hurd: Fix l_type and l_whence types (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1569">#1569</a>)</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/89505893fc3b4b9b9a22625cd3a670f6d6cf2f44"><code>8950589</code></a> Clobber vector registers and do not use preserves_flags in riscv64 syscalls (...</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/7b0d2ae013976c959627598c057644ae8922708e"><code>7b0d2ae</code></a> Update pins for MSRV compatibility (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1585">#1585</a>)</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/99458d830840dafb8a8c5b8b54cf05beabc2e581"><code>99458d8</code></a> feat(redox): <code>renameat</code> and <code>renameat_with</code> (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1586">#1586</a>)</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/a9c8dcbbb74df7a7c4ec6cf50629a810bab6500d"><code>a9c8dcb</code></a> Remove reference to yanked crate in README.md (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1587">#1587</a>)</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/8bf15a0eb444087e4c3ed04e01ed488cc429af2d"><code>8bf15a0</code></a> Drop custom makedev implementation for Redox (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1582">#1582</a>)</li> <li><a href="https://github.com/bytecodealliance/rustix/commit/74b886d40d7b5209a8d448550e4595e8e06158a1"><code>74b886d</code></a> Update pins for MSRV compatibility (<a href="https://redirect.github.com/bytecodealliance/rustix/issues/1584">#1584</a>)</li> <li>Additional commits viewable in <a href="https://github.com/bytecodealliance/rustix/compare/v0.38.44...v1.1.4">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustix&package-manager=cargo&previous-version=0.38.44&new-version=1.1.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>