aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-client/src (follow)
Commit message (Collapse)AuthorAge
* feat(stats): add jj to default common subcommands (#2708)Alex Hamilton2025-04-21
|
* feat: delete duplicate history (#2697)依云2025-04-17
|
* feat: support storing, syncing and executing scripts (#2644)Ellie Huxtable2025-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* feat(kv): Add support for 'atuin kv delete' (#2660)Michelle Tilley2025-04-01
|
* fix: typeerror in client sync code (#2647)Ellie Huxtable2025-03-25
| | | | | | | | | | | | | | | | | * 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
* feat: option to include duplicate commands when printing history commands ↵依云2025-03-24
| | | | (#2407)
* fixes #1884: HISTFILE can be a directory or a file (#2630)Benjamin Weinstein-Raun2025-03-24
| | | | | | 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.
* chore: migrate to rust 2024 (#2635)Ellie Huxtable2025-03-19
| | | | | | | | | * chore: upgrade to 2024 edition * ugh unsafe * format * nixxxxxxxxxxx why
* chore: align daemon and client sync freq (#2628)Ellie Huxtable2025-03-13
|
* fix: improve broken symlink error handling (#2589)James Trew2025-03-09
| | | | | | | | | | | 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.
* feat: make new arrow key behavior configurable (#2606)chitao12342025-03-09
| | | | | | | | | | | | | | | | | | | * 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>
* fix: don't save empty commands (#2605)Lucas Trzesniewski2025-03-09
|
* perf: cache `SECRET_PATTERNS`'s `RegexSet` (#2570)DaniPopes2025-02-18
| | | | | | | 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).
* fix: add .histfile as file to look for when doing atuin import zsh (#2588)slamp2025-02-18
|
* style: Avoid calling `unwrap()` when we don't have to (#2519)Andrew Aylett2025-01-07
| | | | Use `if let` rather than `is_some()` followed by `unwrap()`, and coerce errors instead of calling `unwrap()` when available.
* feat(client): update AWS secrets env var handling checks (#2501)Dagan McGregor2024-12-29
| | | | | | | 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
* feat: add `atuin wrapped` (#2493)Ellie Huxtable2024-12-27
| | | | | | | | | | | | | * wip * wip * final * fix clippy * do not hard code the year * support tz properly, allow specifying the year
* feat(client): add filter mode enablement and ordering configuration (#2430)Pavel Ivanov2024-11-19
|
* feat: Ultracompact Mode (search-only) (#2357)P T Weir2024-10-07
| | | | | | | | | | | | | | | * 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
* chore: enable inline height and compact by default (#2249)Ellie Huxtable2024-08-27
|
* fix: remove dbg! macro (#2355)TymanWasTaken2024-08-14
|
* test: add env ATUIN_TEST_LOCAL_TIMEOUT to control test timeout of SQLite (#2337)Jax Young2024-08-05
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* fix(theme): Restore original colours (#2339)P T Weir2024-08-05
| | | | | | | * fix(theme): restore ratatui colors * chore: fix up rustfmt * typo: correct spelling in comment
* fix(themes): Restore default theme, refactor (#2294)P T Weir2024-07-23
| | | | | | | | | | | | | | | | | * 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
* feat(tui): Fixed preview height option (#2286)Tobias Genannt2024-07-17
| | | | | | | | * Added "fixed" to preview strategy Uses max_preview_height as a fixed value to prevent the list from "jumping". * Added test for new setting
* feat(tui): Customizable Themes (#2236)P T Weir2024-07-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* chore: enable record sync by default (#2255)Ellie Huxtable2024-07-11
| | | I'm now pretty confident in the automatic migration. Let's cut people over so they have a better experience
* feat(gui): use fancy new side nav (#2243)Ellie Huxtable2024-07-10
| | | | | | | | | | | | | * 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
* fix: idx cache inconsistency (#2231)Ellie Huxtable2024-07-03
|
* feat: Add npm, Netlify and Pulumi tokens to secret patterns (#2210)Julien P2024-07-01
|
* feat: add several other GitHub access token patterns (#2200)Chris Rose2024-06-25
| | | | | | | | | | - 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)
* feat: Add GitLab PAT to secret patterns (#2196)David Jack Wange Olrik2024-06-25
|
* feat: add user account verification (#2190)Ellie Huxtable2024-06-24
| | | | | | | | | | | | | | | | | | | * 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
* feat(history): filter out various environment variables containing potential ↵David2024-06-20
| | | | secrets (#2174)
* feat(daemon): follow XDG_RUNTIME_DIR if set (#2171)Ellie Huxtable2024-06-20
| | | | | | | | 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.
* feat(tui): configurable prefix character (#2157)Ellie Huxtable2024-06-18
| | | | | * feat(tui): configurable prefix character * string not char because toml/json lol
* fix: unitless sync_frequence = 0 not parsed by humantime (#2154)Ellie Huxtable2024-06-17
| | | Resolve #2147
* fix(client): better error reporting on login/registration (#2076)Xavier Vello2024-06-03
|
* feat(doctor): report sqlite version (#2075)Xavier Vello2024-06-03
|
* fix(deps): replace parse_duration with humantime (#2074)Blair Noctis2024-06-03
| | | | The former is no longer maintained, with a long standing security advisory (RUSTSEC-2021-0041).
* chore: handle rate limited responses (#2057)Ellie Huxtable2024-05-30
| | | | | | 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.
* feat(ui): add login/register dialog (#2056)Ellie Huxtable2024-05-30
|
* feat: support systemd socket activation for daemon (#2039)Nemo1572024-05-25
| | | | | 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.
* feat: support importing from replxx history files (#2024)Amos Bird2024-05-21
| | | | | | | | | * Support importing from replxx history files * Fix clippy error. Also Remove auto-detect for replxx which makes no sense. * Add some tests
* fix(daemon): do not try to sync if logged out (#2037)Ellie Huxtable2024-05-21
| | | | | | | | * 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
* fix: bogus error message wording (#1283)Caleb Maclennan2024-05-16
|
* fix: alias enable/enabled in settings (#2021)Ellie Huxtable2024-05-14
|
* feat(daemon): add support for daemon on windows (#2014)YummyOreo2024-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* fix: add incremental rebuild to daemon loop (#2010)Ellie Huxtable2024-05-08
|
* feat: add background daemon (#2006)Ellie Huxtable2024-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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