Commit Graph

64 Commits

Author SHA1 Message Date
5238d71e66 chore(deps): bump url from 2.5.1 to 2.5.2 (#2182)
Bumps [url](https://github.com/servo/rust-url) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/servo/rust-url/releases)
- [Commits](https://github.com/servo/rust-url/compare/v2.5.1...v2.5.2)

---
updated-dependencies:
- dependency-name: url
  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>
2024-06-24 08:04:47 +01:00
b06b7b509a feat(history): filter out various environment variables containing potential secrets (#2174) 2024-06-20 16:50:29 +01:00
9b82bba53f feat(daemon): follow XDG_RUNTIME_DIR if set (#2171)
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-20 10:28:00 +01:00
5f66fb6a03 fix(gui): add support for checking if the cli is installed on windows (#2162)
* fix(windows): add support for checking if the cli is installed on windows

* refactor: remove debugging info

* refactor: cargo fmt
2024-06-19 11:55:03 +01:00
33ef734116 Fix scroll_exits default in config.toml (#2166) 2024-06-19 11:38:39 +01:00
7984f9ef0c feat(tui): configurable prefix character (#2157)
* feat(tui): configurable prefix character

* string not char because toml/json lol
2024-06-18 10:24:43 +01:00
88633b8994 feat(gui): automatically install and setup the cli/shell (#2139)
* feat(gui): automatically install and setup the cli/shell

* add shell config and toasts
2024-06-17 15:36:38 +01:00
f06408f4f7 chore(deps): bump memchr from 2.7.2 to 2.7.4 (#2151)
Bumps [memchr](https://github.com/BurntSushi/memchr) from 2.7.2 to 2.7.4.
- [Commits](https://github.com/BurntSushi/memchr/compare/2.7.2...2.7.4)

---
updated-dependencies:
- dependency-name: memchr
  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>
2024-06-17 09:12:37 +01:00
0a6bfbba3e fix: unitless sync_frequence = 0 not parsed by humantime (#2154)
Resolve #2147
2024-06-17 08:44:25 +01:00
768bd2f66c chore(deps): bump regex from 1.10.4 to 1.10.5 (#2132)
Bumps [regex](https://github.com/rust-lang/regex) from 1.10.4 to 1.10.5.
- [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.10.4...1.10.5)

---
updated-dependencies:
- dependency-name: regex
  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>
2024-06-13 14:33:49 +01:00
9fa223eaaf chore(build): compile protobufs with protox (#2122)
* chore(build): compile protobufs with protox

protox is a pure-rust implementation of the protobuf compiler.
Therefore, it can be managed by cargo.

This removes the implicit dependency on protoc being available
in the environment for the build.

* fix(build): replace copypasta in build script

The paths passed to `compile` aren't actually used by the build.
`skip_protoc_run` prevents that.
That's why a clean build succeeds even with this mistake.

However, the paths are passed to a `cargo:rerun-if-changed` directive.
So this mistake would've caused a failed incremental build if the
protobuf definitions were changed.
2024-06-12 16:45:38 +01:00
511db8dcce chore: remove unnecessary proto import (#2120) 2024-06-12 16:07:41 +01:00
55a2fe50f7 fix: cargo binstall config (#2112) 2024-06-10 20:33:10 +01:00
758ba930eb chore(deps): bump clap_complete from 4.5.2 to 4.5.3 (#2100)
Bumps [clap_complete](https://github.com/clap-rs/clap) from 4.5.2 to 4.5.3.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.2...clap_complete-v4.5.3)

---
updated-dependencies:
- dependency-name: clap_complete
  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>
2024-06-10 18:02:34 +01:00
1ea10b0a08 fix(crate): add description to daemon crate (#2107)
`cargo publish --dry-run` should really catch this.
2024-06-10 15:25:21 +01:00
92c2b6b69d fix(crate): add missing description (#2106) 2024-06-10 15:14:06 +01:00
fc1fecbd2e chore(deps): bump clap_complete_nushell from 4.5.1 to 4.5.2 (#2101)
Bumps [clap_complete_nushell](https://github.com/clap-rs/clap) from 4.5.1 to 4.5.2.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.5.1...clap_complete_nushell-v4.5.2)

---
updated-dependencies:
- dependency-name: clap_complete_nushell
  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>
2024-06-10 14:57:08 +01:00
9be49e434e chore(release): prepare for release v18.3.0 (#2105)
* chore(release): prepare for release v18.3.0

* build full release

* Revert "build full release"

This reverts commit 65e7718b51.
2024-06-10 14:42:32 +01:00
85aa88abab docs: add docs for store subcommand (#2097)
Closes #2095
2024-06-07 17:18:55 +01:00
eb4a5ab4cd chore: update email, gitignore, tweak ui (#2094) 2024-06-06 15:03:43 +01:00
c102851e29 chore(release): v18.3.0-prerelease.1 (#2090)
* chore(release): v18.3.0-prerelease.1

* update contributors

* changelog, plan only on prs
2024-06-05 14:56:10 +01:00
9943c53a70 fix: Replace serde_yaml::to_string with serde_json::to_string_yaml (#2087) 2024-06-04 21:44:51 +01:00
511d84ce8d chore(deps): bump serde_yaml from 0.9.32 to 0.9.34+deprecated (#2078)
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.9.32 to 0.9.34+deprecated.
- [Release notes](https://github.com/dtolnay/serde-yaml/releases)
- [Commits](https://github.com/dtolnay/serde-yaml/compare/0.9.32...0.9.34)

---
updated-dependencies:
- dependency-name: serde_yaml
  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>
2024-06-03 11:07:46 +01:00
b05761bb37 fix(client): better error reporting on login/registration (#2076) 2024-06-03 10:57:31 +01:00
96163c5591 feat(doctor): report sqlite version (#2075) 2024-06-03 10:51:31 +01:00
928dce4a8c chore(deps): bump rmp from 0.8.12 to 0.8.14 (#2079)
Bumps [rmp](https://github.com/3Hren/msgpack-rust) from 0.8.12 to 0.8.14.
- [Release notes](https://github.com/3Hren/msgpack-rust/releases)
- [Commits](https://github.com/3Hren/msgpack-rust/commits/rmp/v0.8.14)

---
updated-dependencies:
- dependency-name: rmp
  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>
2024-06-03 09:59:15 +01:00
b0b1d07cb5 fix(deps): replace parse_duration with humantime (#2074)
The former is no longer maintained, with a long standing security
advisory (RUSTSEC-2021-0041).
2024-06-03 09:03:23 +01:00
c694a0a67f chore(deps): relax sqlx and argon2 dependencies (#2065)
* Bump sqlx dependency

* Relax dependencies for Fedora
2024-05-31 09:44:55 +01:00
f6918d9d13 fix(bash): fix a workaround for bash-5.2 keybindings (#2060) 2024-05-30 19:32:26 +01:00
21109517c0 fix(stats): generation for commands starting with a pipe (#2058)
Closes #1882
2024-05-30 15:55:29 +01:00
4d74e38a51 chore: handle rate limited responses (#2057)
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-30 13:03:15 +01:00
467f89c104 feat(ui): add login/register dialog (#2056) 2024-05-30 12:49:22 +01:00
15618f19ab chore(deps): bump rusty_paseto and rusty_paserk (#2054) 2024-05-29 17:19:37 +00:00
2e88321aec feat: support systemd socket activation for daemon (#2039)
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-25 13:03:55 +01:00
40543eb8f9 perf: only open the database for commands if strictly required (#2043)
The client commands would open sqlite, even if not 100% required

Remove this for

1. history start/end
2. shell init

Init seems to be around 2ms faster on my system, with this change.
2024-05-25 11:58:52 +01:00
413d3e3626 feat: support importing from replxx history files (#2024)
* Support importing from replxx history files

* Fix clippy error.

Also Remove auto-detect for replxx which makes no sense.

* Add some tests
2024-05-21 11:12:17 +07:00
8dc8448de0 fix(daemon): do not try to sync if logged out (#2037)
* 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-21 10:43:08 +07:00
32930846e6 fix: redact password in database URI when logging (#2032)
Previously, in the event that there was a configuration issue and the
atuin server failed to connect to PostgreSQL, it would log the password.

For example, if the password authentication failed the following log
message would be printed:

Error: failed to connect to db: PostgresSettings { db_uri:
    "postgres://atuin:definitelymypassword@db.example.com/atuin" }

This change sets the password to "****" when printing it via Debug:

Error: failed to connect to db: PostgresSettings { db_uri:
    "postgres://atuin:****@db.example.com/atuin" }

Hopefully few people use **** as the actual password.
2024-05-21 09:25:17 +07:00
95c9168944 fix: save sync time in daemon (#2029) 2024-05-18 09:46:48 +07:00
64b7581644 chore: clarify default config file (#2026) 2024-05-17 09:50:13 +07:00
2e35af1c86 fix: bogus error message wording (#1283) 2024-05-16 07:51:25 +07:00
58f0bd61e6 fix: alias enable/enabled in settings (#2021) 2024-05-14 10:23:05 +07:00
ce67e52772 feat(daemon): add support for daemon on windows (#2014)
* 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-13 09:35:34 +07:00
0da534d524 fix: add incremental rebuild to daemon loop (#2010) 2024-05-08 17:28:52 +01:00
bce0faa1c2 feat: add background daemon (#2006)
* 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
2024-05-08 12:09:04 +01:00
eebfd04879 fix(config): add quotes for strategy value in comment (#1993) 2024-05-06 08:31:23 +01:00
467b575007 fix: adapt help to enter_accept config (#2001) 2024-05-06 08:14:51 +01:00
754ddeaa8d feat(ui): scroll history infinitely (#1999)
* wip, history scrolls right!

* wip

* virtual scroll fucking worksssss

* paging works :)

* scroll search results now too
2024-05-06 08:11:47 +01:00
851e581e16 chore(deps): bump serde_with from 3.7.0 to 3.8.1 (#2002)
Bumps [serde_with](https://github.com/jonasbb/serde_with) from 3.7.0 to 3.8.1.
- [Release notes](https://github.com/jonasbb/serde_with/releases)
- [Commits](https://github.com/jonasbb/serde_with/compare/v3.7.0...v3.8.1)

---
updated-dependencies:
- dependency-name: serde_with
  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>
2024-05-06 08:09:55 +01:00
0639ff4960 fix(dotfiles): allow clearing aliases, disable import (#1995)
* fix(dotfiles): allow clearing aliases, disable import

At the moment there are far too many edge cases to handle importing
aliases.

1. We need an interactive shell to print aliases. Without it, most
   shells won't report much.
2. Many people have their shells print things on startup (graphics,
   fortunes, etc). This could be detected as an attempt to set an alias.

 Rather than spend the next year finding import edge cases, I'm
 disabling it for now. There's probably a better way we can do this?

* clippy
2024-05-02 16:53:38 +01:00