aboutsummaryrefslogtreecommitdiffstats
path: root/crates (unfollow)
Commit message (Collapse)Author
5 dayscrates/daemon/aclient/history: Don't panic on negative command durationBenedikt Peetz
The old atuin code, used a negative duration as no-duration sentinel.
5 dayscrates/client/daemon/status: Fail, when connection to daemon failsBenedikt Peetz
6 dayscrates/client: Rename to turtle-clientBenedikt Peetz
`turtle` is already taken on crates.io
6 daystreewide: Upgrade and update dependenciesBenedikt Peetz
`rusty_paseto` was left explicitly on v0.8 because the v0.10 is no longer compatible with `rusty_paserk`.
6 daystreewide: Update Cargo.toml metadataBenedikt Peetz
6 daystreewide: Fix most `cargo check` warningsBenedikt Peetz
The remaining ones, require actual work to resolve.
6 dayscrates/turtle/list: Restore the history listing code from atuinBenedikt Peetz
_That_ was actually useful to have.
2026-07-24feat: Finalize design for fish-shell integrationBenedikt Peetz
2026-07-20chore: Last big refactoringBenedikt Peetz
2026-07-20chore: CommitBenedikt Peetz
2026-07-20chore: CommitBenedikt Peetz
2026-07-20chore(server): Remove warningsBenedikt Peetz
2026-07-20chore: Remove some warnings (cargo fix)Benedikt Peetz
2026-07-20chore(atuin): Remove unused crate dependenciesBenedikt Peetz
2026-07-20chore: All compilesBenedikt Peetz
2026-07-20chore: CommitBenedikt Peetz
2026-07-20chore: CommitBenedikt Peetz
2026-07-20chore: CommitBenedikt Peetz
2026-07-09chore: Move more stuff out of atuin-clientBenedikt Peetz
2026-07-09chore: Add more thingsBenedikt Peetz
2026-07-09chore: Separate daemon, client, server, and lib into cratesBenedikt Peetz
2026-06-14fix(client/sync): Pass through precise error on `SyncError::WrongKey`Benedikt Peetz
2026-06-14fix(client/settings): Trim sync user_id and encryption_keyBenedikt Peetz
The files might be newline delimited, which we should remove before we try to parse the contents.
2026-06-13fix({client,server}/settings): Don't fail, when there is no config fileBenedikt Peetz
2026-06-13chore(treewide): Remove glob importsBenedikt Peetz
2026-06-13fix(config): Don't write non-TOML default config filesBenedikt Peetz
2026-06-13chore(daemon): Remove the `autostart` featureBenedikt Peetz
A service manager should deal with that.
2026-06-13fix(sqlite): Ensure that database migration runs sequentiallyBenedikt Peetz
Otherwise, we might run migration from multiple db-connections.
2026-06-13chore(treewide): Also fix all `clippy` warningsBenedikt Peetz
2026-06-13chore(treewide): Fix some of `clippy`'s errorBenedikt Peetz
Just a run of `cargo clippy --fix`
2026-06-13chore(treewide): Remove `cargo` warnings to 0Benedikt Peetz
There are still the `clippy` warnings, but they are for a future date.
2026-06-12chore(treewide): Cleanup themesBenedikt Peetz
2026-06-12feat(server): Really make users stateless (with tests)Benedikt Peetz
This commit also remove another load of unneeded features.
2026-06-11feat(server): Make user stuff statelessBenedikt Peetz
2026-06-11chore(server): Remove the last remnants of the "hub" sync-server thingyBenedikt Peetz
2026-06-11chore(server): Simplify the database supportBenedikt Peetz
2026-06-11chore: Remove all `pub`sBenedikt Peetz
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)`
2026-06-11chore: Restore db migrationsBenedikt Peetz
2026-06-11chore: Move everything into one big crateBenedikt Peetz
That helps remove duplicated code and rustc/cargo will now also show dead code correctly.
2026-06-10chore: Somewhat simplify sync codeBenedikt Peetz
2026-06-10chore: Remove more (kinda) useless stuffBenedikt Peetz
2026-06-10chore: Turn all `allow`s into into `expect`sBenedikt Peetz
2026-06-10chore: Remove more useless codeBenedikt Peetz
2026-06-10chore: Remove some unused rust codeBenedikt Peetz
2026-06-08feat: Capture command output + expose to new `atuin_output` tool (#3510)Michelle Tilley
2026-06-04chore: update GitHub app token formatChris Rose
2026-05-27fix: Atuin hangs when attempting to spawn daemon from Ctrl+R invocation (#3502)Michelle Tilley
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
2026-05-19Allow overriding model with env var (#3493)Michelle Tilley
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`.
2026-05-14refactor: pull `fn into_utc` into atuin-server-database crate (#3487)John Oxley
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
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