Task · TSO-0064

rdns warm-start snapshot across restarts

Description

internal/rdns cold-starts on every restart, flapping flow endpoint labels to external until PTRs re-resolve - the exact flap the stale-TTL engineering (#297) exists to prevent. Persist a small bounded addr/name/expiry snapshot beside the checkpoint file, loaded on startup, honouring existing TTL semantics (expired entries not resurrected).

Acceptance Criteria

Definition of Done

Implementation Plan

Wave 2 Rule Zero choice: use a deterministic checkpoint-adjacent RDNS snapshot path instead of adding a configurable key. This is the narrowest reversible option and avoids a config key that might survive unwired.

Implementation Notes

Latitude deviation: the run contract called for one commit per feature, but root retained the already-integrated shared-tree feature commit fa6a465 plus review-fix commit a18a5dd rather than performing prohibited destructive history surgery after integration and push. All task evidence is tied to the verified implementation head a18a5dd06f9ac9c8b84fda73bba653ded2398d5a.

Final Summary

Added deterministic checkpoint-adjacent RDNS warm-start snapshots for unexpired positive PTR names only; negative cache entries remain memory-only. Verified by restart, expiry, corruption, and negative-entry tests, final just check, and exact-head CI run 33322449434 at a18a5dd06f9ac9c8b84fda73bba653ded2398d5a (success).

View the source file on GitHub