aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-client/src (unfollow)
Commit message (Collapse)Author
2025-04-21feat(stats): add jj to default common subcommands (#2708)Alex Hamilton
2025-04-17feat: delete duplicate history (#2697)依云
2025-04-07feat: support storing, syncing and executing scripts (#2644)Ellie Huxtable
* feat: add atuin-scripts crate * initial * define record types * wip * wip * mvp * add show command, make stdin work * rewrite execution to use shebang and script file ALWAYS * rename show -> get, allow fetching script only * fmt * clippy * a bunch of fixes to the edits * update lock * variables * fmt * clippy * pr feedback * fmt
2025-04-01feat(kv): Add support for 'atuin kv delete' (#2660)Michelle Tilley
2025-03-25fix: typeerror in client sync code (#2647)Ellie Huxtable
* fix: typeerror in client sync code Fixes #2645 This is really weird 1. I have not touched this code in _years_. It has not changed. In recent rust versions, it has a typeerror (see linked issue) 2. This does not occur when running `cargo build`, in release mode or otherwise. It only occurs with `cargo install` 3. I can't find any other occurences of this typeerror online - unsure if it is a compiler regression? The code here is not very complex at all. * chore(clippy): remove unused imports
2025-03-24feat: option to include duplicate commands when printing history commands ↵依云
(#2407)
2025-03-24fixes #1884: HISTFILE can be a directory or a file (#2630)Benjamin Weinstein-Raun
Xonsh history import was failing (in the default xonsh configuration) because $HISTFILE is actually a directory in that case. This change sets up the xonsh import to check for a *directory* instead of a regular file, and makes it clearer that other importers expect a regular file.
2025-03-19chore: migrate to rust 2024 (#2635)Ellie Huxtable
* chore: upgrade to 2024 edition * ugh unsafe * format * nixxxxxxxxxxx why
2025-03-13chore: align daemon and client sync freq (#2628)Ellie Huxtable
2025-03-09fix: improve broken symlink error handling (#2589)James Trew
Check atuin setting paths (eg. `db_path`) for broken symlinks on initialization and disable all shell hooks + print error message. sqlite doesn't create db files even with `.create_if_missing` when the db files are a broken symlink. This would cause sqlite to error and atuin to panic on every single keypress. Also improves related error handling when calling atuin client commands directly.
2025-03-09feat: make new arrow key behavior configurable (#2606)chitao1234
* feat: make new arrow key behavior configurable The arrow key behavior in interactive search was changed in #2453, make it configurable via keys.exit_past_line_start and keys.accept_past_line_end * Update crates/atuin-client/config.toml * Update crates/atuin-client/config.toml * Update crates/atuin-client/config.toml * I've made so many typos with these, sorry --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2025-03-09fix: don't save empty commands (#2605)Lucas Trzesniewski
2025-02-18perf: cache `SECRET_PATTERNS`'s `RegexSet` (#2570)DaniPopes
Improves the performance of `History::should_save` by constructing the `SECRET_PATTERNS` `RegexSet` only once with a `LazyLock`. This speeds up `atuin history prune` by ~100x (~7s to ~70ms on my machine) (lol).
2025-02-18fix: add .histfile as file to look for when doing atuin import zsh (#2588)slamp
2025-01-07style: Avoid calling `unwrap()` when we don't have to (#2519)Andrew Aylett
Use `if let` rather than `is_some()` followed by `unwrap()`, and coerce errors instead of calling `unwrap()` when available.
2024-12-29feat(client): update AWS secrets env var handling checks (#2501)Dagan McGregor
Update to use AWS env vars as documented, replace duplicated entries AWS_SECRET_ACCESS_KEY the secret paired to Access Key IDs AWS_SESSION_TOKEN the secret session token for STS sessions
2024-12-27feat: add `atuin wrapped` (#2493)Ellie Huxtable
* wip * wip * final * fix clippy * do not hard code the year * support tz properly, allow specifying the year
2024-11-19feat(client): add filter mode enablement and ordering configuration (#2430)Pavel Ivanov
2024-10-07feat: Ultracompact Mode (search-only) (#2357)P T Weir
* feat: add always_show_tabs setting * feat(ultracompact): extra-compact options * feat(ultracompact): enable via auto_hide_height * feat(ultracompact): clarify comment * fix(theming): minor tidyup to theming comment * chore: rustfmt/clippy corrections * chore: testing if CI issue was transient
2024-08-27chore: enable inline height and compact by default (#2249)Ellie Huxtable
2024-08-14fix: remove dbg! macro (#2355)TymanWasTaken
2024-08-05test: add env ATUIN_TEST_LOCAL_TIMEOUT to control test timeout of SQLite (#2337)Jax Young
* test: add env ATUIN_TEST_LOCAL_TIMEOUT to control test timeout of SQLite This make it possible to control the timeout of SQLite operations in test. And ATUIN_TEST_LOCAL_TIMEOUT defaults to the default local_timeout, which is actually used in the client. Instead of a small timeout (0.1), this change makes the test less likely to fail and better imitate the default behavior. SQLite operation timeout was first introduced from #1590, including connection and store timeout. The env ATUIN_TEST_SQLITE_STORE_TIMEOUT which added by #1703 only specify the store timeout. This commit doesn't deprecate ATUIN_TEST_SQLITE_STORE_TIMEOUT, but control it by setting its default to the new env ATUIN_TEST_LOCAL_TIMEOUT. * test!: replace ATUIN_TEST_SQLITE_STORE_TIMEOUT with ATUIN_TEST_LOCAL_TIMEOUT This deprecate ATUIN_TEST_SQLITE_STORE_TIMEOUT for simplicity as the new env ATUIN_TEST_LOCAL_TIMEOUT can control both connection and store timeout of SQLite in test. Details see 4d88611. Revert: #1703.
2024-08-05fix(theme): Restore original colours (#2339)P T Weir
* fix(theme): restore ratatui colors * chore: fix up rustfmt * typo: correct spelling in comment
2024-07-23fix(themes): Restore default theme, refactor (#2294)P T Weir
* fix(theme): let the base colour remain unchanged * fix(theme): split out default * fix(theme): make base theme 'default' not an empty string * wip(theme): return styles, not colors * wip(theme): tidy up module structure a little * wip(theme): removed unhandled references to foreground_color * chore: fix cargo fmt * feat(theme): allow crossterm-deserializable colors
2024-07-17feat(tui): Fixed preview height option (#2286)Tobias Genannt
* Added "fixed" to preview strategy Uses max_preview_height as a fixed value to prevent the list from "jumping". * Added test for new setting
2024-07-15feat(tui): Customizable Themes (#2236)P T Weir
* wip: add theme * feat(theme): basic theming approach * feat(theme): adds theming support * fix: split out palette without compact inspector * fix(theme): tidy up implementation * fix(theme): correct yaml to toml * fix(theme): typo in comments * chore: cheer up clippy * fix(themes): ensure tests cannot hit real loading directory * chore: rustfmt * chore: rebase * feat(themes): add rgb hexcode support * fix(theme): add tests * fix(theme): use builtin log levels and correct debug test * feat(theme): adds the ability to derive from a non-base theme * fix(theme): warn if the in-file name of a theme does not match the filename * chore: tidy for rustfmt and clippy * chore: tidy for rustfmt and clippy
2024-07-11chore: enable record sync by default (#2255)Ellie Huxtable
I'm now pretty confident in the automatic migration. Let's cut people over so they have a better experience
2024-07-10feat(gui): use fancy new side nav (#2243)Ellie Huxtable
* feat(gui): use fancy new side nav * compact only sidebar, no expand-collapse * custom drag region, remove titlebar * add user popup * wire up login/logout/register, move user button to bottom and add menu * link help and feedback to forum
2024-07-03fix: idx cache inconsistency (#2231)Ellie Huxtable
2024-07-01feat: Add npm, Netlify and Pulumi tokens to secret patterns (#2210)Julien P
2024-06-25feat: add several other GitHub access token patterns (#2200)Chris Rose
- OAuth access tokens - refresh token - app installation token - PAT v2 Additionally, added support for having >1 value for testing, for cases where the pattern for a secret has alternative formats (GitHub PAT v2 does this)
2024-06-25feat: Add GitLab PAT to secret patterns (#2196)David Jack Wange Olrik
2024-06-24feat: add user account verification (#2190)Ellie Huxtable
* add verified column to users table * add database functions to check if verified, or to verify * getting there * verification check * use base64 urlsafe no pad * add verification client * clippy * correct docs * fix integration tests
2024-06-20feat(history): filter out various environment variables containing potential ↵David
secrets (#2174)
2024-06-20feat(daemon): follow XDG_RUNTIME_DIR if set (#2171)Ellie Huxtable
If XDG_RUNTIME_DIR is set, put the socket file there. If not, default to storing it in our data dir. We cannot default to a path such as /run/user/$UID/ because it does not exist on all systems. Any system running systemd will set this var by default, and ensure that the directory it points to is correctly setup.
2024-06-18feat(tui): configurable prefix character (#2157)Ellie Huxtable
* feat(tui): configurable prefix character * string not char because toml/json lol
2024-06-17fix: unitless sync_frequence = 0 not parsed by humantime (#2154)Ellie Huxtable
Resolve #2147
2024-06-03fix(client): better error reporting on login/registration (#2076)Xavier Vello
2024-06-03feat(doctor): report sqlite version (#2075)Xavier Vello
2024-06-03fix(deps): replace parse_duration with humantime (#2074)Blair Noctis
The former is no longer maintained, with a long standing security advisory (RUSTSEC-2021-0041).
2024-05-30chore: handle rate limited responses (#2057)Ellie Huxtable
For Atuin Cloud, we rate limit login attempts (and a few other endpoints). Ensure that the user gets a descriptive response For self hosted users, if you wish to rate limit, I'd suggest configuring this with your reverse proxy.
2024-05-30feat(ui): add login/register dialog (#2056)Ellie Huxtable
2024-05-25feat: support systemd socket activation for daemon (#2039)Nemo157
This avoids issues with clients attempting to connect to the daemon while it's starting, systemd creates the socket early and will queue connections up until the daemon is ready to accept them.
2024-05-21feat: support importing from replxx history files (#2024)Amos Bird
* Support importing from replxx history files * Fix clippy error. Also Remove auto-detect for replxx which makes no sense. * Add some tests
2024-05-21fix(daemon): do not try to sync if logged out (#2037)Ellie Huxtable
* fix(daemon): do not try to sync if logged out I've also added Settings::logged_in, as there are a few places where we switch on login state. * make session_token a function
2024-05-16fix: bogus error message wording (#1283)Caleb Maclennan
2024-05-14fix: alias enable/enabled in settings (#2021)Ellie Huxtable
2024-05-13feat(daemon): add support for daemon on windows (#2014)YummyOreo
* fix: gracefully exit on windows * feat(daemon): tcp support for windows * feat(daemon): add tcp port configuration * fix: logging and fix compiler error * docs: add build dependency to the readme fix(docs): move a line up * fix: missing field error * docs: adds the daemon section to the default config * fix: clippy and fmt * feat: Update README.md Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com> * refactor: changes tcp port and other stuff as per request * fix(config): update default tcp port in example config * fix: complier error on unix * refactor: make the cfg stuff look better --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2024-05-08fix: add incremental rebuild to daemon loop (#2010)Ellie Huxtable
2024-05-08feat: add background daemon (#2006)Ellie Huxtable
* init daemon crate * wip * minimal functioning daemon, needs cleanup for sure * better errors * add signal cleanup * logging * things * add sync worker * move daemon crate * 30s -> 5mins * make clippy happy * fix stuff maybe? * fmt * trim packages * rate limit fix * more protoc huh * this makes no sense, why linux why * can it install literally just curl * windows in ci is slow, and all the newer things will not work there. disable the daemon feature and it will build * add daemon feature * maybe this * ok wut where is protoc * try setting protoc * hm * try copying protoc * remove optional * add cross config * idk nix * does nix want this? * some random pkg I found does this * uh oh * hack, be gone! * update contributing