Commit graph

1486 commits

Author SHA1 Message Date
dependabot[bot]
fd7c463538
chore(deps): bump actions/cache from 4 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 06:09:02 +00:00
Ellie Huxtable
39ef6e79d7
feat: allow disabling sync v1 (#3030)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
Rust / format (push) Has been cancelled
It takes up a very large amount of our query time, despite having been
replaced for >1yr now. We will be dropping support for it on atuin hub
2025-12-18 23:11:47 -05:00
Ellie Huxtable
96e6bb2347
feat: add support for read replicas to postgres (#3029)
Some checks are pending
Codespell / Check for spelling errors (push) Waiting to run
build-docker / publish_x86 (push) Waiting to run
build-docker / publish_aarch64 (push) Waiting to run
build-docker / publish_manifest (push) Blocked by required conditions
Install / install (macos-14) (push) Waiting to run
Install / install (ubuntu-latest) (push) Waiting to run
Nix / check (push) Waiting to run
Nix / build-test (push) Waiting to run
Rust / unit-test (ubuntu-latest) (push) Waiting to run
Rust / unit-test (windows-latest) (push) Waiting to run
Rust / format (push) Waiting to run
Rust / build (macos-14) (push) Waiting to run
Rust / build (ubuntu-latest) (push) Waiting to run
Rust / build (windows-latest) (push) Waiting to run
Rust / cross-compile (x86_64-unknown-illumos) (push) Waiting to run
Rust / check (ubuntu-latest) (push) Waiting to run
Rust / unit-test (macos-14) (push) Waiting to run
Rust / check (macos-14) (push) Waiting to run
Rust / check (windows-latest) (push) Waiting to run
Rust / integration-test (push) Waiting to run
Rust / clippy (push) Waiting to run
Shellcheck / shellcheck (push) Waiting to run
Support for routing read queries to read replicas for Postgres

We have very high database usage these days, and now run shell history
sync off of [Planetscale](https://planetscale.com/)

This setup gives us 2x read replicas, meaning we can reduce load on the
primary

I doubt this is required for anyone else's setup - lmk if so.
2025-12-18 16:12:39 -05:00
Leonidas Loucas
7867eb0e78
fix: Move thorough search through search.filters w/ workspaces (#2703)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
Do not just pick first from search.filters, consider all options,
filtering based on git-root and workspaces config

Fix: atuinsh/atuin#2700
Might Fix: atuinsh/atuin#2536

Wrote a few simple unit tests, and tried it by running the client
locally. Not sure about which of "[search] filters" vs "workspaces"
should be more respected, so i made it so if workspaces = false,
regardless of whats in "[search] filters" workspace gets filtered out.

First time looking at atuins code, let me know if this needs any
changes.

edit: (from my post here:
https://github.com/atuinsh/atuin/issues/2536#issuecomment-2808053862)

```
workspaces = true
[search]
filters = [ "workspace", "directory", "session", "global" ]
```

| `^R` for the ... time| in a git repo | any other dir|
| ------------- | ------------- | ------------- |
| first  | workspace  | directory|
| second  | directory  | session|
| third| session  | global|
| fourth | global  | directory |
| fifth | workspace  | session|
| sixth  | directory  | global |


![Image](https://github.com/user-attachments/assets/33150e0a-d219-44d1-8994-b1f98accdfc3)

<!-- 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
- [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
- #1655 might be related, but it seems to also implement code that is
already merged, and has been open for over a year, hope its ok to
suggest this

---------

Co-authored-by: Michelle Tilley <michelle@michelletilley.net>
2025-12-15 13:21:02 -05:00
Michelle Tilley
2ba93a8c18
docs: Migrate docs from separate repo to docs subfolder (#3018)
Some checks failed
Shellcheck / shellcheck (push) Has been cancelled
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
2025-12-12 14:47:24 -08:00
Jonathan Hult
8ef7a963eb
fix: prevent interactive search crash when update check fails (#3016)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
Relates to #2520 - Gracefully handle update check failures instead of
crashing the entire interactive search UI.

## 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
2025-12-10 11:28:24 -08:00
Zhizhen He
d24f729ebe
ci: fix github action syntax for variables (#2998)
Some checks failed
build-docker / publish_manifest (push) Has been cancelled
Codespell / Check for spelling errors (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / format (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
<!-- 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 -->
`${ runner.os }` -> `${{ runner.os }}`

## 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
2025-12-03 15:14:21 -08:00
Filip Czaplicki
72b5505927
feat: add colors to --help/-h (#3000)
<!-- 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
- [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

User can disable colors via `NO_COLOR=1` environment variable if needed

Output of `atuin -h`:
| before | after | `NO_COLOR=1` |
| - | - | - |
| <img width="741" height="768" alt="atuin-before"
src="https://github.com/user-attachments/assets/01921ba0-e94d-4f0a-ac85-b170516e41bc"
/> | <img width="741" height="768" alt="atuin-colors"
src="https://github.com/user-attachments/assets/59d507e1-9a33-4091-bed7-44eef889a72d"
/> | <img width="741" height="768" alt="atuin-no-color"
src="https://github.com/user-attachments/assets/e6b067c6-cf17-4909-bdbf-cc2bca830244"
/> |
2025-12-03 15:13:40 -08:00
Waldir Pimenta
011fe31c84
feat: support additional history filenames in replxx importer (#3005)
<!-- 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 -->

The original implementation of the `replxx` importer, from PR #2024,
only supported `.histfile` as a filename for the history file, since
there is no default filename. However, the replxx codebase does use
`replxx_history.txt` as an example history filename (see
[here](https://github.com/AmokHuginnsson/replxx/blob/release-0.0.4/examples/c-api.c#L183)
and
[here](https://github.com/AmokHuginnsson/replxx/blob/release-0.0.4/examples/cxx-api.cxx#L383)),
so this patch adds support for that as an alternative filename.

The implementation was modeled after [the
one](https://github.com/atuinsh/atuin/blob/v18.10.0/crates/atuin-client/src/import/zsh.rs#L29-L44)
currently used for the `zsh` history file importer, which also means the
`replxx` importer now produces a human-friendly error if no history file
is found in the expected path(s).

## 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

/cc @amosbird who introduced this importer in #2024.
2025-12-03 15:13:05 -08:00
Marc Jakobi
dc5cb308b5
build(nix): prevent deprecation warning on evaluation (#3006)
Some checks are pending
Codespell / Check for spelling errors (push) Waiting to run
build-docker / publish_x86 (push) Waiting to run
Install / install (macos-14) (push) Waiting to run
Install / install (ubuntu-latest) (push) Waiting to run
build-docker / publish_aarch64 (push) Waiting to run
build-docker / publish_manifest (push) Blocked by required conditions
Nix / check (push) Waiting to run
Nix / build-test (push) Waiting to run
Rust / cross-compile (x86_64-unknown-illumos) (push) Waiting to run
Rust / build (macos-14) (push) Waiting to run
Rust / build (ubuntu-latest) (push) Waiting to run
Rust / build (windows-latest) (push) Waiting to run
Rust / unit-test (macos-14) (push) Waiting to run
Rust / unit-test (ubuntu-latest) (push) Waiting to run
Rust / unit-test (windows-latest) (push) Waiting to run
Rust / check (macos-14) (push) Waiting to run
Rust / check (ubuntu-latest) (push) Waiting to run
Rust / integration-test (push) Waiting to run
Rust / check (windows-latest) (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / format (push) Waiting to run
Shellcheck / shellcheck (push) Waiting to run
Evaluating the overlay produces the following evaluation warning:
`'system' has been renamed to/replaced by 'stdenv.hostPlatform.system'`

<!-- 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
- [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
2025-12-02 16:52:14 -08:00
Waldir Pimenta
0f05e0ea08
chore: clarify docstring of the enter_accept config key (#3003)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
2025-11-26 18:51:42 +00:00
Cristian Le
e33b3de253
chore(deps): Update some packages realated to ring and aws-lc (#2991)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
After `aws-lc-rs 0.15` it seems the illumos issue is resolved, so
reviving the `metrics` et.al. update PR, specifically:
- Update `metrics` to 0.24 and `metrics-exporter-prometheus` to 0.17
- Drop the `ring` feature from `rustls`
- Update `reqwest` to 0.12 (dropping `rustls 0.21` from the lock file)

There still seem to be `ring` dependencies, but not sure if these can be
dropped

---------

Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
2025-11-17 20:04:24 -08:00
Marc Jakobi
09230fd08d
build(nix): update rust toolchain hash (#2990)
Fixes #2989.

The nix build fails, because the sha256 in the toolchain fetcher doesn't
match.

## 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

> [!IMPORTANT]
>
> Before merging this, we should probably investigate why the hash has
changed. It could be a sign of a supply chain attack.

Co-authored-by: Marc Jakobi <marc.jakobi@tiko.energy>
2025-11-17 19:28:07 -08:00
dependabot[bot]
240bda5be5
chore(deps): bump lukemathwalker/cargo-chef from latest-rust-1.91.0-slim-bookworm to latest-rust-1.91.1-slim-bookworm (#2995)
Bumps lukemathwalker/cargo-chef from latest-rust-1.91.0-slim-bookworm to
latest-rust-1.91.1-slim-bookworm.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lukemathwalker/cargo-chef&package-manager=docker&previous-version=latest-rust-1.91.0-slim-bookworm&new-version=latest-rust-1.91.1-slim-bookworm)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-11-17 19:27:36 -08:00
依云
6e13e974b0
fix: highlight the correct place when multibyte characters are involved (#2965)
<!-- 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
- [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
2025-11-17 19:26:33 -08:00
Zhizhen He
74826fc2ad
chore: fix typo (#2994)
<!-- 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 -->

Fixed typo in comment.

## 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
2025-11-17 19:24:40 -08:00
Ben Beasley
888c0984a5
chore(deps): Update the directories dependency to 6.0.0 (#2982)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
Nix / build-test (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Nix / check (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
Update the `directories` dependency to the latest and final version,
6.0.0.

The SemVer-breaking change in `directories` 6 is just that `dirs-sys` is
updated to 0.5, which, in turn, is just due to [updating some
platform-specific
dependencies](f369f0904b...8bcd4aa2c3).
There are therefore no API changes we need to worry about here.

Note that (as for [`dirs`](https://github.com/dirs-dev/dirs-rs)) the
[repository for `directories` is
archived](https://github.com/dirs-dev/directories-rs), so it might be
time to start thinking about a maintained alternative.

## 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
2025-11-10 14:50:56 -08:00
Tommi Hovi
5908e9bff9
chore: remove trailing whitespace (#2985)
<!-- 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
- [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
2025-11-10 14:50:30 -08:00
dependabot[bot]
a05cef8247
chore(deps): bump debian from bookworm-20250929-slim to bookworm-20251103-slim (#2986)
Bumps debian from bookworm-20250929-slim to bookworm-20251103-slim.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=debian&package-manager=docker&previous-version=bookworm-20250929-slim&new-version=bookworm-20251103-slim)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-11-10 14:50:13 -08:00
Ellie Huxtable
558a517961
chore: Add Atuin Desktop information to install script 2025-11-10 14:49:41 -08:00
dependabot[bot]
c19ddce2e0
chore(deps): bump lukemathwalker/cargo-chef from latest-rust-1.90.0-slim-bookworm to latest-rust-1.91.0-slim-bookworm (#2978)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
Bumps lukemathwalker/cargo-chef from latest-rust-1.90.0-slim-bookworm to
latest-rust-1.91.0-slim-bookworm.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lukemathwalker/cargo-chef&package-manager=docker&previous-version=latest-rust-1.90.0-slim-bookworm&new-version=latest-rust-1.91.0-slim-bookworm)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-11-06 16:23:48 -08:00
Ellie Huxtable
644099e8ae
chore: update to rust 1.91 (#2981)
<!-- 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
2025-11-06 16:16:43 -08:00
Koichi Murase
ea218c546f
fix(bash): work around a keybinding bug of Bash 5.1 (#2975)
Some checks failed
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / build (windows-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / unit-test (windows-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / check (windows-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
This adds a workaround for an issue with a Bash-5.1 bug reported by
@MaxenceG2M at
https://github.com/atuinsh/atuin/issues/962#issuecomment-3451132291. See
the added code comments for details.

## 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
2025-10-31 12:14:54 -07:00
Koichi Murase
312bdcb79b
fix(bash/blesh): suppress error message for auto-complete source (#2976)
This patch tries to port a change for zsh-autosuggestion in #2780 to
suppress the error messages in typing the command. The same issue
happens with ble.sh, so we want to suppress the error message in the
same way as with zsh-autosuggestion.

## 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
2025-10-31 12:14:36 -07:00
Koichi Murase
17d09c848f
fix(bash): fix issues with intermediate key sequences in the vi editing mode (#2977)
In #2953, I chose `\e[0;<n>A` as special key sequences for
`enter_accept` in Bash, but I realized that the sequence `\e[0;<n>A`
doesn't actually work in the `vi-insert` keymap. I instead suggest using
the key sequences of the form `\C-x\C-_A0\a` (99ddcbf7), which is
unlikely to conflict with the users' keybindings. In addition, for Bash
<= 3.2, I also noticed that we cannot insert `$READLINE_LINE` in the
command line when we are in the `vi-command` keymap. I suggest switching
from `vi-command` to `vi-insert` temporarily (e6c4e9fd).

## 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
2025-10-31 12:14:20 -07:00
Lucas Trzesniewski
d3bcf9aba5
ci: add Windows builds, second try (#2966)
Hi @ellie, I don't want to be a burden, but I'd like to ask if you could
please reconsider adding Windows builds now that PowerShell support is
merged (#2543). 😇

Most people use PowerShell on Windows, so they'd need an artifact in the
future releases in order to use it. Otherwise, they'd have to install
Rust and compile it themselves, which is not user-friendly.

I'd like to point out that I didn't have issues with building Atuin on
Windows when I was rebasing the PowerShell PR (except some initial stuff
like `#[cfg]` or a few warnings which were fixed in #2856), so I don't
expect this to introduce many problems.

This is essentially an updated version of #2714.

## 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
2025-10-31 11:36:06 -07:00
Ellie Huxtable
34fee9bf8c
chore: adjust update wording (#2974)
Some checks are pending
Codespell / Check for spelling errors (push) Waiting to run
build-docker / publish_x86 (push) Waiting to run
build-docker / publish_aarch64 (push) Waiting to run
build-docker / publish_manifest (push) Blocked by required conditions
Install / install (macos-14) (push) Waiting to run
Install / install (ubuntu-latest) (push) Waiting to run
Nix / check (push) Waiting to run
Nix / build-test (push) Waiting to run
Rust / build (macos-14) (push) Waiting to run
Rust / build (ubuntu-latest) (push) Waiting to run
Rust / cross-compile (x86_64-unknown-illumos) (push) Waiting to run
Rust / unit-test (macos-14) (push) Waiting to run
Rust / unit-test (ubuntu-latest) (push) Waiting to run
Rust / check (macos-14) (push) Waiting to run
Rust / check (ubuntu-latest) (push) Waiting to run
Rust / integration-test (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / format (push) Waiting to run
Shellcheck / shellcheck (push) Waiting to run
A user mentioned seeing the "UPGRADE" wording, and then expecting `atuin
upgrade` to work, when in fact the correct command is `atuin update`

Easy fix, wording adjusted

<!-- 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
2025-10-30 11:35:35 -07:00
Lucas Trzesniewski
592df559da
feat Add PowerShell support (#2543)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
This adds PowerShell support 🎉 

I built this script around @lzybkr's
[prototype](https://github.com/atuinsh/atuin/issues/84#issuecomment-1689168533),
so I added him as co-author (I hope that's ok). I wouldn't know where to
start without his contribution.

I'm not a PowerShell expert, so this was a nice opportunity to learn
some stuff. I think it's ok, but I would appreciate if someone more
knowledgeable in the matter could review this though.

It would be nice if other PowerShell users could test this with their
configs and report any issues. I wouldn't be surprised if there are some
remaining bugs or missing features.

Fixes #84

## Installation

If you'd like to test this, you can install the `atuin` from this PR by
running:

```powershell
cargo install --git https://github.com/ltrzesniewski/atuin.git --branch powershell-pr
```

Then, add the following to your PowerShell profile file (whose path is
in `$PROFILE`) and restart the shell:

```powershell
atuin init powershell | Out-String | Invoke-Expression
```

This requires `atuin` to be in the path and the
[PSReadLine](https://github.com/PowerShell/PSReadLine) module to be
installed, which is the case by default.

## Tests

I tested this on the following:
- PowerShell 7.4.6 / PSReadLine 2.3.5 / Windows (the latest one)
- PowerShell 7.5.1 / PSReadLine 2.3.6 / Windows (the latest one)
- PowerShell 5.1.22621.4391 / PSReadLine 2.0.0 / Windows (the one
shipped with Windows)
- PowerShell 7.4.6 / PSReadLine 2.3.5 / Ubuntu WSL (strangely, it didn't
behave exactly like the Windows version)
- PowerShell 7.5.1 / PSReadLine 2.3.6 / Ubuntu WSL

I also tested this with and without my custom [Oh My
Posh](https://ohmyposh.dev/) prompt. It works fine in both cases,
~except that since my OMP config contains `"newline": true`, my prompt
is multiline and shifts downwards by a single line on each `atuin search
-i` invocation. This can be adjusted with the
`$env:ATUIN_POWERSHELL_PROMPT_OFFSET` environment variable (e.g. I set
mine to `-1` to account for the additional prompt line).~ (this variable
is now auto-initialized).

## 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

---------

Co-authored-by: Jason Shirk <jasonsh@microsoft.com>
2025-10-23 13:03:39 -07:00
Ellie Huxtable
be8608d555 chore: update changelog
Some checks failed
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Codespell / Check for spelling errors (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
2025-10-21 14:38:08 -07:00
Ellie Huxtable
37e257105a
chore(release): prepare for release 18.10.0 (#2962)
<!-- 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
2025-10-21 14:37:49 -07:00
Ellie Huxtable
0042d189de
Revert "feat: more accurately filter secret tokens" (#2961)
Reverts atuinsh/atuin#2932

Resolves #2960
2025-10-21 14:22:18 -07:00
dependabot[bot]
d066cd879a
chore(deps): bump debian from bookworm-20250811-slim to bookworm-20250929-slim (#2936)
Some checks are pending
Codespell / Check for spelling errors (push) Waiting to run
build-docker / publish_manifest (push) Blocked by required conditions
Nix / check (push) Waiting to run
Nix / build-test (push) Waiting to run
Rust / build (macos-14) (push) Waiting to run
Rust / build (ubuntu-latest) (push) Waiting to run
Rust / cross-compile (x86_64-unknown-illumos) (push) Waiting to run
build-docker / publish_x86 (push) Waiting to run
build-docker / publish_aarch64 (push) Waiting to run
Install / install (macos-14) (push) Waiting to run
Install / install (ubuntu-latest) (push) Waiting to run
Rust / unit-test (macos-14) (push) Waiting to run
Rust / unit-test (ubuntu-latest) (push) Waiting to run
Rust / check (macos-14) (push) Waiting to run
Rust / check (ubuntu-latest) (push) Waiting to run
Rust / integration-test (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / format (push) Waiting to run
Shellcheck / shellcheck (push) Waiting to run
Bumps debian from bookworm-20250811-slim to bookworm-20250929-slim.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=debian&package-manager=docker&previous-version=bookworm-20250811-slim&new-version=bookworm-20250929-slim)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-10-20 21:45:56 -07:00
Stuart Carnie
5e3dac2efd
feat: nu ≥ 0.106.0 support commandline accept (#2957)
# Summary

Adjust the Nushell script to check the version and enable accept support
when Nushell 0.106.0 or greater is found.

See: https://github.com/nushell/nushell/pull/16193

<!-- 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
- [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
2025-10-20 21:45:31 -07:00
Karl Ding
aa9e5ad1d5
fix: stats ngram window size cli parsing (#2946)
Some checks are pending
Codespell / Check for spelling errors (push) Waiting to run
build-docker / publish_x86 (push) Waiting to run
build-docker / publish_aarch64 (push) Waiting to run
build-docker / publish_manifest (push) Blocked by required conditions
Install / install (macos-14) (push) Waiting to run
Install / install (ubuntu-latest) (push) Waiting to run
Nix / build-test (push) Waiting to run
Nix / check (push) Waiting to run
Rust / build (macos-14) (push) Waiting to run
Rust / build (ubuntu-latest) (push) Waiting to run
Rust / cross-compile (x86_64-unknown-illumos) (push) Waiting to run
Rust / unit-test (macos-14) (push) Waiting to run
Rust / unit-test (ubuntu-latest) (push) Waiting to run
Rust / check (macos-14) (push) Waiting to run
Rust / check (ubuntu-latest) (push) Waiting to run
Rust / integration-test (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / format (push) Waiting to run
Shellcheck / shellcheck (push) Waiting to run
Fix panic when running "atuin stats" with an empty window size:

    $ RUST_BACKTRACE=1 atuin stats year -n0

thread 'main' panicked at crates/atuin-history/src/stats.rs:278:14:
      window size must be non-zero
      stack backtrace:
         0: __rustc::rust_begin_unwind
         1: core::panicking::panic_fmt
         2: core::option::expect_failed
         3: atuin_history::stats::compute
         4: atuin::command::client::Cmd::run_inner::{{closure}}
         5: tokio::runtime::context::scoped::Scoped<T>::set
6: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
         7: tokio::runtime::context::runtime::enter_runtime
         8: atuin::command::AtuinCmd::run
         9: atuin::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a
      verbose backtrace.

The ngram window size had a default value of 1 (indicating that perhaps
this case was considered), but did not validate the parsed value when a
non-default value was given.

Such validation can either occur:

1. during clap argument parsing
2. after clap parses arguments, but before computing statistics

If we were to do this after clap finishes parsing arguments, this would
be a runtime check in run(), but it seems better to return an error as
soon as possible.

It's possible to do this without a custom parsing function via
clap::value_parser! and specifying a range:

    clap::value_parser!(u64).range(1..)

However, this does not appear to support custom error messages so we
would be left with the default message specifying an invalid range.

Therefore, add a custom parser function and return an error when the
value cannot be parsed as a valid ngram value.

<!-- 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
- [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
2025-10-20 13:07:41 -07:00
P T Weir
d53ad84e57
feat: Interactive Inspector (#2319)
### What does this PR do?

Adds simple navigation to the inspector, to explore a session starting
from a single command. This creates a new user flow, where a user can
find a history entry in the interactive view (in, say, Global mode), and
hit Ctrl+o to navigate back and forward through that command's session.

IMAGINED USE-CASE: I remembered that I did a sequence of git steps but I
can't remember the order and forgot to document it. I remember that
`reflog` was involved and want to see the actual sequence, and only
those commands.

IMAGINED USE-CASE: I used a curl command to get my IP address for
greenlisting before I connected to the bastion server `abc.xyz` over SSH
- I could easily find the SSH command with abc.xyz, and go back one step
in the session, but without this change, scrolling through all my curl
commands ever run to find a forgotten URL/domain would be too much work.

Since this gives the inspector tab a broader purpose than viewing
analytics, it needs to function even when there are not enough screen
rows for charts -- hence, this PR also introduces an ultracompact mode
for the inspector that _just_ shows the neighbouring history commands
(as simple scrolling three-entry list, with no panes) if there are fewer
than `auto_hide_height` rows (default: 8). Otherwise, the inspector
behaves as normal, except that Up / Down will change the focused command
by navigating through the session. That means there is no "compact" mode
for the inspector - when the interactive search is compact (but not
ultracompact), the inspector shows its usual chart view.

The UX for this could be improved - to keep this PR as lean as it
realistically can be, I have tried to keep the flow very minimal, but a
follow-up PR could introduce some tooltips, nicer ultracompact
formatting, etc.

A minor QoL improvement that comes with this - since I had to deal with
bold text and would otherwise have need a theming exception, I took the
opportunity to ensure the theme engine sets styles completely (so a
theme can have bold), not just colours. To limit scope creep, I do not
add TOML syntax so (for now) you can only customize colours from config
files, but it means that default-bold text (etc.) can now use the
theming engine if the code-defined default Meaning is bolded.

Key changes:

* introduces a simplified inspector tab, with only previous-current-next
commands as rows, in compact mode
* allows navigation through session history within the inspector (so
compact inspector view is still useful)

It also (see comments below):

* makes `compact` into `compactness`, an enum (to better standardize
across inspector/interactive)
* makes the inspector _only_ change layout for ultracompact mode, which
is still compact+(height<8)
* clippy's complexity limit wanted draw split up a little, so not sure
if this is a reasonable minimal way to do so for now
* adds a `(none)` theme to the theming to enable output testing without
styling
* ~~additional tests, although keen for input on how best to do these~~
one functional test, as a starting point
* ~~documentation~~ [minor doc changes
only](https://github.com/atuinsh/docs/pull/72), as I am not sure there
is much to say

<!-- 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 -->

_Was stacked on #2357, which is now in `main`_

## 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
2025-10-20 13:02:40 -07:00
Koichi Murase
a6abc717b4
feat(bash): use Readline's accept-line for enter_accept (#2953)
<!-- 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 -->

This PR introduces a mechanism to use Readline's `accept-line` to run
the user command properly. The idea is described in [the code
comment](https://github.com/atuinsh/atuin/pull/2953/files#diff-57afeb258339de1b14a8dd3fdc88d1a0e192fd186706e570c44c3ef41f7a8c6dR362-R382)
in the added code. This naturally fixes #2935 because Readline's
`accept-line` also performs the necessary keymap transition.

This PR also fixes the behavior of <kbd>tab</kbd> and <kbd>enter</kbd>
with `enter_accept = false` `in Bash <= 3.2. In the previous
implementation, the selected command was lost in Bash 3.2, but this PR
correctly inserts the selected command into the command line buffer.

This PR adds a utility `atuin-bind` to make it easier to define custom
keybindings. The default bindings are also set up by the new function
`atuin-bind` now. This new function `atuin-bind` arranges all
non-trivial setups to make it possible to call Readline's `accept-line`.

The old mechanism using `__atuin_accept_line` is kept for existing users
who set up custom keybindings (without using the new function
`atuin-bind`).



## 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
2025-10-20 12:26:56 -07:00
Ellie Huxtable
d4e7272036 chore: update changelog 2025-10-20 11:39:21 -07:00
Ben Beasley
5c07151fc5
chore: update rusty_paseto and rusty_paserk (#2942)
<!-- 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
- [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
2025-10-20 11:28:36 -07:00
Lucas Trzesniewski
755bd34090
feat: add import from PowerShell history (#2864)
This adds an `atuin import powershell` command.

Of course, it is related to #2543 but I'm submitting it as a separate PR
since the code is self-contained and simple enough, and the feature
could be useful on its own.

/cc @ajn142 who [requested
it](https://github.com/atuinsh/atuin/issues/84#issuecomment-3091692807).

## 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
2025-10-20 11:27:59 -07:00
Lucas Trzesniewski
10ab94372b
feat: add commit to displayed version info (#2922)
This adds the commit SHA to the following:
- `atuin doctor`
- `atuin info` (which already displays the version)
- `atuin --version` (but not `atuin -V` in order not to affect `atuin
--help`)

I'm submitting this because I had issue reports in #2543 which were
already resolved, so being able to easily ask for the commit id would
have been helpful, as the version number isn't meaningful in a PR.

Also, I suppose the info should have been included in `atuin doctor` in
the first place, so that probably fixes an oversight.

## 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
2025-10-20 11:27:03 -07:00
Ellie Huxtable
e1d1ff27dd
chore(release): prepare for release 18.9.0 (#2952)
<!-- 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
2025-10-20 10:53:48 -07:00
Lucas Trzesniewski
8ca8165c12
feat: add shell pipelines to command chaining (#2938)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
I wanted to use `command_chaining` to write a pipeline (`cmdA | cmdB`)
and was genuinely surprised it didn't work.

## 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
2025-10-06 18:18:09 -04:00
Keith Cirkel
2fc262db80
feat: more accurately filter secret tokens (#2932)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
2025-10-02 21:03:04 -04:00
Keith Cirkel
7137e4f297
feat: add various acceptance keys (#2928)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
This change introduces (optional) acceptance keys of Backspace and Left
Arrow, when at the start of a line. These two are common muscle memory
actions for users.

The configuration defaults to false so as not to disrupt existing user
patterns.

This also adds a test that exercises the various acceptance modes, which
as it turns out was quite easy to do.

I discussed this on discord where [Ellie suggested I raised an
issue](1422642337),
but I felt like a PR would be more tangiable. I've tested this locally
and I'm very happy with how these keys work, it fits my needs well.

`exit_past_line_start` and `accept_past_line_start` can technically
co-exist. When this happens `accept_past_line_start` takes precedence.
Is this okay, or should we reconsider the config? Perhaps
`acceptance_keys = []` would be better here? I'm very open to changes
here.

<!-- 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
- [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
2025-09-30 21:50:46 -04:00
Ramses
cc2b717029
fix: fish up binding (#2902)
Some checks failed
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
2025-09-27 19:44:20 -07:00
Wil Clouser
ca2b1faa46
fix: docker compose link (#2914)
Some checks failed
Codespell / Check for spelling errors (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Install / install (ubuntu-latest) (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
The current docker-compose.yml fails to start today with an error:

service "atuin" depends on undefined service "postgresql": invalid
compose project

This patch modernizes the yml and fixes the link. Tested on docker
compose v2.39.4.

Docs patch is https://github.com/atuinsh/docs/pull/104 .  /cc @ellie 

## 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
2025-09-26 10:49:51 -07:00
Ray Kohler
65b25c4f82
chore: update to Rust 1.90 (#2916)
<!-- 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
- [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

Hopefully this one is mergeable as is, unlike the 1.89 upgrade.

Fixes: #2915
2025-09-26 10:46:49 -07:00
Braxton Schafer
9b151b82e6
fix(dotfiles): properly escape spaces/quotes in vars
Some checks are pending
Codespell / Check for spelling errors (push) Waiting to run
build-docker / publish_x86 (push) Waiting to run
build-docker / publish_aarch64 (push) Waiting to run
build-docker / publish_manifest (push) Blocked by required conditions
Rust / check (ubuntu-latest) (push) Waiting to run
Rust / integration-test (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / format (push) Waiting to run
Shellcheck / shellcheck (push) Waiting to run
Install / install (macos-14) (push) Waiting to run
Install / install (ubuntu-latest) (push) Waiting to run
Nix / check (push) Waiting to run
Nix / build-test (push) Waiting to run
Rust / build (macos-14) (push) Waiting to run
Rust / build (ubuntu-latest) (push) Waiting to run
Rust / cross-compile (x86_64-unknown-illumos) (push) Waiting to run
Rust / unit-test (macos-14) (push) Waiting to run
Rust / unit-test (ubuntu-latest) (push) Waiting to run
Rust / check (macos-14) (push) Waiting to run
2025-09-25 23:49:42 -07:00
Lucas Trzesniewski
a95b39c3ec feat(stats): add dotnet to default common subcommands
Some checks are pending
Codespell / Check for spelling errors (push) Waiting to run
build-docker / publish_x86 (push) Waiting to run
build-docker / publish_aarch64 (push) Waiting to run
build-docker / publish_manifest (push) Blocked by required conditions
Install / install (macos-14) (push) Waiting to run
Install / install (ubuntu-latest) (push) Waiting to run
Nix / build-test (push) Waiting to run
Nix / check (push) Waiting to run
Rust / build (macos-14) (push) Waiting to run
Rust / build (ubuntu-latest) (push) Waiting to run
Rust / cross-compile (x86_64-unknown-illumos) (push) Waiting to run
Rust / unit-test (macos-14) (push) Waiting to run
Rust / unit-test (ubuntu-latest) (push) Waiting to run
Rust / check (macos-14) (push) Waiting to run
Rust / check (ubuntu-latest) (push) Waiting to run
Rust / integration-test (push) Waiting to run
Rust / clippy (push) Waiting to run
Rust / format (push) Waiting to run
Shellcheck / shellcheck (push) Waiting to run
2025-09-25 17:56:18 -07:00
Lucas Trzesniewski
8c18b2e960 refactor: shell environment variables
Some checks failed
Install / install (ubuntu-latest) (push) Has been cancelled
Codespell / Check for spelling errors (push) Has been cancelled
Install / install (macos-14) (push) Has been cancelled
Shellcheck / shellcheck (push) Has been cancelled
Rust / build (ubuntu-latest) (push) Has been cancelled
build-docker / publish_x86 (push) Has been cancelled
build-docker / publish_aarch64 (push) Has been cancelled
Nix / check (push) Has been cancelled
Nix / build-test (push) Has been cancelled
Rust / build (macos-14) (push) Has been cancelled
Rust / cross-compile (x86_64-unknown-illumos) (push) Has been cancelled
Rust / unit-test (macos-14) (push) Has been cancelled
Rust / check (macos-14) (push) Has been cancelled
Rust / unit-test (ubuntu-latest) (push) Has been cancelled
Rust / check (ubuntu-latest) (push) Has been cancelled
Rust / integration-test (push) Has been cancelled
Rust / clippy (push) Has been cancelled
Rust / format (push) Has been cancelled
build-docker / publish_manifest (push) Has been cancelled
2025-09-18 12:58:42 -07:00