From 57b542e8ed4335e5f66b5e008d9a8e90776ebffb Mon Sep 17 00:00:00 2001
From: Ellie Huxtable <ellie@atuin.sh>
Date: Wed, 4 Feb 2026 13:26:06 -0800
Subject: feat: replace several files with a sqlite db (#3128)

These files have been known to have corruption issues. SQLite will
perform better across filesystems for reads/writes across threads, and
will lock as expected.

I've also put the session file in there, though I'm 50/50 on it - I'll
be replacing it with keyring storage asap anyway.

The key file is _not_ included. It should ~never be changed, and should
be easy for the user to secure + manage themselves

In the future, instead of creating more files, we can just use this as a
kv store

Resolves https://github.com/atuinsh/atuin/issues/2336, resolves
https://github.com/atuinsh/atuin/issues/1650

## 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
---
 crates/atuin-client/meta-migrations/20260203030924_create_meta.sql | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 crates/atuin-client/meta-migrations/20260203030924_create_meta.sql

(limited to 'crates/atuin-client/meta-migrations/20260203030924_create_meta.sql')

diff --git a/crates/atuin-client/meta-migrations/20260203030924_create_meta.sql b/crates/atuin-client/meta-migrations/20260203030924_create_meta.sql
new file mode 100644
index 00000000..26c3c142
--- /dev/null
+++ b/crates/atuin-client/meta-migrations/20260203030924_create_meta.sql
@@ -0,0 +1,5 @@
+create table if not exists meta (
+    key text not null primary key,
+    value text not null,
+    updated_at integer not null default (strftime('%s', 'now'))
+);
-- 
cgit v1.3.1

