chore(config): add runtime configuration updates - #1977
Conversation
This comment has been minimized.
This comment has been minimized.
Regression Detector (Agent Data Plane)Run ID: Optimization Goals: ✅ No significant changes detectedFine details of change detection per experiment (5)Experiments configured
Bounds Checks: ✅ Passed (5)
ExplanationA change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression ( |
Binary Size Analysis (Agent Data Plane)Baseline: 2715682 · Comparison: 7f68a1a · diff ✅ Binary size difference within thresholdChanges by Module
Detailed Symbol Changes |
34ab993 to
6336e2b
Compare
8b5e25b to
fd414f4
Compare
55eedc5 to
5ca1e2d
Compare
1bae649 to
2e3fcbf
Compare
|
I removed the integration with This push removes the |

Human Summary
Adds a typed configuration update subscription mechanism, known as
Live<T>.The contract is to get a Live from the type system like this:
Then you put
live.changes()in your tokioselect!AI Summary
Adds the typed runtime configuration library and
Live<T>view without wiring it into the Agent Data Plane binary.Configuration system
The new
agent-data-plane-config-systemcrate translates two configuration sources into the ADP-nativeSalukiConfigurationmodel:ConfigurationSystem:GenericConfigurationinto a complete typed configurationArcSwapLive view of the configuration
Live<T>inagent-data-plane-configprovides a typed view over a projection ofSalukiConfiguration:Live::fixedcreates a value that never changesLive::dynamictracks a shared configuration snapshotcurrent()returns the latest projected valueDerefreads the view's latest snapshotchanged()waits for the projected value to changeproject()narrows a view to a child node or fieldThe view uses
ArcSwapfor consistent snapshots and a Tokiowatchchannel for update notifications. A view only wakes its consumer when its projected value changes.This PR is library-only. It does not modify
bin/agent-data-plane, wire the configuration system into startup, add the/config/internalendpoint, or add integration-test coverage. Those changes are deferred to PR-3b, where environment handling and runtime wiring will be addressed together.Change Type
How did you test this PR?
make check-clippyagent-data-plane-config-systemcover startup translation, translation errors, update convergence, projections, field-level live views, fixed views, and startup values.No integration test is included in this PR because the Agent Data Plane wiring is deferred to PR-3b.
References