Commit Graph

1065 Commits

Author SHA1 Message Date
Ellie Huxtable
f102a9d606 wip
I'm not really that happy with the query results here, though I'm sure
it can be tweaked a bunch

1. Prefixes suck. I'd expect a query of "c" to respond with a bunch of
   "cd" commands, but single char prefixes don't work too well. Maybe
   configure a prefix index?
2. Special characters aren't working well. Eg, querying for flags,
   strings containing chars like '@', etc. Probs some config options or
   escaping needed
3. Not as fuzzy. Pro and con really. I tried trigrams too, but the three
   char requirement didn't work nicely given lots of commands are < 3
   chars
4. Performance is really nice though!
2024-05-26 08:56:11 +01:00
Ellie Huxtable
828181fd52 feat: add fts5-based search 2024-05-25 17:07:07 +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
Helmut K. C. Tessarek
eebfd04879
fix(config): add quotes for strategy value in comment (#1993) 2024-05-06 08:31:23 +01:00
Poliorcetics
467b575007
fix: adapt help to enter_accept config (#2001) 2024-05-06 08:14:51 +01:00
Ellie Huxtable
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
dependabot[bot]
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
dependabot[bot]
dd751873d5
chore(deps): bump serde_json from 1.0.115 to 1.0.116 (#2003)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.115 to 1.0.116.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.115...v1.0.116)

---
updated-dependencies:
- dependency-name: serde_json
  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-06 08:09:24 +01:00
dependabot[bot]
100f5136fb
chore(deps): bump lukemathwalker/cargo-chef (#2004)
Bumps lukemathwalker/cargo-chef from latest-rust-1.77.2-buster to latest-rust-1.78.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>
2024-05-06 08:09:08 +01:00
Ellie Huxtable
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
Helmut K. C. Tessarek
831dd783ed
refactor: preview_auto to use enum and different option (#1991)
* refactor: preview_auto to use enum and different option

* fix: typo
2024-05-01 10:51:22 +01:00
github-actions[bot]
282e39d39f
chore(deps): flake.lock: Update (#1992)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/807c549feabce7eddbf259dbdcec9e0600a0660d?narHash=sha256-9slQ609YqT9bT/MNX9%2B5k5jltL9zgpn36DpFB7TkttM%3D' (2024-03-29)
  → 'github:NixOS/nixpkgs/cf8cc1201be8bc71b7cbbbdaf349b22f4f99c7ae?narHash=sha256-yNAevSKF4krRWacmLUsLK7D7PlfuY3zF0lYnGYNi9vQ%3D' (2024-04-28)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-01 10:47:24 +01:00
Ellie Huxtable
d1ce01679b
feat(history): create atuin-history, add stats to it (#1990)
* feat(history): create atuin-history, add stats to it

I'd like to eventually pull all the history stuff into this crate. Stats
are a nice start, as I'd like to use them from the UI anyways.

* lock

* clippy
2024-04-30 13:16:50 +01:00
Ellie Huxtable
cea48a1545
feat(ui/dotfiles): add vars (#1989) 2024-04-29 14:59:59 +01:00
dependabot[bot]
150bcb8eb8
chore(deps): bump rustix from 0.38.32 to 0.38.34 (#1986)
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.32 to 0.38.34.
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.32...v0.38.34)

---
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>
2024-04-29 08:34:00 +01:00
dependabot[bot]
8363b0c870
chore(deps): bump unicode-width from 0.1.11 to 0.1.12 (#1987)
Bumps [unicode-width](https://github.com/unicode-rs/unicode-width) from 0.1.11 to 0.1.12.
- [Commits](https://github.com/unicode-rs/unicode-width/compare/v0.1.11...v0.1.12)

---
updated-dependencies:
- dependency-name: unicode-width
  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-04-29 08:33:48 +01:00
dependabot[bot]
7a3a18c0ba
chore(deps): bump debian (#1988)
Bumps debian from bullseye-20240408-slim to bullseye-20240423-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-04-29 08:33:29 +01:00
Poliorcetics
36ddd98b6e
perf(nushell): use version.(major|minor|patch) if available (#1963) 2024-04-26 12:30:06 +01:00
dependabot[bot]
a5e9c27e74
chore(deps): bump typed-builder from 0.18.1 to 0.18.2 (#1967)
Bumps [typed-builder](https://github.com/idanarye/rust-typed-builder) from 0.18.1 to 0.18.2.
- [Changelog](https://github.com/idanarye/rust-typed-builder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/idanarye/rust-typed-builder/commits)

---
updated-dependencies:
- dependency-name: typed-builder
  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-04-26 12:18:53 +01:00
Ellie Huxtable
fc5522f45e
chore: add some more debug logs (#1979)
P99 is usually <100ms which is excellent, but occasionally has big
spikes to 1000ms. This is only on the record index.

I don't want this to get out of hand. I've ran a few test queries and
they all complete very fast, and are purely index scans.

Hopefully this helps figure out if it's a specific user with tonnes of
stores or something? Otherwise there could be something up with my db.

I should probably also figure out some proper log levels or tracing lol.
2024-04-25 10:42:04 +01:00
Ellie Huxtable
d020c815c1
feat(dotfiles): support syncing shell/env vars (#1977)
There's a bunch of duplication here!

I'd also like to support syncing shell "snippets", aka just bits of
shell config that don't fit into the structure here. Potentially special
handling for PATH too.

Rather than come up with some abstraction in the beginning, which
inevitably will not fit future uses, I'm duplicating code _for now_.

Once all the functionality is there, I can tidy things up and sort a
proper abstraction out.

Something in atuin-client for map/list style synced structures would
probably work best.
2024-04-25 07:52:23 +01:00
Ellie Huxtable
38ea7706a0
fix(ci): release workflow (#1978) 2024-04-24 16:45:35 +01:00
Ellie Huxtable
bf88b42cec
fix(dotfiles): unquote aliases before quoting (#1976)
* fix(dotfiles): unquote aliases before quoting

* tests
2024-04-23 14:45:07 +01:00
Tobias Genannt
8b8844887b
chore(deps): Fix ratatui update (#1975)
* chore(deps): bump ratatui from 0.25.0 to 0.26.2

Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.25.0 to 0.26.2.
- [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.25.0...v0.26.2)

---
updated-dependencies:
- dependency-name: ratatui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix build with ratatuin 0.26.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 20:22:11 +01:00
Ellie Huxtable
822593e77b
fix(dotfiles): more fish alias import (#1974)
Serves me right for assuming fish mostly is POSIX.
2024-04-22 17:37:07 +01:00
Richard de Boer
78c6a6a7f0
docs: fix "From source" cd command (#1973)
`atuin` was moved into the `crates/` directory in 95cc4720
2024-04-22 15:46:51 +01:00
Ellie Huxtable
18f33b81f6
fix(dotfiles): fish alias import (#1972) 2024-04-22 14:27:38 +01:00
Ellie Huxtable
bbf83801e6
chore: add some more logging to handlers (#1971) 2024-04-22 10:37:16 +01:00
Ellie Huxtable
d239a67b37
fix(dotfiles): alias import with init output (#1970) 2024-04-22 10:32:56 +01:00