Commit graph

3 commits

Author SHA1 Message Date
Snider
9a24df3d5f refactor: replace fmt.Errorf and errors.New with coreerr.E from go-log
Replace all remaining fmt.Errorf and errors.New calls in production code
with structured coreerr.E(op, msg, err) from forge.lthn.ai/core/go-log.
Covers 10 files across the infra package and cmd/prod and cmd/monitor.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 20:38:10 +00:00
Snider
6beb06686a refactor(config): replace os.ReadFile with coreio.Local.Read
Use the go-io Medium abstraction instead of os.ReadFile in Load().

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 18:31:36 +00:00
Snider
11e32fe965 feat: extract infra package from go-devops
Standalone infrastructure provider APIs: Hetzner Cloud, Hetzner Robot,
CloudNS DNS, and YAML infrastructure configuration parser. Shared HTTP
client with retry, exponential backoff, and rate-limit handling.

69 tests passing with race detector. Zero framework dependencies.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 11:34:52 +00:00