Task · TSO-0063

Act on device-cache staleness during control-plane outages

Description

enrich.DeviceCache exports Age() for the enrich.cache_age gauge (internal/enrich/devicecache.go:542-547) but nothing degrades or marks hours-stale authoritative names during a control-plane outage - they serve as fresh forever. Decide and implement the staleness action (e.g. staleness attribute on enriched signals past a threshold, status-page warning, or configurable behaviour). Also verify whether Replace() dropping the whole unverified tier each poll (devicecache.go:200-219) visibly flaps labels for devices only ever seen via flow-embedded identity, and fix if so.

Acceptance Criteria

Definition of Done

Implementation Plan

Root F1 freezes the device-cache stale threshold with a non-disruptive default; lane D later implements observable stale behaviour and investigates unverified-tier replacement.

Lane D consumes the frozen device_cache_stale_after key to change outage behavior without broadening public seams, with telemetry and an assigned-tab panel.

Final Summary

Added observable device-cache staleness behavior across control-plane outages and verified that the unverified tier does not flap under the stale transition. Implementation SHA f35b6ab. Final integrated just check passed at 5b55617; exact-head CI run 33354208183 completed success.

View the source file on GitHub