Commit graph

111 commits

Author SHA1 Message Date
Snider
345fa26062 feat(store): add Exists, GroupExists, and Workspace.Count methods
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Add public existence-check methods across all store layers (Store,
ScopedStore, StoreTransaction, ScopedStoreTransaction) so callers can
test key/group presence declaratively without Get+error-type checking.
Add Workspace.Count for total entry count. Full test coverage with
Good/Bad/Ugly naming, race-clean.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 08:58:26 +01:00
Virgil
72eff0d164 refactor: tighten store AX documentation
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 21:29:27 +00:00
Virgil
69452ef43f docs(ax): tighten usage examples
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 21:13:50 +00:00
Virgil
e1341ff2d5 refactor(store): align internal lifecycle naming with AX
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Use more descriptive private lifecycle, watcher, and orphan cache field names so the implementation reads more directly for agent consumers while preserving the exported API and behaviour.\n\nCo-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 21:09:20 +00:00
Virgil
c8504ab708 docs(store): clarify declarative constructors
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Prefer the struct-literal constructors in package docs and namespace helpers.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 20:46:40 +00:00
Virgil
75f8702b74 feat: normalise declarative store config defaults
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 19:07:18 +00:00
Virgil
7ad4dab749 refactor(store): clarify config guidance and naming
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 18:52:33 +00:00
Virgil
00650fd51e feat(store): add transaction purge helpers
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 18:20:52 +00:00
Virgil
ba997f7e6b docs(store): align public comments with AX
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 17:43:55 +00:00
Virgil
08e896ad4d docs(store): clarify journal metadata
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Align the RFC text and store comments with the SQLite-backed journal implementation.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 17:27:10 +00:00
Virgil
5527c5bf6b docs(store): prefer config literals in examples
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 16:49:48 +00:00
Virgil
06f6229eaf feat(store): expose workspace state directory config
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 16:24:27 +00:00
Virgil
cae3c32d51 refactor: add AX config validation helpers
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 15:47:56 +00:00
Virgil
32e7413bf4 feat(store): make workspace state paths declarative
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 14:43:42 +00:00
Virgil
caacbbd1c1 docs(store): clarify SQLite journal implementation
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 14:36:40 +00:00
Virgil
b43eb4e57a docs(store): make public comments example-driven
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 14:23:29 +00:00
Virgil
c2c5cecd7d refactor(store): unify journal configuration storage
Keep the exported JournalConfiguration type as the single in-memory representation.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 14:19:28 +00:00
Virgil
c8261c5eb2 docs(store): prefer config literals in examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 13:37:27 +00:00
Virgil
019a72d152 docs(store): clarify AX examples for options
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 13:25:19 +00:00
Virgil
f6a602f064 docs(store): improve agent-facing examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 12:08:14 +00:00
Virgil
a2ddacb27b fix(store): wrap orphan cleanup errors
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 12:01:39 +00:00
Virgil
c6c359e1c7 docs(store): add ax-oriented usage examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 11:33:32 +00:00
Virgil
57da334a1d docs(store): tighten AX API guidance
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 11:30:13 +00:00
Virgil
0ea38777d7 refactor(store): use descriptive configuration names
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 11:26:16 +00:00
Virgil
2ff98991a1 fix(store): require explicit database path in config
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 11:22:50 +00:00
Virgil
6ba5701955 refactor(config): validate declarative store options
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 10:46:46 +00:00
Virgil
089f80c087 refactor(store): clarify key-value terminology
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 10:25:34 +00:00
Virgil
7c59f9d011 fix(store): allow discard after workspace close
Make workspace cleanup idempotent so a closed workspace can still be discarded and removed from disk later. Also clarify the configuration comments for AX-oriented usage.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 10:13:27 +00:00
Virgil
09c78e13f4 fix(store): require complete journal configuration
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 09:43:27 +00:00
Virgil
37500c56ae refactor(store): clarify SQLite handle names
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 09:04:56 +00:00
Virgil
a662498891 docs(ax): fix misleading store usage examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 08:57:06 +00:00
Virgil
cc8bebb8e0 refactor(store): clarify journal configuration and workspace errors
Add a declarative journal configuration check and wrap workspace database errors with package context.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 08:41:28 +00:00
Virgil
2a28b5a71b feat(store): add closed-state accessor
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 08:32:55 +00:00
Virgil
5116662f41 feat(store): add database path accessor
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 08:23:23 +00:00
Virgil
e1cb275578 fix(store): preserve orphan files for recovery
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 08:12:29 +00:00
Virgil
1c92e47b24 fix(store): cache orphan workspaces during startup
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 07:57:24 +00:00
Virgil
828b55960b refactor(store): clarify constructor naming and docs
Prefer struct-literal configuration in package docs and rename internal constructor helpers for clarity.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:54:19 +00:00
Virgil
ee984818d2 feat(store): expose active configuration
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:45:44 +00:00
Virgil
799d79d4e2 docs(store): clarify pagination and orphan scan wording
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:41:20 +00:00
Virgil
bf7b616fe1 feat(store): add paginated group reads
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:32:35 +00:00
Virgil
013a72753b fix(store): scan workspace orphans at startup
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:27:52 +00:00
Virgil
5af3f90e2d fix(workspace): leave orphaned workspaces recoverable
Stop New() from eagerly discarding orphaned workspace files so callers can recover them explicitly through RecoverOrphans().

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:23:31 +00:00
Virgil
757e973097 feat(workspace): restore startup orphan cleanup
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:15:01 +00:00
Virgil
4c33a53b67 refactor(store): remove no-op startup orphan scan
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:02:53 +00:00
Virgil
a2294650b4 feat(workspace): restore startup orphan scan
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:53:20 +00:00
Virgil
66d05a1822 refactor(store): remove no-op startup orphan scan
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:40:19 +00:00
Virgil
841e7b8936 fix(store): harden background purge interval
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:35:20 +00:00
Virgil
acad59664d fix(store): close watcher channels on shutdown
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:30:50 +00:00
Virgil
a9ab1fd2ee refactor(store): move options onto config
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:27:04 +00:00
Virgil
a2067baa5a feat(store): scan orphan workspaces on startup
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:22:12 +00:00