aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* chore(deps): bump argon2 from 0.5.2 to 0.5.3 (#1603)dependabot[bot]2024-01-22
| | | | | | | | | | | | | | Bumps [argon2](https://github.com/RustCrypto/password-hashes) from 0.5.2 to 0.5.3. - [Commits](https://github.com/RustCrypto/password-hashes/compare/argon2-v0.5.2...argon2-v0.5.3) --- updated-dependencies: - dependency-name: argon2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* report alternate keys so shift still works (#1601)Conrad Ludgate2024-01-21
|
* chore(deps): bump the cargo group across 1 directories with 1 update (#1591)dependabot[bot]2024-01-19
| | | | | | | | | | | | | | | | | | | Bumps the cargo group with 1 update in the /. directory: [h2](https://github.com/hyperium/h2). Updates `h2` from 0.3.22 to 0.3.24 - [Release notes](https://github.com/hyperium/h2/releases) - [Changelog](https://github.com/hyperium/h2/blob/v0.3.24/CHANGELOG.md) - [Commits](https://github.com/hyperium/h2/compare/v0.3.22...v0.3.24) --- updated-dependencies: - dependency-name: h2 dependency-type: indirect dependency-group: cargo-security-group ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: add acquire timeout to sqlite database connection (#1590)Ellie Huxtable2024-01-19
| | | | | | | | | | | | | | | | * fix: add acquire timeout to sqlite database connection This should fix #1503 I wasn't able to trigger enough IO pressure for the SQL connection to be a problem. This adds `local_timeout` to the client config. This is a float, and represents the number of seconds (units in line with the other timeouts, though those are ints). Users may well want to reduce this if they regularly have issues, but by default I think 2s is fine and avoids a non-responsive system in bad situations. * tests
* fix: Use existing db querying for history list (#1589)Peter Holloway2024-01-19
| | | | | When printing the history list with either the session or cwd filter enabled, use to same query method as without either to ensure that the other options (hide deleted entries etc) are respected.
* fix: Escape control characters in command preview (#1588)Peter Holloway2024-01-19
| | | This was missed in the initial change to escape control characters.
* fix: Print literal control characters to non terminals (#1586)Peter Holloway2024-01-19
| | | | | | | | | | | | | | | | * Print literal control characters to non terminals Previous 'fix' to prevent control sequences being interpreted when they shouldn't have been also prevented them being used when they should have been. This checks if the output is to a terminal (where control sequences shouldn't be interpreted) before escaping control characters. * Update atuin/src/command/client/search.rs Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com> --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* Escape control characters using caret notation (#1585)Peter Holloway2024-01-18
| | | Instead of using their equivalent hex codes.
* chore(deps): bump lukemathwalker/cargo-chef (#1474)dependabot[bot]2024-01-17
| | | | | | | | | | | | Bumps lukemathwalker/cargo-chef from latest-rust-1.74.1-buster to latest-rust-1.75.0-buster. --- updated-dependencies: - dependency-name: lukemathwalker/cargo-chef dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump rustix from 0.38.28 to 0.38.30 (#1566)dependabot[bot]2024-01-17
| | | | | | | | | | | | | | | Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.28 to 0.38.30. - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.28...v0.38.30) --- updated-dependencies: - dependency-name: rustix dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump debian (#1568)dependabot[bot]2024-01-17
| | | | | | | | | | | | Bumps debian from bullseye-20231120-slim to bullseye-20240110-slim. --- updated-dependencies: - dependency-name: debian dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: add metrics counter for records downloaded (#1584)Ellie Huxtable2024-01-17
|
* feat: make deleting from the UI work with record store sync (#1580)Ellie Huxtable2024-01-17
| | | | | | | * feat: make deleting from the UI work with record store sync * sort cli delete too * teeny bit more logs
* Stop control characters being printed to terminal (#1576)Peter Holloway2024-01-17
| | | | | | | | | | | | | | | | | | | | | If a previous command in the history contained a literal control character (eg via Ctrl-v, Ctrl-[), when the command was printed, the control character was printed and whatever control sequence it was part of was interpreted by the terminal. For instance, if a command contained the SGR sequence `^[[31m`, all subsequent output from `atuin history list` would be in red. Slightly less of a problem, control characters would also not appear in the interactive search widget although they would be printed when selected. This meant `echo '^[[31foo'` would appear as `echo '[31foo'`. When the entry was selected, the same problem as before would occur and, for the example above, `echo 'foo'` would be printed with 'foo' in red. When copied, this command would not behave the same as the original as it would be missing the control sequence. This adds an extension trait to add a method to anything that behaves like a string to escape ascii control characters and return a string that can be printed safely. This string can then be copied and run directly without having to add the control characters back.
* docs: remove old docusaurus (#1581)Ellie Huxtable2024-01-16
|
* feat(search): introduce keymap-dependent vim-mode (#1570)Koichi Murase2024-01-16
| | | | | | | * feat(search): introduce keymap-dependent vim-mode * fix(zsh): provide widgets with specific keymaps * fix(settings): unify "vim" and "keymap_mode"
* feat: add history rebuild (#1575)Ellie Huxtable2024-01-16
| | | | | | | | | | | | | | | | | | | | | | | * feat: add history rebuild This adds a function that will 1. List all history from the store 2. Segment by create/delete 3. Insert all creates into the database 4. Delete all deleted This replaces the old history sync. Presently it's incomplete. There is no incremental rebuild, it can only do the entire thing at once. This is ran by `atuin store rebuild history` * fix tests * add incremental sync * add auto sync
* fix(sync): save sync time when it starts, not ends (#1573)Ellie Huxtable2024-01-15
| | | | | | | | | | | | Imagine the scenario where a sync fails. The function touched here will never save the sync time. That means that external to this function, the sync never happened. The next command will try and start one immediately. The happy scenario is that this succeeds. The unhappy scenario is that this fails. Fails, and isn't saved, so we try again... Should add proper backoff but this is a good start.
* feat: add better error handling for sync (#1572)Ellie Huxtable2024-01-15
| | | | Hopefully this helps users get more descriptive errors, and give more descriptive bug reports
* fix(fish): integration on older fishes (#1563)Matt Godbolt2024-01-15
| | | | | | | | | | | | | | * Fix fish integration on older fishes - On fish 3.3 the bash-style `$(...)` doesn't work, we should use `(...)` - Also quoting `"(moo)"` on older fishes gives a literal `moo` - The result of a `(subcommand)` is a single token, so no need to quote it, anyway Tested by making the change, executing `cargo run -- init fish --disable-up-arrow` and then executing that shell script on a system with fish 3.3, as well as 3.6 and observing both still work. Fixes #1562. * Alternative way of fixing the problem. Compatible with 3.3 and 3.4+
* refactor(search): refactor vim mode (#1559)Koichi Murase2024-01-14
|
* fix: shorten text, use ctrl-o for inspector (#1561)Ellie Huxtable2024-01-14
| | | | | 1. Some shells/terminals seem to directly bind ctrl-i to be tab :( Use ctrl-o for the inspector instead 2. Shorten the help text so it doesn't get squished
* chore: make clipboard dep optional as a feature (#1558)依云2024-01-14
| | | | The cli-clipboard doesn't compile on systems other than Windows, Linux and MacOS, e.g. on Android it fails to compile.
* fix(search): fix invisible tab title (#1560)Koichi Murase2024-01-14
|
* fix(windows): disables unix specific stuff for windows (#1557)YummyOreo2024-01-14
| | | | | * fix(windows): disables unix specific stuff for windows (windows has this on by default iirc) * refactor: use windows not target_family
* feat(ui): vim mode (#1553)YummyOreo2024-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(config): add vim option to config * feat(ui): simple vim mode * fix(windows): windows sadly doesn't support the stuff * feat(ui): blinking * fix(merge) * revert: reverts some debugging stuff * feat(ui): changes the defaut to insert, don't know what should be the default * feat(ui): implements some vim parity * doc: adds this to the docs * docs(keybindings): adds vim mode keybindsings to the list of keybindings * refactor: rustfmt and remove the docs for pr in own repo * refactor: use execute! * Update atuin/src/command/client/search/interactive.rs --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* fix(perm): set umask 077 (#1554)Ellie Huxtable2024-01-12
| | | | | This ensures no other user can read shell history data Resolves #1250
* feat: Add interactive command inspector (#1296)Ellie Huxtable2024-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Begin work on command inspector This is a separate pane in the interactive mode that allows for exploration and inspecting of specific commands. I've restructured things a bit. It made logical sense that things were nested under commands, however the whole point of `atuin` is to provide commands. Breaking things out like this enables a bit less crazy nesting as we add more functionality to things like interactive search. I'd like to add a few more interactive things and it was starting to feel very cluttered * Some vague tab things * functioning inspector with stats * add interactive delete to inspector * things * clippy * borders * sus * revert restructure for another pr * Revert "sus" This reverts commit d4bae8cf614d93b728621f7985cf4e387b6dc113.
* chore: update funding (#1543)Ellie Huxtable2024-01-10
|
* fix(bash): work around bash < 4 and introduce initialization guards (#1533)Koichi Murase2024-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | * fix(bash): add a guard for interactive shells * fix(bash): add a guard for the Bash version * fix(bash): localize READLINE_LINE in bash < 4 In bash < 4, the variables READLINE_LINE and READLINE_POINT are not supported for the shell commands called by `bind -x`. Even if it is not supported, atuin works in not a bad way. However, this sometimes causes a strange behavior by the remaining values of READLINE_LINE set in the previous calls of __atuin_history. In bash < 4, we can consistently use an empty string instead of $READLINE_LINE, and the changes to READLINE_LINE and READLINE_POINT should be localized within the function. * fix(bash): add guard for double initialization In bash, it is customary to reload the settings by sourcing `.bashrc` again after modifying it. In such a case, `eval "$(atuin init bash)"` is executed again. This registers duplicate hooks to `preexec_functions` and `precmd_functions`. To prevent this in this patch, we introduce an include guard, so that the initialization is not performed more than once.
* feat: add extended help (#1540)Ellie Huxtable2024-01-10
| | | | | | | Given some of the questions we've had lately, I think it's sensible to add extended help to the top of the Atuin window. Future plans: Ctrl-<something else> to open up a help popup, with all common keys
* feat(bash): support high-resolution timing even without ble.sh (#1534)Koichi Murase2024-01-10
| | | | | | | | | | | | | | | | * feat(bash): support high-resolution timing without blesh For the integration using bash-preexec, this measures the execution time of the command using EPOCHREALTIME without the support by ble.sh. This is not as accurate as the measurement by ble.sh as it contains also the processing time of the preexec and precmd hooks, but it is still free from the fork cost. * fix(shell): work around custom IFS for duration When a custom IFS is set by the user, the word splitting of ${duration:+--duration "$duration"} does not work as expected. We instead use the form "--duration=$duration" with the word splitting being disabled.
* refactor(shell): refactor and localize `HISTORY => __atuin_output` (#1535)Koichi Murase2024-01-10
|
* docs: Improve style (#1537)Mike Tsao2024-01-10
| | | "backup" is a noun. "back up" is a verb.
* docs: clarify enter/tab usage (#1538)Ellie Huxtable2024-01-10
|
* style(bash): use consistent coding style (#1528)Koichi Murase2024-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * style(bash): make indentation consistent Initially, in this file, the first level is indented by four spaces, and additional levels are indented by adding two spaces. However, this does not seem intentional because the other files, such as atuin.zsh, are consistently indented by four spaces for any levels. The indentation was gradually fixed to use four spaces when the relevant code is updated, but there are still remaining parts using two spaces. In this patch, the remaining parts are updated to use the consistent indentation of four spaces. * style(bash): remove extra quotations on rhs of assignments On the right-hand sides of assignments, the quoting of the variable expansions are not needed because they are not subject to the word splitting and the pathname expansions. * style(bash): strip `{` and `}` from `${var}` when not needeed * style(bash): do not use unnecessary quoting in the conditional commands In the conditional commands [[ ... ]], the words are not subject to the word splitting and the pathname expansions, so we do not need to quote the expansions except for the right-hand sides of ==, !=, and =~, where the quoting has a special meaning. In the first place, the syntax [[ .. ]] is introduced to resolve the issue of the quoting, so it is natural to use the unquoted form inside [[ ... ]] by default. In this patch, we use the unquoted form of expansions. * style(bash): prefer [[ $a && ! $b ]] to [[ -n $a && -z $b ]] * style(bash): put "then" in the same line as "if" This is also the format that Bash outputs with `bash --pretty-print FILE` or `declare -f FUNC`.
* docs: fix `Destination file already exists` in Nushell (#1530)Azzam S.A2024-01-09
| | | | It is a common practice to use `-f` in Nushell configurations to avoid `Destination file already exists` error.
* docs: remove activity graphEllie Huxtable2024-01-09
|
* fix: disable musl deb building (#1525)Ellie Huxtable2024-01-09
| | | | | | It never worked, and broke release building. I don't think we need musl debs, but if so ensure they don't break install scripts Resolve #1500
* fix(shell): fix incorrect timing of child shells (#1510)Koichi Murase2024-01-08
| | | | | | | | | When a child shell session is started from another shell session (parent session), the environment variable ATUIN_HISTORY_ID set by the parent session causes Atuin's precmd hook of the child session to be unexpectedly performed before the first call of Atuin's preexec hook. In this patch, we clear ATUIN_HISTORY_ID (possibly set by the parent session) on the startup of the session.
* feat: make it clear what you are registering for (#1523)Ellie Huxtable2024-01-08
| | | Resolve #1516
* chore: schema cleanup (#1522)Ellie Huxtable2024-01-08
| | | | | | | | | | | The columns referred to in this PR, were for some reason created with defaults. When created years ago, they were `bigserial` not `bigint`. The defaults were never actually used, as verified by 1. Checking the value of the sequences on the database 2. Checking the code So we're safe to clean them up.
* docs: refer to image with multi-arch support (#1513)Matthew Berryman2024-01-08
|
* chore(deps): bump hyper from 0.14.28 to 1.1.0 (#1520)dependabot[bot]2024-01-08
| | | | | | | | | | | | | | | | Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.28 to 1.1.0. - [Release notes](https://github.com/hyperium/hyper/releases) - [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md) - [Commits](https://github.com/hyperium/hyper/compare/v0.14.28...v1.1.0) --- updated-dependencies: - dependency-name: hyper 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>
* chore(deps): bump ratatui from 0.24.0 to 0.25.0 (#1521)dependabot[bot]2024-01-08
| | | | | | | | | | | | | | | | Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.24.0 to 0.25.0. - [Release notes](https://github.com/ratatui-org/ratatui/releases) - [Changelog](https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md) - [Commits](https://github.com/ratatui-org/ratatui/compare/v0.24.0...v0.25.0) --- updated-dependencies: - dependency-name: ratatui 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>
* feat(ui): add redraw (#1519)依云2024-01-08
| | | | | replace old Ctrl-L shortcut and remove the opposite one (Ctrl-H). fixes #1507.
* feat: include atuin login in secret patterns (#1518)Matthew Berryman2024-01-08
| | | | | * include atuin login in secret patterns * doc catchup
* fix(bash): fix and improve the keybinding to `up` (#1515)Koichi Murase2024-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix(bash): improve up key in multiline mode of ble.sh ble.sh has a multiline mode where pressing [up] can be used to move to the previous line. The command history is loaded only when the [up] key is pressed when the cursor is in the first line. However, with Atuin's integration, the [up] key always causes Atuin's history search and cannot be used to move to the previous line when the cursor is not in the first line. There is also another situation that the [up] key does not load the command history. In this patch, with ble.sh, we perform Atuin's history search only in the situation where the command history is loaded in the original binding of ble.sh. * fix(init): perform bind on explicitly specified keymaps With the current implementation, the keybindings to [C-r] and [up] are only set up in the currently activated keymaps in Bash. As a result, if the user changes the keymap after `eval "$(atuin init bash)"`, Atuin's keybindings do not take effect. In this patch, we bind Atuin's keybindings in all the keymaps (emacs, vi-insert, and vi-command) by explicitly specifying them (as done for the Zsh integration). The keybinding to "k" in the vi-command keymap is also added to make it consistent with the Zsh integration. * fix(init): work around limitation of "bind -x" in bash <= 4.2 In bash <= 4.2, "bind -x" with a key sequence with more than two bytes does not work properly. Inputting the key sequence will produce an error message saying "bash: bash_execute_unix_command: cannot find keymap for command", and the shell command is not executed. To work around this, we can first translate the key sequences to another key sequence with two bytes and run the shell command through the two-byte key sequence. In this patch, we use \C-x\C-p as the two-byte key sequence. * refactor(bash): move the inlined binding scripts to atuin.bash * refactor(init): use `is_ok()` instead of negating `is_err()` Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com> --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* fix(bash): work around custom IFS (#1514)Koichi Murase2024-01-07
| | | | | | | | | | | | | | | | | | When the user sets a custom value of IFS, the up keybinding may fail because the option `--shell-up-key-binding` passed to `__atuin_history` is broken by the word splitting of the shell. For example, when the user sets IFS=-, `atuin` called from __atuin_history receives `shell up key binding <content>` as the search string. $ IFS=- $ echo [up] # <-- this does not work as expected Note that the problem only happens with the plain Bash without ble.sh. The problem does not arise within ble.sh because ble.sh separates the user environment and the line-editor environment by saving/restoring the shell settings. The keybindings are processed in the line-editor environment, so the custom IFS set by the user does not affect it. In this patch, we properly quote the arguments to the atuin command.
* refactor: String -> HistoryId (#1512)Ellie Huxtable2024-01-06
|