Skip to content

fix(controller): absent telemetry must stay an untyped nil - #68

Merged
rldyourmnd merged 1 commit into
mainfrom
fix/absent-telemetry-is-nil-interface
Sep 1, 2026
Merged

fix(controller): absent telemetry must stay an untyped nil#68
rldyourmnd merged 1 commit into
mainfrom
fix/absent-telemetry-is-nil-interface

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

First live run of gds-controller on the estate: runtime loaded, state opened, one reconciliation succeeded, one backup landed — then panic: value method telemetry.Exporter.Flush called using nil *Exporter pointer every RestartSec. FromEnvironment returns a typed-nil *Exporter without GDS_OTLP_ENDPOINT; main stored it in the TelemetryFlusher interface field, defeating Service.Run's nil guard. The seam (telemetryFlusher) now keeps absence untyped; the test pins it. core/operations is unaffected (concrete-typed field).

https://claude.ai/code/session_01LsGid6U5RrQdFvJmvYdGCF

FromEnvironment yields a typed-nil *Exporter when GDS_OTLP_ENDPOINT is
unset, and main stored it straight into the service's TelemetryFlusher
interface -- so the nil guard passed, the flush loop spawned, and the
first tick panicked on a nil receiver. Measured live on the estate
controller's first real run: one successful reconciliation, one backup,
then a crash loop every ten seconds. The seam now keeps absence as an
untyped nil, and the test pins exactly that.

Claude-Session: https://claude.ai/code/session_01LsGid6U5RrQdFvJmvYdGCF
@rldyourmnd
rldyourmnd merged commit f0030d5 into main Sep 1, 2026
7 checks passed
@rldyourmnd
rldyourmnd deleted the fix/absent-telemetry-is-nil-interface branch September 1, 2026 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant