aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-client (unfollow)
Commit message (Collapse)Author
2024-01-08feat: include atuin login in secret patterns (#1518)Matthew Berryman
* include atuin login in secret patterns * doc catchup
2024-01-06refactor: String -> HistoryId (#1512)Ellie Huxtable
2024-01-05feat: rework record sync for improved reliability (#1478)Ellie Huxtable
* feat: rework record sync for improved reliability So, to tell a story 1. We introduced the record sync, intended to be the new algorithm to sync history. 2. On top of this, I added the KV store. This was intended as a simple test of the record sync, and to see if people wanted that sort of functionality 3. History remained syncing via the old means, as while it had issues it worked more-or-less OK. And we are aware of its flaws 4. If KV syncing worked ok, history would be moved across KV syncing ran ok for 6mo or so, so I started to move across history. For several weeks, I ran a local fork of Atuin + the server that synced via records instead. The record store maintained ordering via a linked list, which was a mistake. It performed well in testing, but was really difficult to debug and reason about. So when a few small sync issues occured, they took an extremely long time to debug. This PR is huge, which I regret. It involves replacing the "parent" relationship that records once had (pointing to the previous record) with a simple index (generally referred to as idx). This also means we had to change the recordindex, which referenced "tails". Tails were the last item in the chain. Now that we use an "array" vs linked list, that logic was also replaced. And is much simpler :D Same for the queries that act on this data. ---- This isn't final - we still need to add 1. Proper server/client error handling, which has been lacking for a while 2. The actual history implementation on top This exists in a branch, just without deletions. Won't be much to add that, I just don't want to make this any larger than it already is The _only_ caveat here is that we basically lose data synced via the old record store. This is the KV data from before. It hasn't been deleted or anything, just no longer hooked up. So it's totally possible to write a migration script. I just need to do that. * update .gitignore * use correct endpoint * fix for stores with length of 1 * use create/delete enum for history store * lint, remove unneeded host_id * remove prints * add command to import old history * add enable/disable switch for record sync * add record sync to auto sync * satisfy the almighty clippy * remove file that I did not mean to commit * feedback
2024-01-03chore(release): prepare for release v17.2.1 (#1495)Ellie Huxtable
2024-01-03chore(release): prepare for release v17.2.0 (#1492)Ellie Huxtable
2024-01-03fix(import/zsh): zsh use a special format to escape some characters (#1490)依云
* fix(import/zsh): zsh use a special format to escape some characters unescape those correctly rather than throw them away. zsh side code: https://github.com/zsh-users/zsh/blob/9f57ca4ac8ae071727b1d77cbb8c4c0d893b9099/Src/utils.c#L4889-L4900 * fix code style
2024-01-01fix(stats): time now_local not working Conrad Ludgate
2023-12-20feat: add semver checking to client requests (#1456)Ellie Huxtable
* feat: add semver checking to client requests This enforces that the client and the server run the same major version in order to sync successfully. We're using the `Atuin-Version` http header to transfer this information If the user is not on the same MAJOR, then they will see an error like this > Atuin version mismatch! In order to successfully sync, the client and the server must run the same *major* version > Client: 17.1.0 > Server: 18.1.0 > Error: could not sync records due to version mismatch This change means two things 1. We will now only increment major versions if there is a breaking change for sync 2. We can now add breaking changes to sync, for any version >17.1.0. Clients will fail in a meaningful way. * lint, fmt, etc * only check for client newer than server * Add version header to client too
2023-12-11fix(stats): don't require all fields under [stats] (#1437)Ramses
Before this change, when configuring only `common_subcommands` and not `common_prefix` (so it would take its default value), atuin produces an error message: ``` Error: could not load client settings Caused by: failed to deserialize: missing field `common_prefix` Location: atuin-client/src/settings.rs:456:26 Error: could not load client settings Caused by: failed to deserialize: missing field `common_prefix` Location: atuin-client/src/settings.rs:456:26 Error:: command not found ``` With this change, the fields can be specified separately and missing fields will take their default values.
2023-12-11fix(docs): fix typo (#1439)Josef Friedrich
2023-12-10chore(release): prepare for release v17.1.0 (#1432)Ellie Huxtable
2023-12-02chore: update rusty_paseto and rusty_paserk (#1420)Ellie Huxtable
2023-11-23docs: new stats config (#1412)Ellie Huxtable
2023-11-23feat: allow configuring stats prefix (#1411)Ellie Huxtable
2023-10-29fix: initial list of history in workspace mode (#1356)Ellie Huxtable
The initial list didn't correctly show all history while in workspace mode, while it worked totally as expected while searching. Fix this.
2023-10-28Release v17.0.1 (#1354)Ellie Huxtable
2023-10-26Remove duplicate "invert" in default config (#1338)Michael Vincent
2023-10-25Fix deleted history count (#1328)Ellie Huxtable
2023-10-25Prepare release v17.0.0 (#1327)Ellie Huxtable
2023-10-25Correct some secrets filter regex (#1326)Ellie Huxtable
2023-10-20Add enter_accept to immediately execute an accepted command (#1311)Ellie Huxtable
* make enter execute the command, tab copy it * Add config for enter_accept enter_accept will make Atuin immediately accept an execute a command when selected. It defaults to false in our binary, but the default config enables it. This means that users who already use atuin will not default to the new behaviour unless they opt in, but new users will have it by default. Thanks to @davidhewitt for the patch and bulk of this implementation! Currently we have it just for zsh, but I'll follow up with other shells (unless anyone beats me to it :D) * Add docs * we need to tidy up the ui code anyway * Check if using zsh * Update docs/docs/config/config.md Co-authored-by: Conrad Ludgate <conradludgate@gmail.com> --------- Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com> Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
2023-10-12Add commands to print the default configuration (#1241)Tobias Genannt
* Add commands to print the default configuration When updating a software I often want to compare my configuration with the configuration of the new version. To make this possible atuin can now print the default configuration. This also updates the example files with the actual values used as default in the settings.rs files. * Changed command name to 'default-config' * Fixed merge
2023-10-08clear history id (#1263)Conrad Ludgate
* clear history id * fix nu
2023-10-04Fix/1207 deleted entries shown in interactive search (#1272)Dieter Eickstaedt
2023-09-28fix sync timestamps (#1258)Conrad Ludgate
* fix timestamp * add sync test * skip all sync tests
2023-09-26handle missing entries (fixes #1236) (#1253)Conrad Ludgate
* fix #1236 * lints
2023-09-26better sync error messages (#1254)Conrad Ludgate
2023-09-23refactor: Duplications reduced in order to align implementations of reading ↵Dieter Eickstaedt
history files (#1247)
2023-09-18Add connect timeout and overall timeout (#1238)Ellie Huxtable
* Add connect timeout and overall timeout * Make it configurable * Fix test * Add docs
2023-09-17feat(keyup): Configure SearchMode for KeyUp invocation #1216 (#1224)Dieter Eickstaedt
* feat(keyup): Configure SearchMode for KeyUp invocation #1216 * docs: adjusted search mode documentation * feat: setting search mode on engine * chore: cargo fmt * chore: removed redundant field name
2023-09-14Update config.toml: List inverted mode (#1226)Matheus Martins
2023-09-13Bump shellexpand from 2.1.2 to 3.1.0 (#1186)dependabot[bot]
Bumps [shellexpand](https://gitlab.com/ijackson/rust-shellexpand) from 2.1.2 to 3.1.0. - [Commits](https://gitlab.com/ijackson/rust-shellexpand/compare/shellexpand/2.1.2...shellexpand-3.1.0) --- updated-dependencies: - dependency-name: shellexpand dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11replace chrono with time (#806)Conrad Ludgate
* replace chrono with time * Fix test chrono usage --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2023-08-19Automatically filter out secrets (#1182)Ellie Huxtable
I'd like to extend the regex list here very soon, but start off by automatically filtering out secrets. Do not store them in history! I've included regex for: 1. AWS key id 2. Github pat (old and new) 3. Slack oauth tokens (bot, user) 4. Slack webhooks 5. Stripe live/test keys Will need updating after #806
2023-08-18Update dependencies (#1181)Conrad Ludgate
2023-08-18Add kv map builder and list function (#1179)Ellie Huxtable
* Add kv map builder and list function 1. BREAKING - default namespace is now called "default" 2. Build an in-memory hashmap from the kv store 3. Allow listing I need to cache the hashmap next, probs with a write-through to avoid constant rebuilds. Also check if BTreeMap is suitable. Sorted is useful for listing but there's probs a better ds to use. * Allow pure kv set, no filesystem
2023-08-09Update(docs) Add `workspace` to config.toml and config.md (#1157)Emanuele Panzeri
2023-08-07Fix client-only builds (#1155)Ellie Huxtable
2023-08-07Prepare release v16.0.0 (#1143)Ellie Huxtable
* Prepare release v16.0.0 * Remove debug output * Fix kv dupes if the store already exists * Add limit in frontend as well as sync backend
2023-08-02encode paseto payloads as json (#1146)Conrad Ludgate
2023-07-31Add support for `max_preview_height` setting (#1088)Richard Jones
2023-07-28Drop default sync frequency to 10m (#1130)Ellie Huxtable
2023-07-27use Ctrl-n instead of Alt-n on macOS (#1106)Richard Turner
* use Ctrl-n instead of Alt-n on macOS * make ctrl-n instead of alt-n configurable
2023-07-14Add workspace mode, enable if in git repo (#1053)Ellie Huxtable
* Add workspace mode, enable if in git repo * Fix tests * Should now be good * Page filter modes correctly if in workspace
2023-07-14Add new sync (#1093)Ellie Huxtable
* Add record migration * Add database functions for inserting history No real tests yet :( I would like to avoid running postgres lol * Add index handler, use UUIDs not strings * Fix a bunch of tests, remove Option<Uuid> * Add tests, all passing * Working upload sync * Record downloading works * Sync download works * Don't waste requests * Use a page size for uploads, make it variable later * Aaaaaand they're encrypted now too * Add cek * Allow reading tail across hosts * Revert "Allow reading tail across hosts" Not like that This reverts commit 7b0c72e7e050c358172f9b53cbd21b9e44cf4931. * Handle multiple shards properly * format * Format and make clippy happy * use some fancy types (#1098) * use some fancy types * fmt * Goodbye horrible tuple * Update atuin-server-postgres/migrations/20230623070418_records.sql Co-authored-by: Conrad Ludgate <conradludgate@gmail.com> * fmt * Sort tests too because time sucks * fix features --------- Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
2023-07-14Bump regex from 1.7.2 to 1.9.1 (#1094)dependabot[bot]
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.2 to 1.9.1. - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.7.2...1.9.1) --- updated-dependencies: - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14write some key tests (#1095)Conrad Ludgate
2023-07-08Update config.toml path default comments (#1092)Simon
- Updates outdated mac db_path default - Adds windows db_path default - Adds windows, mac, linux defaults for key_path and session_path - Changes example session_path to be different to example key_path
2023-07-08fix key encodings again (#1089)Conrad Ludgate
2023-06-26record encryption (#1058)Conrad Ludgate
* record encryption * move paserk impl * implicit assertions * move wrapped cek * add another test * use host * undo stray change * more tests and docs * fmt * Update atuin-client/src/record/encryption.rs Co-authored-by: Matteo Martellini <matteo@mercxry.me> * Update atuin-client/src/record/encryption.rs Co-authored-by: Matteo Martellini <matteo@mercxry.me> * typo --------- Co-authored-by: Matteo Martellini <matteo@mercxry.me>