cli/pkg/io
Vi 4e2327b0c9
feat(io): add S3 and SQLite Medium backends (#347) (#355)
Implement two new storage backends for the io.Medium interface:

- pkg/io/s3: S3-backed Medium using AWS SDK v2 with interface-based
  mocking for tests. Supports prefix-based namespacing via WithPrefix
  option. All 18 Medium methods implemented with proper S3 semantics
  (e.g. EnsureDir is no-op, IsDir checks prefix existence).

- pkg/io/sqlite: SQLite-backed Medium using modernc.org/sqlite (pure Go,
  no CGo). Uses a single table schema with path, content, mode, is_dir,
  and mtime columns. Supports custom table names via WithTable option.
  All tests use :memory: databases.

Both packages include comprehensive test suites following the _Good/_Bad/_Ugly
naming convention with 87 tests total (36 S3, 51 SQLite).

Co-authored-by: Claude <developers@lethean.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 20:45:45 +00:00
..
local feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00
node feat(io): add Node in-memory filesystem (port from Borg DataNode) (#343) (#352) 2026-02-05 20:30:23 +00:00
s3 feat(io): add S3 and SQLite Medium backends (#347) (#355) 2026-02-05 20:45:45 +00:00
sigil feat(io): add Sigil composable transform framework (port from Enchantrix) (#345) (#353) 2026-02-05 20:30:26 +00:00
sqlite feat(io): add S3 and SQLite Medium backends (#347) (#355) 2026-02-05 20:45:45 +00:00
bench_test.go fix: restore packages accidentally deleted during PR #313 rebase (#333) 2026-02-05 11:16:23 +00:00
client_test.go feat: infrastructure packages and lint cleanup (#281) 2026-02-04 11:34:43 +00:00
io.go feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00