Commit graph

35 commits

Author SHA1 Message Date
Virgil
c95697e4f5 Sort local listings deterministically
Some checks are pending
CI / test (push) Waiting to run
CI / auto-fix (push) Waiting to run
CI / auto-merge (push) Waiting to run
2026-04-03 06:55:51 +00:00
Virgil
c713bafd48 refactor(ax): align remaining AX examples and names
Some checks failed
CI / test (push) Failing after 3s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 14:27:58 +00:00
Virgil
9dbcc5d184 refactor(ax): rename medium test variables and examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 14:00:33 +00:00
Virgil
50bb356c7c refactor(ax): align remaining AX naming surfaces
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 13:35:21 +00:00
Snider
702286a583 feat(ax): apply AX compliance sweep — usage examples and predictable names
Some checks failed
CI / test (push) Failing after 2s
CI / auto-merge (push) Failing after 0s
CI / auto-fix (push) Failing after 0s
- Add // Example: usage comments to all Medium interface methods in io.go
- Add // Example: comments to local, s3, sqlite, store, datanode, node medium methods
- Rename short variable `n` → `nodeTree` throughout node/node_test.go
- Rename short variable `s` → `keyValueStore` in store/store_test.go
- Rename counter variable `n` → `count` in store/store_test.go
- Rename `m` → `medium` in store/medium_test.go helper
- Remove redundant prose comments replaced by usage examples

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 12:19:56 +01:00
Virgil
b3d12ce553 refactor(ax): remove fileget/fileset compatibility aliases
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 2s
CI / auto-merge (push) Failing after 0s
Co-authored-by: Virgil <virgil@lethean.io>
2026-03-31 05:57:21 +00:00
Virgil
619f731e5e refactor(ax): align remaining semantic names
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 3s
CI / auto-merge (push) Failing after 0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 05:36:25 +00:00
Virgil
313b704f54 refactor(ax): trim test prose comments
Some checks failed
CI / test (push) Failing after 2s
CI / auto-merge (push) Failing after 0s
CI / auto-fix (push) Failing after 0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 05:30:25 +00:00
Virgil
32cfabb5e0 refactor(ax): normalize remaining usage examples
Some checks failed
CI / test (push) Failing after 3s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 1s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 05:10:35 +00:00
Virgil
347c4b1b57 refactor(ax): trim prose comments to examples
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 2s
CI / auto-merge (push) Failing after 0s
2026-03-30 23:02:53 +00:00
Virgil
f8988c51cb refactor(ax): tighten naming and comment surfaces
Some checks failed
CI / test (push) Failing after 4s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
2026-03-30 22:56:51 +00:00
Virgil
b80a162373 refactor(ax): rename placeholder test cases
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 3s
CI / auto-merge (push) Failing after 0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 22:52:35 +00:00
Virgil
3a5f9bb005 refactor(ax): encapsulate memory medium internals
Some checks failed
CI / test (push) Failing after 3s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
2026-03-30 22:47:27 +00:00
Virgil
fc34a75fb2 refactor(ax): continue AX surface alignment
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 3s
CI / auto-merge (push) Failing after 0s
2026-03-30 22:39:50 +00:00
Virgil
a8caedaf55 docs(local): convert constructor note to usage example
Some checks failed
CI / test (push) Failing after 3s
CI / auto-fix (push) Failing after 1s
CI / auto-merge (push) Failing after 1s
2026-03-30 22:33:41 +00:00
Virgil
0927aab29d refactor: align AX surfaces and semantic file names 2026-03-30 22:33:03 +00:00
Virgil
bab889e9ac refactor(ax): clarify core storage names
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 2s
CI / auto-merge (push) Failing after 0s
2026-03-30 21:39:03 +00:00
Virgil
a8eaaa1581 refactor(ax): tighten AX-facing docs
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 3s
CI / auto-merge (push) Failing after 0s
2026-03-30 21:29:35 +00:00
Virgil
16d968b551 refactor(ax): make public docs example-driven
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 2s
CI / auto-merge (push) Failing after 0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 21:23:35 +00:00
Virgil
48c328f935 refactor(ax): tighten names and ipc keys
Some checks failed
CI / test (push) Failing after 3s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 1s
2026-03-30 21:04:19 +00:00
Virgil
9fb978dc75 refactor(ax): make docs and helpers example-driven
Some checks failed
CI / test (push) Failing after 2s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
2026-03-30 20:47:41 +00:00
Virgil
b19617c371 refactor(ax): prune redundant api comments
Some checks failed
CI / test (push) Failing after 2s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 20:42:44 +00:00
Virgil
518309a022 refactor(ax): add explicit node traversal options
Some checks failed
CI / test (push) Failing after 2s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 20:37:40 +00:00
Virgil
d900a785e7 refactor(ax): replace placeholder doc comments
Some checks failed
CI / auto-fix (push) Failing after 0s
CI / test (push) Failing after 2s
CI / auto-merge (push) Failing after 0s
2026-03-30 20:31:12 +00:00
Virgil
0cb59850f5 refactor(ax): expand remaining API names
Some checks failed
CI / test (push) Failing after 3s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
2026-03-30 20:18:30 +00:00
Virgil
1743b9810e refactor(ax): remove remaining short names
Some checks failed
CI / test (push) Failing after 2s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
2026-03-30 20:10:24 +00:00
Virgil
5f780e6261 refactor(ax): normalize remaining agent-facing names
Some checks failed
CI / test (push) Failing after 4s
CI / auto-fix (push) Failing after 0s
CI / auto-merge (push) Failing after 0s
2026-03-30 20:04:09 +00:00
Virgil
514ecd7e7a fix(io): enforce ax v0.8.0 polish spec
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 06:24:36 +00:00
Virgil
238d6c6b91 chore(ax): align imports, tests, and usage comments
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 06:22:48 +00:00
Virgil
6b74ae2afe fix(io): address audit issue 4 findings
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 06:21:35 +00:00
Snider
f3f741c0a7 feat(security): add WriteMode to Medium interface for file permissions
Codex security review found that migrating os.WriteFile(path, data, 0600)
to coreio.Local.Write() changed permissions from owner-only to world-readable
(0644). This is a security regression for encryption output, private keys,
and auth hashes.

