test+docs(resilience): prove authored ResilienceConfig reaches the runtime pipeline (#456) #461

Merged
dohertj2 merged 2 commits from fix/456-resilience-config-artifact-roundtrip into master 2026-07-15 08:49:53 -04:00
Owner

Advances #456. The ResilienceConfig-in-artifact threading was already wired (task #13); the gap was test coverage of the real composer leg + a live re-verify with a non-default policy.

  • Adds ConfigComposerTests.ResilienceConfig_survives_ConfigComposer_to_ParseDriverInstances_round_trip: seeds a DriverInstance WITH a non-default override + one WITHOUT, runs the real SnapshotAndFlattenAsync, asserts ParseDriverInstances recovers the override byte-for-byte. Guards against a projection/[JsonIgnore] silently reverting to tier defaults.
  • Adds archreview/plans/artifacts/456-resilience-config-live-proof-2026-07-15.md: docker-dev capture proving a non-default Subscribe.retryCount:999 rode the artifact into BOTH central-1/2 runtimes (clamp diagnostic echoes the authored value) — follow-up #10 acceptance item 2, live on both nodes.

Item 1 (raw retry/breaker-on-fault log line) remains, needs a connect-then-idempotent-write (LDAP-gated) trigger; behaviour already proven deterministically.

ControlPlane.Tests ConfigComposerTests 6/6 green.

Advances #456. The ResilienceConfig-in-artifact threading was already wired (task #13); the gap was test coverage of the real composer leg + a live re-verify with a non-default policy. - Adds ConfigComposerTests.ResilienceConfig_survives_ConfigComposer_to_ParseDriverInstances_round_trip: seeds a DriverInstance WITH a non-default override + one WITHOUT, runs the real SnapshotAndFlattenAsync, asserts ParseDriverInstances recovers the override byte-for-byte. Guards against a projection/[JsonIgnore] silently reverting to tier defaults. - Adds archreview/plans/artifacts/456-resilience-config-live-proof-2026-07-15.md: docker-dev capture proving a non-default Subscribe.retryCount:999 rode the artifact into BOTH central-1/2 runtimes (clamp diagnostic echoes the authored value) — follow-up #10 acceptance item 2, live on both nodes. Item 1 (raw retry/breaker-on-fault log line) remains, needs a connect-then-idempotent-write (LDAP-gated) trigger; behaviour already proven deterministically. ControlPlane.Tests ConfigComposerTests 6/6 green.
dohertj2 added 2 commits 2026-07-15 08:49:42 -04:00
The arch-review #10 sub-gap worried that per-instance ResilienceConfig never
reaches the runtime pipeline. The threading is in fact wired end-to-end (task #13):
ConfigComposer serialises the whole DriverInstance entity, so ResilienceConfig
rides the artifact into DriverInstanceSpec, which DriverHostActor layers onto the
driver's Polly pipeline. The only leg with no test was the real composer->artifact
serialization — the existing DeploymentArtifactTests hand-build the JSON.

Adds ResilienceConfig_survives_ConfigComposer_to_ParseDriverInstances_round_trip
(mirrors the DeviceHost round-trip guard): seeds a DriverInstance WITH a non-default
override + one WITHOUT, runs the real SnapshotAndFlattenAsync, and asserts
ParseDriverInstances recovers the override byte-for-byte (and null stays null).
Guards against a future projection / [JsonIgnore] silently reverting authored
resilience policy to tier defaults while hand-built artifact tests stay green.

ControlPlane.Tests ConfigComposerTests 6/6 green.
docs(archreview): live proof authored ResilienceConfig reaches the runtime pipeline (#456)
v2-ci / build (pull_request) Successful in 4m17s
v2-ci / unit-tests (pull_request) Failing after 10m27s
0c005c9a72
Captures the docker-dev live verification for follow-up #10 acceptance item 2:
a non-default per-instance ResilienceConfig (Subscribe.retryCount:999) authored on
MAIN rode the deploy artifact into BOTH central-1/central-2 runtimes, which parsed
and clamped it — the authored value appears verbatim in the spawn-time diagnostic.
Confirms the artifact bytes carry ResilienceConfig and the runtime pipeline applies
authored (not tier-default) policy. Item 1 (raw retry/breaker-on-fault log line)
remains, with the connect-then-idempotent-write recipe documented.
dohertj2 merged commit b364a499e5 into master 2026-07-15 08:49:53 -04:00
Sign in to join this conversation.