Commit Graph

1091 Commits

Author SHA1 Message Date
Ellie Huxtable
eb4a5ab4cd
chore: update email, gitignore, tweak ui (#2094) 2024-06-06 15:03:43 +01:00
Ellie Huxtable
d7f77ebfe1
feat(ui): setup single-instance (#2093) 2024-06-06 10:36:39 +01:00
Ellie Huxtable
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
Ellie Huxtable
7ec002ba44
chore: switch to cargo dist for releases (#2085)
* chore: switch to cargo dist for releases

From https://axo.dev

cargo-dist handles building releases far better than we can, and do so
for several large projects now.

We will need to change our install script to use the cargo-dist
installer.

Historically, we have used the system package manager wherever possible.
Once switched to the new installer, this will no longer be the case. If
the user wishes to use their package manager, and Atuin is maintained
there, then they can choose to do so.

This way, we can ensure that users are running a known build, can easily
uninstall (just delete the atuin dir), easily update, etc. Builds will
use our lockfile, and can have their checksum verified. Later, I'd like
to introduce build signing.

As Axo are focused on release engineering, they will likely have
resolved many more issues than we have - libc versions, etc.

I'm not particularly happy with our response of "just use your package
manager", as many users seem to have difficulty there. It's unclear what
our installer has done, as this behaviour varies massively across
systems. It's also unclear how some package maintainers may have patched
things

I'm hoping that some better release tooling will lead to more confidence
in the process, and therefore more frequent releases.

Uninstall clarity: #111, #372, #640, #1485, #1546, #2049, #1529

* config

* add protobuf

* test build

* use native arm mac

* lol

* add toolchain

* use 1.78, 2vcpu

* nix flake update

* 1.77
2024-06-05 13:25:01 +01:00
Hesam Pakdaman
9943c53a70
fix: Replace serde_yaml::to_string with serde_json::to_string_yaml (#2087) 2024-06-04 21:44:51 +01:00
Ellie Huxtable
7e665fc5b6
chore(deps): cargo update (#2083) 2024-06-04 12:05:03 +01:00
Sven-Hendrik Haase
1ecc1d20e9
chore: Add Systemd config for self-hosted server (#1879) 2024-06-03 11:20:15 +01:00
github-actions[bot]
ae841bef9b
chore(deps): flake.lock: Update (#2072)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/cf8cc1201be8bc71b7cbbbdaf349b22f4f99c7ae?narHash=sha256-yNAevSKF4krRWacmLUsLK7D7PlfuY3zF0lYnGYNi9vQ%3D' (2024-04-28)
  → 'github:NixOS/nixpkgs/6132b0f6e344ce2fe34fc051b72fb46e34f668e0?narHash=sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY%3D' (2024-05-30)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-03 11:08:53 +01:00
dependabot[bot]
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
Xavier Vello
5f2cc51dd1
chore(deps): raise MSRV to 1.74 to match dependencies (#2069)
* chore(deps): raise MSRV to 1.74 to match dependencies

* Update Cargo.toml
2024-06-03 11:04:40 +01:00
Xavier Vello
df81d27544
chore(ci): don't run "Update Nix Deps" CI on forks (#2070) 2024-06-03 11:03:52 +01:00
Xavier Vello
b05761bb37
fix(client): better error reporting on login/registration (#2076) 2024-06-03 10:57:31 +01:00
Xavier Vello
96163c5591
feat(doctor): report sqlite version (#2075) 2024-06-03 10:51:31 +01:00
dependabot[bot]
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
Blair Noctis
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
Xavier Vello
83637d96b0
chore(install): log cargo and rustc version (#2068) 2024-05-31 19:13:39 +01:00
Cristian Le
c694a0a67f
chore(deps): relax sqlx and argon2 dependencies (#2065)
* Bump sqlx dependency

* Relax dependencies for Fedora
2024-05-31 09:44:55 +01:00
Koichi Murase
f6918d9d13
fix(bash): fix a workaround for bash-5.2 keybindings (#2060) 2024-05-30 19:32:26 +01:00
Sandro
21109517c0
fix(stats): generation for commands starting with a pipe (#2058)
Closes #1882
2024-05-30 15:55:29 +01:00
Ellie Huxtable
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
Ellie Huxtable
467f89c104
feat(ui): add login/register dialog (#2056) 2024-05-30 12:49:22 +01:00
Conrad Ludgate
15618f19ab
chore(deps): bump rusty_paseto and rusty_paserk (#2054) 2024-05-29 17:19:37 +00:00
Ellie Huxtable
bf2788259c
fix(ui): fix mistake in last pr (#2053) 2024-05-28 16:38:25 +01:00
Ellie Huxtable
b49c73de3e
fix(ui): handle being logged out gracefully (#2052)
* fix(ui): handle being logged out gracefully

* use settings.logged_in
2024-05-28 16:28:09 +01:00
Ellie Huxtable
1bb63d0f5a
fix: save sync time in daemon (#2051) 2024-05-28 15:05:29 +01:00
dependabot[bot]
a9e1f8607f
chore(deps): bump tracing-tree from 0.3.0 to 0.3.1 (#2046)
Bumps [tracing-tree](https://github.com/davidbarsky/tracing-tree) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/davidbarsky/tracing-tree/releases)
- [Commits](https://github.com/davidbarsky/tracing-tree/commits)

---
updated-dependencies:
- dependency-name: tracing-tree
  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-05-28 14:54:26 +01:00
Ellie Huxtable
fc4dfe4fff
feat(ui): use correct username on welcome screen (#2050)
* wip

* fetch and use username
2024-05-28 14:54:05 +01:00
dependabot[bot]
43fb9ca745
chore(deps): bump uuid from 1.7.0 to 1.8.0 (#2047)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0)

---
updated-dependencies:
- dependency-name: uuid
  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-28 07:57:12 +01:00
Nemo157
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
Ellie Huxtable
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
Ellie Huxtable
8d99ee0a69
chore(codespell): ignore CODE_OF_CONDUCT (#2044)
Several dictionaries suggest keeping the hyphen. In fact, it's generally
a good idea to hyphenate with too many adjacent vowels.
2024-05-25 10:19:26 +01:00
dependabot[bot]
fbd76976ab
chore(deps): bump the cargo group with 2 updates (#2041)
Bumps the cargo group with 2 updates: [rustls](https://github.com/rustls/rustls) and [h2](https://github.com/hyperium/h2).


Updates `rustls` from 0.21.10 to 0.21.11
- [Release notes](https://github.com/rustls/rustls/releases)
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustls/rustls/compare/v/0.21.10...v/0.21.11)

Updates `h2` from 0.3.24 to 0.3.26
- [Release notes](https://github.com/hyperium/h2/releases)
- [Changelog](https://github.com/hyperium/h2/blob/v0.3.26/CHANGELOG.md)
- [Commits](https://github.com/hyperium/h2/compare/v0.3.24...v0.3.26)

---
updated-dependencies:
- dependency-name: rustls
  dependency-type: direct:production
  dependency-group: cargo
- dependency-name: h2
  dependency-type: indirect
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-25 07:39:12 +01:00
Amos Bird
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
Ellie Huxtable
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
dependabot[bot]
b636be8b02
chore(deps): bump tokio from 1.36.0 to 1.37.0 (#2033)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.36.0 to 1.37.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.36.0...tokio-1.37.0)

---
updated-dependencies:
- dependency-name: tokio
  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-21 10:09:49 +07:00
dependabot[bot]
ec98f1456d
chore(deps): bump serde from 1.0.197 to 1.0.202 (#2034)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.197 to 1.0.202.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.197...v1.0.202)

---
updated-dependencies:
- dependency-name: serde
  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-05-21 09:49:00 +07:00
dependabot[bot]
800cbe5519
chore(deps): bump debian (#2036)
Bumps debian from bullseye-20240423-slim to bullseye-20240513-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>
2024-05-21 09:48:40 +07:00
Jeremy Cline
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
Ellie Huxtable
95c9168944
fix: save sync time in daemon (#2029) 2024-05-18 09:46:48 +07:00
Ellie Huxtable
64b7581644
chore: clarify default config file (#2026) 2024-05-17 09:50:13 +07:00
Caleb Maclennan
2e35af1c86
fix: bogus error message wording (#1283) 2024-05-16 07:51:25 +07:00
Ellie Huxtable
34265613b8
feat(ui): add history explore (#2022)
* break out HistoryRow, add drawer

* syntax highlighting!

* smaller text

* allow inspecting all old commands, no drag command

* fix query bug

* add loader
2024-05-14 12:16:04 +07:00
Ellie Huxtable
58f0bd61e6
fix: alias enable/enabled in settings (#2021) 2024-05-14 10:23:05 +07:00
dependabot[bot]
7672286814
chore(deps): bump base64 from 0.21.7 to 0.22.1 (#2017)
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.21.7 to 0.22.1.
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.21.7...v0.22.1)

---
updated-dependencies:
- dependency-name: base64
  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-14 10:07:20 +07:00
dependabot[bot]
b7f55a7110
chore(deps): bump clap from 4.5.1 to 4.5.4 (#2019)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.1 to 4.5.4.
- [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.1...v4.5.4)

---
updated-dependencies:
- dependency-name: clap
  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-05-14 10:07:09 +07:00
Pierluigi
5d24fbfab6
feat(install): add Tuxedo OS (#2018)
Add Tuxedo OS to the list of Debian-compatible OSes.
2024-05-14 10:03:25 +07:00
YummyOreo
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
Ellie Huxtable
0da534d524
fix: add incremental rebuild to daemon loop (#2010) 2024-05-08 17:28:52 +01:00
Ellie Huxtable
7067720057
fix: add protobuf compiler to docker image (#2009) 2024-05-08 14:14:51 +01:00
Ellie Huxtable
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