docs(claude): #609 removal tombstones tracker + hub against late writers
v2-ci / build (push) Successful in 5m39s
v2-ci / unit-tests (push) Failing after 20m16s

Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
Joseph Doherty
2026-10-08 09:08:07 -04:00
parent b9e6802d27
commit d898262c4a
+6 -1
View File
@@ -1106,7 +1106,12 @@ host logger factory (wired in `DriverFactoryBootstrap`; the FOCAS and TwinCAT fa
`BadNotSupported`). `BadNotSupported`).
- **FOCAS / AbLegacy:** background loops are joined (≤ 5 s) on shutdown. - **FOCAS / AbLegacy:** background loops are joined (≤ 5 s) on shutdown.
- **Driver removal (#609):** removing a driver releases its capability-invoker pipelines and resilience - **Driver removal (#609):** removing a driver releases its capability-invoker pipelines and resilience
tracker, *then* evicts its telemetry snapshots. tracker, *then* evicts its telemetry snapshots. ⚠️ Both are **tombstoned**, not just cleared: the removed
child stops asynchronously and its in-flight subscribe/connect still completes through the invoker (and
emits Health) on the thread pool *after* `StopChild`, which used to resurrect the state — so a removed
driver's counters were republished forever. `Release` → tracker `Retire` and hub `Evict` ignore every later
write for that id until it is spawned again (`Create` → `Reinstate`, `SpawnChild` → `Readmit`). A
Watch/`Terminated` release would not work — the late writes land after the actor terminates.
## Library Preferences ## Library Preferences