aboutsummaryrefslogtreecommitdiffstats
path: root/crates (follow)
Commit message (Collapse)AuthorAge
* treewide: Upgrade and update dependenciesBenedikt Peetz6 days
| | | | | `rusty_paseto` was left explicitly on v0.8 because the v0.10 is no longer compatible with `rusty_paserk`.
* treewide: Update Cargo.toml metadataBenedikt Peetz6 days
|
* treewide: Fix most `cargo check` warningsBenedikt Peetz6 days
| | | | The remaining ones, require actual work to resolve.
* crates/turtle/list: Restore the history listing code from atuinBenedikt Peetz6 days
| | | | _That_ was actually useful to have.
* feat: Finalize design for fish-shell integrationBenedikt Peetz2026-07-24
|
* chore: Last big refactoringBenedikt Peetz2026-07-20
|
* chore: CommitBenedikt Peetz2026-07-20
|
* chore: CommitBenedikt Peetz2026-07-20
|
* chore(server): Remove warningsBenedikt Peetz2026-07-20
|
* chore: Remove some warnings (cargo fix)Benedikt Peetz2026-07-20
|
* chore(atuin): Remove unused crate dependenciesBenedikt Peetz2026-07-20
|
* chore: All compilesBenedikt Peetz2026-07-20
|
* chore: CommitBenedikt Peetz2026-07-20
|
* chore: CommitBenedikt Peetz2026-07-20
|
* chore: CommitBenedikt Peetz2026-07-20
|
* chore: Move more stuff out of atuin-clientBenedikt Peetz2026-07-09
|
* chore: Add more thingsBenedikt Peetz2026-07-09
|
* chore: Separate daemon, client, server, and lib into cratesBenedikt Peetz2026-07-09
|
* fix(client/sync): Pass through precise error on `SyncError::WrongKey`Benedikt Peetz2026-06-14
|
* fix(client/settings): Trim sync user_id and encryption_keyBenedikt Peetz2026-06-14
| | | | | The files might be newline delimited, which we should remove before we try to parse the contents.
* fix({client,server}/settings): Don't fail, when there is no config fileBenedikt Peetz2026-06-13
|
* chore(treewide): Remove glob importsBenedikt Peetz2026-06-13
|
* fix(config): Don't write non-TOML default config filesBenedikt Peetz2026-06-13
|
* chore(daemon): Remove the `autostart` featureBenedikt Peetz2026-06-13
| | | | A service manager should deal with that.
* fix(sqlite): Ensure that database migration runs sequentiallyBenedikt Peetz2026-06-13
| | | | Otherwise, we might run migration from multiple db-connections.
* chore(treewide): Also fix all `clippy` warningsBenedikt Peetz2026-06-13
|
* chore(treewide): Fix some of `clippy`'s errorBenedikt Peetz2026-06-13
| | | | Just a run of `cargo clippy --fix`
* chore(treewide): Remove `cargo` warnings to 0Benedikt Peetz2026-06-13
| | | | There are still the `clippy` warnings, but they are for a future date.
* chore(treewide): Cleanup themesBenedikt Peetz2026-06-12
|
* feat(server): Really make users stateless (with tests)Benedikt Peetz2026-06-12
| | | | This commit also remove another load of unneeded features.
* feat(server): Make user stuff statelessBenedikt Peetz2026-06-11
|
* chore(server): Remove the last remnants of the "hub" sync-server thingyBenedikt Peetz2026-06-11
|
* chore(server): Simplify the database supportBenedikt Peetz2026-06-11
|
* chore: Remove all `pub`sBenedikt Peetz2026-06-11
| | | | | They will not be marked by rustc/cargo as unused, and as atuin doesn't expose an API all of them _should_ be `pub(crate)`
* chore: Restore db migrationsBenedikt Peetz2026-06-11
|
* chore: Move everything into one big crateBenedikt Peetz2026-06-11
| | | | | That helps remove duplicated code and rustc/cargo will now also show dead code correctly.
* chore: Somewhat simplify sync codeBenedikt Peetz2026-06-10
|
* chore: Remove more (kinda) useless stuffBenedikt Peetz2026-06-10
|
* chore: Turn all `allow`s into into `expect`sBenedikt Peetz2026-06-10
|
* chore: Remove more useless codeBenedikt Peetz2026-06-10
|
* chore: Remove some unused rust codeBenedikt Peetz2026-06-10
|
* feat: Capture command output + expose to new `atuin_output` tool (#3510)Michelle Tilley2026-06-08
|
* chore: update GitHub app token formatChris Rose2026-06-04
|
* fix: Atuin hangs when attempting to spawn daemon from Ctrl+R invocation (#3502)Michelle Tilley2026-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR fixes a shell hang when daemon autostart happens from the interactive search widget. The bash/zsh/fish integrations run `atuin search -i` under command substitution and swap stdout/stderr so the TUI can draw to the terminal while the selected command is captured: ```sh 3>&1 1>&2 2>&3 ``` This leaves fd 3 open in the atuin search process. If search autostarts the daemon, the spawned long-running `atuin daemon start --daemonize` inherits fd 3, the command-substitution pipe, so the shell keeps waiting for EOF until the daemon is killed. The fix: close fd 3 after the swap in the non-tmux bash/zsh/fish paths: ```sh 3>&1 1>&2 2>&3 3>&- ``` Tested on zsh; I still need to confirm for bash and fish. Near as I can tell, the other shell integrations don't need this change. Fixes #3499
* Allow overriding model with env var (#3493)Michelle Tilley2026-05-19
| | | | | | | This PR allows overriding the Atuin AI model for feature-flagged users with the `ATUIN_AI__MODEL` environment variable. Any OpenRouter model is accepted; it's recommended to include an explicit `openrouter:` provider prefix, so models with colons in their names are interpreted correctly, e.g. `ATUIN_AI__MODEL=openrouter:deepseek/deepseek-v4-flash:free`.
* refactor: pull `fn into_utc` into atuin-server-database crate (#3487)John Oxley2026-05-14
| | | | | | | | | | | | The `fn into_utc` was defined in both `atuin-server-postgres` and `atuin-server-sqlite`, with tests being in the postgres crate. This pulls the function into the `atuin-server-database` crate along with the tests and references it from both crates. ## 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
* refactor: Implement From<sqlx::Error> and clean up fix_error (#3484)John Oxley2026-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* chore(release): prepare for release 18.16.1 (#3476)Ellie Huxtable2026-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ## 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))
* feat(ui): prominent banner for wrong-key errors at login/sync (#3475)Ellie Huxtable2026-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | The wrong-key error was a long unwrapped sentence buried under "Successfully authenticated.", and wrapped by eyre error formatting add - print_error(title, description) — red box-drawn bars across the terminal width (capped at 100 cols) with bold title; word-wraps the description; plain "Error:" header when stderr isn't a TTY. - format_sync_error(SyncError) -> eyre::Report — intercepts WrongKey to print the banner and exit(1) so eyre's footer never runs; forwards other variants unchanged. Use it from: - account/login.rs — replaces bail\! in the wrong-key path - command/client/sync.rs — .map_err(format_sync_error)? on sync() - store/push.rs and store/pull.rs — .map_err on check_encryption_key ## 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
* fix: ensure local key matches remote data before syncing (#3474)Ellie Huxtable2026-05-12
| | | | | | | | | | | | | | | We rely on the user to manage their keys. This is ok, and is intentionally part of our security model However. If the user messes up, they corrupt their remote store. It is possible to work around and fix, but not without difficulty. This change ensures that if the local key does not match the remote data, no data is synced and the user has a chance to fix it before breaking things. ## 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