<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atuin/crates/atuin-server-postgres/src/lib.rs, branch main</title>
<subtitle>Turtle. A hard-fork of atuin, focusing on a more minimal feature set</subtitle>
<id>http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-server-postgres/src/lib.rs?h=main</id>
<link rel='self' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-server-postgres/src/lib.rs?h=main'/>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/'/>
<updated>2026-06-10T22:54:30Z</updated>
<entry>
<title>chore: Move everything into one big crate</title>
<updated>2026-06-10T22:54:30Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2026-06-10T22:54:30Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8'/>
<id>urn:sha1:5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8</id>
<content type='text'>
That helps remove duplicated code and rustc/cargo will now also show
dead code correctly.
</content>
</entry>
<entry>
<title>refactor: pull `fn into_utc` into atuin-server-database crate (#3487)</title>
<updated>2026-05-14T23:07:08Z</updated>
<author>
<name>John Oxley</name>
<email>john.oxley@gmail.com</email>
</author>
<published>2026-05-14T23:07:08Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=27cf6d2af5ae1a4884164d3b0ca44fbbf4a8fab1'/>
<id>urn:sha1:27cf6d2af5ae1a4884164d3b0ca44fbbf4a8fab1</id>
<content type='text'>
The `fn into_utc` was defined in both `atuin-server-postgres` and
`atuin-server-sqlite`, with tests being in the postgres crate. This
pulls the function into the `atuin-server-database` crate along with the
tests and references it from both crates.

## Checks
- [X] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [X] I have checked that there are no existing pull requests for the
same thing</content>
</entry>
<entry>
<title>refactor: Implement From&lt;sqlx::Error&gt; and clean up fix_error (#3484)</title>
<updated>2026-05-14T21:53:32Z</updated>
<author>
<name>John Oxley</name>
<email>john.oxley@gmail.com</email>
</author>
<published>2026-05-14T21:53:32Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=d98ecd58af9f6d850461b8bef430dfef70111692'/>
<id>urn:sha1:d98ecd58af9f6d850461b8bef430dfef70111692</id>
<content type='text'>
In the database crates for atuin-server, there is `fn fix_error`. This
PR implements `From&lt;sqlx::Error&gt;` on `DbError` which makes it possible
to mostly use `?` to bubble up the errors.

There are cases where `?` is not being used e.g.
```rust
    async fn get_session(&amp;self, token: &amp;str) -&gt; DbResult&lt;Session&gt; {
        sqlx::query_as("select id, user_id, token from sessions where token = $1")
            .bind(token)
            .fetch_one(&amp;self.pool)
            .await
            .map_err(fix_error)
            .map(|DbSession(session)| session)
    }
```

There are two options
## 1. Use `Into::into`
```rust
    async fn get_session(&amp;self, token: &amp;str) -&gt; DbResult&lt;Session&gt; {
        sqlx::query_as("select id, user_id, token from sessions where token = $1")
            .bind(token)
            .fetch_one(&amp;self.pool)
            .await
            .map_err(fix_error)
            .map(|DbSession(session)| session)
    }
```

## 2. Create a variable and use `?`
```rust
    async fn get_session(&amp;self, token: &amp;str) -&gt; DbResult&lt;Session&gt; {
        let session = sqlx::query_as("select id, user_id, token from sessions where token = $1")
            .bind(token)
            .fetch_one(&amp;self.pool)
            .await
            .map(|DbSession(session)| session)?;
        Ok(session)
    }
```

I chose to do option 1 as it was just a find/replace but say the word
and I'll convert them all to option 2

## Checks
- [X] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [X] I have checked that there are no existing pull requests for the
same thing</content>
</entry>
<entry>
<title>feat: remove user verification functionality (#3108)</title>
<updated>2026-01-27T21:56:18Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2026-01-27T21:56:18Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=e2b421c88479857831e938acb311aef5127f38b4'/>
<id>urn:sha1:e2b421c88479857831e938acb311aef5127f38b4</id>
<content type='text'>
&lt;!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord --&gt;

## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing

---------

Co-authored-by: greptile-apps[bot] &lt;165735046+greptile-apps[bot]@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>chore!: remove total_history from api index response (#3094)</title>
<updated>2026-01-23T20:27:43Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2026-01-23T20:27:43Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=126070068abda34fda0b880a36cc604b4ac8be2a'/>
<id>urn:sha1:126070068abda34fda0b880a36cc604b4ac8be2a</id>
<content type='text'>
Remove the expensive and inaccurate `total_history` field from the API
index endpoint. The query `select sum(total) from
total_history_count_user` ran on every request but is no longer
relevant. The underlying table remains for per-user cached counts used
by `/sync/count`.

## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing</content>
</entry>
<entry>
<title>feat: add support for read replicas to postgres (#3029)</title>
<updated>2025-12-18T21:12:39Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-12-18T21:12:39Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=96e6bb23472735d4d1dec299d41e19a38f63adbd'/>
<id>urn:sha1:96e6bb23472735d4d1dec299d41e19a38f63adbd</id>
<content type='text'>
Support for routing read queries to read replicas for Postgres

We have very high database usage these days, and now run shell history
sync off of [Planetscale](https://planetscale.com/)

This setup gives us 2x read replicas, meaning we can reduce load on the
primary

I doubt this is required for anyone else's setup - lmk if so.</content>
</entry>
<entry>
<title>feat: add IDX_CACHE_ROLLOUT (#2850)</title>
<updated>2025-07-29T14:14:27Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-07-29T14:14:27Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=6c31530c7aab311db01c1c1dda3b55d871002fc4'/>
<id>urn:sha1:6c31530c7aab311db01c1c1dda3b55d871002fc4</id>
<content type='text'>
Only really useful for Atuin cloud

Given a % chance, either use the idx cache or use the old aggregation
query

This is to enable us to test rollout the idx cache, without breaking all
queries in weird ways. Can monitor for a change in http codes/etc, and
easily roll back.</content>
</entry>
<entry>
<title>fix: ensure the idx cache is cleaned on deletion, only insert if records are inserted (#2841)</title>
<updated>2025-07-24T12:29:37Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-07-24T12:29:37Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=cb157f7c405150aca4a7df7fdbae0041401fced0'/>
<id>urn:sha1:cb157f7c405150aca4a7df7fdbae0041401fced0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: use transaction for idx consistency checking (#2840)</title>
<updated>2025-07-24T08:08:20Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-07-24T08:08:20Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=0f381dd5152e60bf5473955e9a503a466e50219f'/>
<id>urn:sha1:0f381dd5152e60bf5473955e9a503a466e50219f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: update to rust 1.88 (#2815)</title>
<updated>2025-07-22T14:03:20Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-07-22T14:03:20Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=e7819d258a29eeec0e9255a961fee3b44735afab'/>
<id>urn:sha1:e7819d258a29eeec0e9255a961fee3b44735afab</id>
<content type='text'>
* chore: update to rust 1.88

* clippy + fmt

* update ci version

* update flake</content>
</entry>
</feed>
