Commit graph

34 commits

Author SHA1 Message Date
Virgil
07500561fd docs(store): sharpen AX usage comments
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 05:57:40 +00:00
Virgil
bc578265a8 refactor(scope): make scoped helpers explicit
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 05:45:24 +00:00
Virgil
619e82a459 refactor(store): rename slice helper for clarity
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 05:40:53 +00:00
Virgil
33571be892 refactor(store): align wrapper naming with RFC
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 05:32:46 +00:00
Virgil
387d1463fb feat(store): add RFC-scoped helpers and callbacks
Add the RFC-named scoped helpers, AllSeq iteration, and group-filtered change callbacks.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 05:13:46 +00:00
Virgil
016e2c3777 refactor(store): remove legacy alias entry points
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 05:05:53 +00:00
Virgil
5c7e243fc0 feat(store): align public API with RFC
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 04:44:45 +00:00
Virgil
d9fad2d6be feat(store): implement RFC workspace and journal surfaces
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 20:46:43 +00:00
Virgil
134853e6df fix(store): tighten scoped purge and delete events
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 20:03:19 +00:00
Virgil
68e7d1e53a fix(store): tighten AX docs and scoped constructor validation
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 19:29:48 +00:00
Virgil
6813cd0308 feat(scope): add namespace-local helper methods
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 19:14:09 +00:00
Virgil
05410a9498 refactor(store): clarify public AX surface
Add descriptive public type comments and rename watcher pattern fields so the package reads more directly for agent consumers.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 19:06:00 +00:00
Virgil
4edd7dd0ca refactor(store): align AX examples and terminology
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 18:49:17 +00:00
Virgil
23f207db3f refactor(store): tighten AX naming and error contexts
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 18:37:07 +00:00
Virgil
05af917e17 refactor(store): clarify AX helper names and examples
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m42s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 17:37:50 +00:00
Virgil
fdadc24579 docs(store): align remaining AX examples
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m40s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 17:32:09 +00:00
Virgil
d6cd9fd818 docs(store): align quota config comments with AX
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m40s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 16:54:02 +00:00
Virgil
5df38516cc refactor(store): tighten AX examples and error handling
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m26s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 16:41:56 +00:00
Virgil
0fb0d16149 refactor(store): tighten AX error context and examples
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m39s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 16:27:54 +00:00
Virgil
0bda91f0bd refactor(store): tighten AX public comments
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-03-30 16:20:35 +00:00
Virgil
cdc4d5a11d refactor(store): sharpen AX examples and comments
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m39s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 16:13:55 +00:00
Virgil
289d864b0d docs(store): tighten AX examples and comments
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m38s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:55:04 +00:00
Virgil
d54609b974 docs(ax): tighten usage examples in public comments
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m40s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:43:42 +00:00
Virgil
2c55d220fa refactor(store): tighten scoped AX names
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m36s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:06:20 +00:00
Virgil
36a8d89677 refactor(store): tighten AX naming
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m40s
Replace the remaining shorthand variable names in the implementation, examples, and supporting docs with explicit names.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:02:28 +00:00
Virgil
2bfb5af5e2 refactor(store): apply AX naming cleanup
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m35s
Rename terse locals and callback internals, and update the user-facing examples to use explicit names.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 14:54:34 +00:00
Virgil
335c6460c9 refactor(store): adopt AX primary names
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m35s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 14:22:49 +00:00
Virgil
380f2b9157 fix(store): finish ax v0.8.0 polish
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-29 23:26:44 +00:00
Claude
c3de82b207
feat: upgrade to core v0.8.0-alpha.1, replace banned stdlib imports
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 2m33s
Replace fmt, errors, strings, path/filepath with Core primitives
across 8 files. Keep strings for SplitSeq/FieldsSeq/Builder/Repeat.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 13:58:50 +00:00
Snider
5225c99cd7 refactor(module): migrate module paths from forge.lthn.ai to dappco.re
Some checks failed
Security Scan / security (pull_request) Successful in 8s
Test / test (pull_request) Failing after 32s
Update module path to dappco.re/go/core/store, require dappco.re/go/core/log v0.1.0,
and update all Go import paths and documentation references.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 01:27:35 +00:00
Snider
e88b8a3455 refactor(errors): replace fmt.Errorf and errors.New with coreerr.E()
All checks were successful
Security Scan / security (push) Successful in 7s
Test / test (push) Successful in 2m26s
Replace all fmt.Errorf and errors.New calls in production code
(store.go, scope.go) with structured coreerr.E() from go-log.
Sentinel errors (ErrNotFound, ErrQuotaExceeded) are now *log.Err
values; errors.Is() chains continue to work via Unwrap(). Update
four coverage_test.go assertions to match the new op-prefixed
error format from the All() iterator.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 21:48:59 +00:00
Snider
11f0781d0a fix: harden error handling and SQL wildcard injection
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 1m38s
- Check ALTER TABLE migration errors (ignore duplicate column only)
- Handle background purge failures instead of swallowing errors
- Add escapeLike() to prevent SQL wildcard injection in LIKE queries
- Use errors.Is(ErrNotFound) in quota checks instead of treating all errors as not-found
- Add TestCountAll_Good_WithPrefix_Wildcards

Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:20:38 +00:00
Snider
9636396298 feat: modernise to Go 1.26 iterators and stdlib helpers
Some checks failed
Security Scan / security (push) Successful in 12s
Test / test (push) Failing after 37s
Add iter.Seq2 iterators (All, GroupsSeq) for streaming DB rows,
GetSplit/GetFields using strings.SplitSeq/FieldsSeq, slices.DeleteFunc
in event watchers/callbacks, and range-over-int in benchmarks.

Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 05:21:44 +00:00
Snider
175fd6bf83 feat(scope): add namespace isolation with quota enforcement
ScopedStore wraps Store and auto-prefixes groups with a namespace to
prevent key collisions across tenants. QuotaConfig enforces per-namespace
MaxKeys and MaxGroups limits (zero = unlimited). Upserts and expired
keys are excluded from quota counts.

New Store methods: CountAll(prefix) and Groups(prefix) for cross-group
queries. All 93 tests pass with race detector, coverage 94.7%.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 08:19:11 +00:00