WriteMode(path, content, mode) allows callers to specify permissions.
Write() remains the default (0644) for non-sensitive files.

Affected implementors updated: local.Medium, MockMedium, Node, datanode.Medium.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:23:31 +00:00
Snider
e743cd927d fix(errors): replace fmt.Errorf with coreerr.E() in store, local, and s3
Standardise error handling in store/store.go, store/medium.go,
local/client.go, and s3/s3.go to use coreerr.E() from go-log,
matching the pattern used across the rest of the codebase.
Remove now-unused "fmt" imports from store packages and s3.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 18:19:50 +00:00
Snider
ef5437b207 fix: use UK English spelling throughout
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 10:10:46 +00:00
Snider
af78c9db18 fix: improve Delete safety guard and init resilience
- Replace arbitrary len<3 check with explicit root/home protection
- Return error instead of nil on protected path deletion
- Handle init() failure gracefully instead of panicking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:21:28 +00:00
Snider
ea2343892c feat: standalone io.Medium abstraction
Universal I/O interface extracted from core/go.
Backend-agnostic file operations — local, S3, SQLite, DataNode, Sigil.

- io.Medium: Read/Write/Delete/List/Stat/Rename
- local: filesystem backend
- s3: AWS S3 backend
- sqlite: SQLite-backed virtual filesystem
- datanode: Borg DataNode in-memory fs (snapshot/restore)
- node: composite medium with routing
- sigil: content-addressed storage with crypto hashes

Depends on core/go-log for E() errors, zero core/go dependency.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 09:31:28 +00:00