36 Commits

Author SHA1 Message Date
7f868711f0 feat: Add sqlite server support for self-hosting (#2770)
* Move db_uri setting to DbSettings

* WIP: sqlite crate framework

* WIP: Migrations

* WIP: sqlite implementation

* Add sqlite3 to Docker image

* verified_at needed for user query

* chore(deps): bump debian (#2772)

Bumps debian from bookworm-20250428-slim to bookworm-20250520-slim.

---
updated-dependencies:
- dependency-name: debian
  dependency-version: bookworm-20250520-slim
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(doctor): mention the required ble.sh version (#2774)

References:

https://forum.atuin.sh/t/1047

* fix: Don't print errors in `zsh_autosuggest` helper (#2780)

Previously, this would result in long multi-line errors when typing,
making it hard to see the shell prompt:
```
$  Error: could not load client settings

Caused by:
   0: could not create config file
   1: failed to create file `/home/jyn/.config/atuin/config.toml`
   2: Required key not available (os error 126)

Location:
    atuin-client/src/settings.rs:675:54
 fError: could not load client settings

Caused by:
   0: could not create config file
   1: failed to create file `/home/jyn/.config/atuin/config.toml`
   2: Required key not available (os error 126)

Location:
    atuin-client/src/settings.rs:675:54
 faError: could not load client settings
```

Silence these in autosuggestions, such that they only show up when
explicitly invoking atuin.

* fix: `atuin.nu` enchancements (#2778)

* PR feedback

* Remove sqlite3 package

* fix(search): prevent panic on malformed format strings (#2776) (#2777)

* fix(search): prevent panic on malformed format strings (#2776)

- Wrap format operations in panic catcher for graceful error handling
- Improve error messages with context-aware guidance for common issues
- Let runtime-format parser handle validation to avoid blocking valid formats

Fixes crash when using malformed format strings by catching formatting
errors gracefully and providing actionable guidance without restricting
legitimate format patterns like {command} or {time}.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Satisfy cargo fmt

* test(search): add regression tests for format string panic (#2776)

- Add test for malformed JSON format strings that previously caused panics
- Add test to ensure valid format strings continue to work
- Prevent future regressions of the format string panic issue

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Koichi Murase <myoga.murase@gmail.com>
Co-authored-by: jyn <github@jyn.dev>
Co-authored-by: Tyarel8 <98483313+Tyarel8@users.noreply.github.com>
Co-authored-by: Brian Cosgrove <cosgroveb@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-23 12:31:55 +01:00
84589cab15 chore(release): prepare for release 18.6.1 (#2749) 2025-05-08 14:10:38 -07:00
45460d4c31 chore(release): prepare for release 18.6.0 (#2740)
Co-authored-by: Ellie Huxtable <ellie@mac.lan>
2025-05-06 16:18:21 -07:00
100de6e463 chore(deps): Update postmark to 0.11 (#2730) 2025-05-01 15:18:21 +01:00
10df8ff8d1 chore(release): prepare for release 18.6.0-beta.1 (#2723) 2025-04-28 14:32:07 +01:00
09fc76ed82 chore(release): prepare for release 18.5.0 (#2685)
* chore(release): prepare for release 18.5.0

* update workflow ubuntu version

* revert because dist checks lol
2025-04-08 17:05:12 +01:00
1f6031d84a chore(release): prepare for release 18.5.0-beta.3 (#2678) 2025-04-07 14:33:24 +01:00
da672d5bc3 chore(release): prepare for release 18.5.0-beta.2 2025-04-02 13:23:07 +01:00
ef8717848c chore(deps): bump tower-http from 0.5.2 to 0.6.2 (#2641)
Bumps [tower-http](https://github.com/tower-rs/tower-http) from 0.5.2 to 0.6.2.
- [Release notes](https://github.com/tower-rs/tower-http/releases)
- [Commits](https://github.com/tower-rs/tower-http/compare/tower-http-0.5.2...tower-http-0.6.2)

---
updated-dependencies:
- dependency-name: tower-http
  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>
2025-03-24 11:00:30 +00:00
14ec768b45 chore: migrate to rust 2024 (#2635)
* chore: upgrade to 2024 edition

* ugh unsafe

* format

* nixxxxxxxxxxx why
2025-03-19 12:44:20 +00:00
8274e727cb chore(release): prepare for release 18.5.0-beta.1 (#2622)
* chore(release): prepare for release 18.5.0-beta.1

* no codespell on contributors
2025-03-11 18:16:19 +00:00
231d87c47e chore: update rust toolchain to 1.85 (#2618)
* chore: update rust toolchain to 1.85

* nix things

* make clippy happy

I've replaced a bunch of &Option<String> with Option<String>.

They were not in hot loops, so a single clone is really no big deal +
keeps things simpler.

* fmt
2025-03-09 22:27:38 +00:00
544f3370da feat(health): add health check endpoint at /healthz (#2549)
* feat(health): add health check endpoint at `/healthz`

* feat(health-check): remove invalid health-check from docker compose
2025-03-09 21:43:27 +00:00
80c41841a9 chore: Remove unneeded dependencies (#2523)
These dependencies are unused in actual code, and the test I've removed
is a remnant from a move to use an external library -- it was useful to
show that the mechanical transformation was correct, but it's only
testing that library nowadays.
2025-01-07 20:04:48 +00:00
dc7c26a640 chore(release): prepare for release v18.4.0 (#2495) 2024-12-27 15:54:38 +00:00
cb57053919 chore(release): prepare for release 18.4.0-beta.5 (#2472) 2024-12-05 23:24:04 +00:00
33f00df382 chore(release): prepare for release 18.4.0-beta.4 (#2469) 2024-12-05 11:32:20 +00:00
c7447e84da fix: disable mail by default, resolve #2404 (#2405) 2024-10-02 17:40:37 -07:00
51650ff999 chore(deps): Update rustls and axum-server (#2382) 2024-09-09 20:40:19 +01:00
58c904996d fix(mail): enable correct tls features for postmark client (#2347) 2024-08-06 15:00:34 +01:00
2811e5631b fix(mail): incorrect alias and error logs (#2346) 2024-08-06 14:31:41 +01:00
3cf52990e4 chore(release): prepare for release v18.4.0-beta.3 (#2305) 2024-07-23 13:38:41 +01:00
0e7f9b29d2 chore(release): prepare for release v18.4.0-beta.2 (#2287)
* feat(gui): add runbook list, ability to create and delete, sql storage (#2282)

* wip

* saving works :))

* functioning delete button

* persist selection properly

* update contributors

* update changelog
2024-07-16 15:19:33 +01:00
255a7bccb6 feat: allow advertising a fake version to clients (#2228)
* feat: allow advertising a fake version to clients

The server usually runs unstable Atuin, and is well monitored. But let's
not advertised the unstable version to clients, as they will notify
users there is an update available.

* fix test build
2024-07-02 14:13:45 +01:00
0def653484 perf: write to the idx cache (#2225) 2024-07-02 11:14:37 +01:00
2f68b6e36b chore(deps): bump postmark from 0.10.0 to 0.10.1 (#2217)
Bumps [postmark](https://github.com/pastjean/postmark-rs) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/pastjean/postmark-rs/releases)
- [Changelog](https://github.com/pastjean/postmark-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pastjean/postmark-rs/compare/v0.10.0...v0.10.1)

---
updated-dependencies:
- dependency-name: postmark
  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-07-01 12:57:13 +01:00
c8b3e418a1 chore(release): prepare for release v18.4.0-beta.1 (#2195)
* chore(release): prepare for release v18.4.0-beta.1

* remove full release test
2024-06-25 12:35:12 +01:00
67d64ec4b3 feat: add user account verification (#2190)
* add verified column to users table

* add database functions to check if verified, or to verify

* getting there

* verification check

* use base64 urlsafe no pad

* add verification client

* clippy

* correct docs

* fix integration tests
2024-06-24 14:54:54 +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
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
c694a0a67f chore(deps): relax sqlx and argon2 dependencies (#2065)
* Bump sqlx dependency

* Relax dependencies for Fedora
2024-05-31 09:44:55 +01:00
58f0bd61e6 fix: alias enable/enabled in settings (#2021) 2024-05-14 10:23:05 +07: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
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
bbf83801e6 chore: add some more logging to handlers (#1971) 2024-04-22 10:37:16 +01:00
95cc472037 chore: move crates into crates/ dir (#1958)
I'd like to tidy up the root a little, and it's nice to have all the
rust crates in one place
2024-04-18 16:41:28 +01:00