Virgil
9fb978dc75
refactor(ax): make docs and helpers example-driven
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
...
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
...
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
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
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
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
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