mirror of
https://github.com/usestrix/strix.git
synced 2026-08-17 01:29:42 +02:00
Addresses Greptile review on the reconnect logic: - Host path had no reconnect: a dead shared context client (Caido restart / network blip) previously disabled proxy tools for the rest of the scan. Add SharedCaidoClient, a serialized reconnect-safe holder stored once per scan in the run context and shared across agents. On a dead transport it rebuilds via reconnect_caido, which re-selects the SAME Caido project (preserving captured traffic) instead of creating a new empty one. - Don't repeat completed mutations: call_with_client / SharedCaidoClient.call take idempotent=. Reads retry once on reconnect; replay + scope create/update/delete heal the client but re-raise instead of risking a double-apply. - Don't leak replaced clients: the stale client is aclose()d (best-effort) on every reconnect. - Extend tests to cover close-on-reconnect, non-idempotent re-raise, and the SharedCaidoClient holder.