| Commit message (Collapse) | Author | Age |
| |
|
|
| |
`turtle` is already taken on crates.io
|
| |
|
|
|
| |
`rusty_paseto` was left explicitly on v0.8 because the v0.10 is no longer
compatible with `rusty_paserk`.
|
| | |
|
| |
|
|
| |
The remaining ones, require actual work to resolve.
|
| |
|
|
| |
_That_ was actually useful to have.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
The files might be newline delimited, which we should remove before we
try to parse the contents.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
A service manager should deal with that.
|
| |
|
|
| |
Otherwise, we might run migration from multiple db-connections.
|
| | |
|
| |
|
|
| |
Just a run of `cargo clippy --fix`
|
| |
|
|
| |
There are still the `clippy` warnings, but they are for a future date.
|
| | |
|
| |
|
|
| |
This commit also remove another load of unneeded features.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
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)`
|
| | |
|
| |
|
|
|
| |
That helps remove duplicated code and rustc/cargo will now also show
dead code correctly.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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`.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
## 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))
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|