Commit graph

58 commits

Author SHA1 Message Date
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
ead99906de refactor(store): tighten AX event naming and examples
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 1m41s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 16:07:53 +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
30db60c77f refactor(store): tighten AX naming 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 15:48:33 +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
25eb05e68d refactor(store): rename sqlite schema for AX clarity
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m38s
Migrate legacy kv databases to the descriptive entries schema and cover the new iterator branches.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:37:49 +00:00
Virgil
57e061f742 fix(events): make callback dispatch re-entrant safe
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m34s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:22:33 +00:00
Virgil
adc463ba75 docs(ax): add Codex conventions bridge
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 1m36s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 15:16:16 +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
37740a8bd9 refactor(store): remove legacy AX aliases
All checks were successful
Security Scan / security (push) Successful in 15s
Test / test (push) Successful in 1m41s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 14:38:07 +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
Snider
f845bc4368 docs: add store RFC and AX RFC to repo docs for agent access
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 2m39s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 14:25:56 +01:00
Virgil
083bc1b232 chore(deps): remove stale core/log dependency
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 2m32s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-29 23:27:16 +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
e2678f5cde Merge pull request '[agent/codex] AX review' (#13) from agent/ax-review--banned-imports--test-naming into dev
All checks were successful
Security Scan / security (push) Successful in 16s
Test / test (push) Successful in 1m10s
2026-03-26 11:30:13 +00:00
Virgil
f82b1e9dcb test(conventions): enforce AX review rules
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 11:29:56 +00:00
ce189c69e2 Merge pull request '[agent/codex] AX review: banned imports, test naming, usage comments.' (#12) from agent/ax-review--banned-imports--test-naming into dev
All checks were successful
Security Scan / security (push) Successful in 2m30s
Test / test (push) Successful in 4m56s
2026-03-26 11:17:38 +00:00
Virgil
ec500b86d2 chore(repo): enforce AX review conventions
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 11:17:06 +00:00
86f62429cc Merge pull request '[agent/claude] Update go.mod require lines from forge.lthn.ai to dappco.re ...' (#3) from agent/update-go-mod-require-lines-from-forge-l into main
Some checks failed
Security Scan / security (push) Successful in 9s
Test / test (push) Failing after 33s
2026-03-22 02:49:29 +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
620611fa27 Merge remote-tracking branch 'github/dev'
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 2m37s
2026-03-22 00:57:22 +00:00
Snider
78db5f098c Merge remote-tracking branch 'origin/main' 2026-03-22 00:57:22 +00:00
Snider
3cd761dc03 chore: sync dependencies for v0.1.9
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:48:09 +00:00
Snider
407b0963dc ci: add Core ecosystem CI workflow with CodeRabbit auto-fix
Uses dAppCore/build actions for test, auto-fix on CodeRabbit changes,
and auto-merge on CodeRabbit approval.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 14:05:30 +00:00
d5ef81a1ff Merge pull request '[agent/claude:haiku] Update CLAUDE.md: Add a "Getting Started" section at the top...' (#2) from agent/update-claude-md--add-a--getting-started into main
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 59s
2026-03-17 08:03:39 +00:00
Snider
bf58dba643 docs(claude.md): add Getting Started section with workspace and test setup
All checks were successful
Security Scan / security (pull_request) Successful in 7s
Test / test (pull_request) Successful in 57s
Adds a concise Getting Started section covering:
- Go workspace requirement and go work sync
- First test command (go test ./... -count=1)
- Module directory layout (store.go and scope.go)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 07:09:41 +00:00
Snider
2512006510 chore: sync dependencies for v0.1.8
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 2m59s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 22:19:36 +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
75168376ed chore: sync go.mod dependencies
Some checks failed
Security Scan / security (push) Successful in 8s
Test / test (push) Failing after 28s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:28:59 +00:00
Snider
5256b879a1 chore: add .core/ and .idea/ to .gitignore
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 45s
2026-03-15 10:17:50 +00:00
Snider
b579a9f175 docs: add CLAUDE.md project instructions
All checks were successful
Security Scan / security (push) Successful in 7s
Test / test (push) Successful in 2m34s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:38:02 +00:00
Snider
94cda6b566 docs: add human-friendly documentation
All checks were successful
Security Scan / security (push) Successful in 15s
Test / test (push) Successful in 2m36s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:02:40 +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
3c2d78aa6f chore: add .core/ build and release configs
All checks were successful
Security Scan / security (push) Successful in 6s
Test / test (push) Successful in 50s
Add go-devops build system configuration for standardised
build, test, and release workflows across the Go ecosystem.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 18:52:37 +00:00
Snider
5ed2db15ce chore: remove boilerplate Taskfile
All checks were successful
Security Scan / security (push) Successful in 7s
Test / test (push) Successful in 2m29s
All tasks (test, build, lint, fmt, vet, cov) are handled natively
by `core go` commands. Taskfile was redundant wrapper.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:45:49 +00:00
Snider
b187cb1df8 chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig)
All checks were successful
Security Scan / security (push) Successful in 13s
Test / test (push) Successful in 3m48s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:45:49 +00:00
Snider
df5c7a6cad chore: refresh go.sum after upstream tag updates
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-02-23 06:35:19 +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
Claude
5f5157fb3b
ci: add Forgejo Actions test and security scan workflows
Some checks failed
Security Scan / security (push) Successful in 14s
Test / test (push) Failing after 47s
Uses reusable workflows from core/go-devops for Go testing
(with race detector and coverage) and security scanning
(govulncheck, gitleaks, trivy).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 03:28:08 +00:00
Claude
2126e8bcaa
chore: sync workspace dependency versions
Run go work sync to align dependency versions across workspace.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:42:03 +00:00
Snider
3c6b2267a3 refactor: apply go fix modernizers for Go 1.26
Automated fixes: interface{} → any, range-over-int, t.Context(),
wg.Go(), strings.SplitSeq, strings.Builder, slices.Contains,
maps helpers, min/max builtins.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 21:00:17 +00:00
Snider
351f4dfd30 chore: bump go directive to 1.26.0
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 20:33:48 +00:00
Snider
0284110cca docs: add README with quick start and docs links
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 15:11:20 +00:00
Snider
c570f08eba docs: graduate TODO/FINDINGS into production documentation
Replace internal task tracking (TODO.md, FINDINGS.md) with structured
documentation in docs/. Trim CLAUDE.md to agent instructions only.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 15:01:55 +00:00
Snider
f202cfe218 feat(events): add reactive event hooks for store mutations
Watch/Unwatch API with buffered channels (cap 16) and wildcard matching,
OnChange callback hook for go-ws integration, non-blocking notify on
Set/SetWithTTL/Delete/DeleteGroup. ScopedStore events emit with full
prefixed group names. 16 new tests, race-clean, coverage 94.7% -> 95.5%.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 08:25:03 +00:00
Snider
6e150f80eb docs: flesh out Phase 3 event hooks task specs
Detailed spec for reactive notification system: Event types,
Watcher API with buffered channels, OnChange callback hook for
go-ws integration, notify() with non-blocking sends, ScopedStore
event passthrough, and 13-item test matrix.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 08:20:40 +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