Commit graph

11 commits

Author SHA1 Message Date
Snider
7aaa2154b6 test(release): Phase 3 — publisher integration, SDK generation, breaking change detection
Publisher integration tests (48 tests): dry-run verification for all 8 publishers
(GitHub, Docker, Homebrew, Scoop, AUR, Chocolatey, npm, LinuxKit), command building,
config parsing, repository detection, artifact handling, cross-publisher name
uniqueness, nil relCfg handling, checksum mapping, interface compliance.

SDK generation tests (38 tests): orchestration, generator registry, interface
compliance for all 4 languages (TypeScript, Python, Go, PHP), config defaults,
SetVersion, spec detection priority across all 8 common paths.

Breaking change detection tests (30 tests): oasdiff integration covering
add/remove endpoints, required/optional params, response type changes,
HTTP method removal, identical specs, multiple breaking changes, JSON format
support, error handling, DiffExitCode, DiffResult structure.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 05:28:20 +00:00
Snider
50ad540241 feat(infra): Phase 2 — API client abstraction, retry logic, rate limiting
Extract shared APIClient from HCloudClient/HRobotClient/CloudNSClient with
configurable retry (exponential backoff + jitter), 429 rate-limit handling
(Retry-After header), and functional options (WithHTTPClient, WithRetry,
WithAuth, WithPrefix). 30 new client_test.go tests covering retry exhaustion,
rate-limit queuing, context cancellation, and integration with all 3 providers.
DigitalOcean: no code existed, removed stale doc references. 66 infra tests
pass, race-clean.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 04:11:08 +00:00
Snider
c8615ce61e docs(todo): mark Phase 1 complete — 438 ansible tests
All 5 steps done: SSH mock, command, file, service/package,
user/group/advanced, and error/become/facts/idempotency modules.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 02:58:50 +00:00
Snider
ecd01b1efd docs(todo): mark Phase 1 Step 1.4 complete (427929f)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 02:53:00 +00:00
Snider
54974bd283 docs(todo): mark Phase 1 Step 1.3 complete (9638e77)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 02:45:09 +00:00
Snider
7e4e917272 docs(todo): mark Phase 1 Step 1.2 complete (c7da9ad)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 02:39:56 +00:00
Snider
fd46e82297 docs(todo): mark Phase 1 Steps 1.0-1.1 complete (3330e55)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 02:32:15 +00:00
Snider
17b9e32df2 docs: refine Phase 1 with 40-module audit and mock SSH strategy
Analysis found 40 modules in modules.go (1,434 LOC) with zero tests.
Broken into 5 steps: mock infrastructure, command execution (4),
file operations (6), service/package (7), advanced (10), plus
error propagation and become/sudo testing.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 02:09:44 +00:00
Snider
b3954c808b docs: mark Phase 0 as complete in TODO.md
All 6 Phase 0 items done:
- ansible/ tests (6e346cb)
- infra/ tests (6e346cb)
- build/ tests (5d22ed9)
- release/ tests + linuxkit nil fix (5d22ed9)
- Race condition tests (6e346cb)
- go vet clean (6e346cb)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 01:59:04 +00:00
Snider
7708f8fddd docs(devops): update TODO.md Phase 0 completion status
Mark ansible/ and infra/ tests as done, race detection clean,
go vet fixed. Note pre-existing LinuxKit nil pointer crash.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 01:38:18 +00:00
Snider
9b55b97b28 docs: add domain expert guide, task queue, and research notes
CLAUDE.md: architecture guide for ansible/build/infra/release (29K LOC)
TODO.md: 5-phase task queue (test coverage, ansible, infra, release, devkit)
FINDINGS.md: package inventory, test gaps, config ecosystem

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 00:59:01 +00:00