Virgil
aa83e59b69
fix(scope): enforce quotas in scoped transactions
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 10:36:57 +00:00
Virgil
7238871a3a
refactor(scope): use groups helper for quota counting
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 10:17:28 +00:00
Virgil
7874f6eda8
feat(scope): add scoped transaction wrapper
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 10:03:41 +00:00
Virgil
039260fcf6
test(ax): enforce exported field usage examples
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 09:48:02 +00:00
Virgil
50d368f1ae
feat(scope): add declarative scoped constructor
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 09:34:54 +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
28b917cad6
refactor(scope): clarify watcher error contexts
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 09:02:04 +00:00
Virgil
214b024d12
refactor(scope): clarify scoped error contexts
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:58:15 +00:00
Virgil
7fa9843083
refactor(scope): clarify scoped store lookup
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 08:36:40 +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
3a8cfcedf9
feat(store): add prefix cleanup helpers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:14:22 +00:00
Virgil
c12aba4145
feat(scope): support scoped wildcard watchers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 07:00:35 +00:00
Virgil
303b75444d
feat(scope): add scoped event delegation
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 06:55:37 +00:00
Virgil
2d9c5b2b49
refactor(store): clarify backing store names
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 06:35:23 +00:00
Virgil
bff79c31ca
fix(store): add nil-safe guards
...
Add nil/closed checks across the store, scoped store, workspace, journal, event, and compact entry points so agent callers get wrapped errors instead of panics.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 06:31:35 +00:00
Virgil
a2adbf7ba6
refactor(store): tighten AX doc comments
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 06:23:51 +00:00
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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()
...
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
...
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
...
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