catalog.allowedReport returns the allowed lists together with the first provider error. Widening (stateful) and the stateless refresh leave the cached server and its recorded fingerprint untouched on an error, so the next request retries instead of the tools staying hidden until the next rotation or event. A fan-out recompute still applies its fail-closed diff but records no fingerprint, so the binding's next request re-filters. TestWideningGuardError fails the guard during a widening on both paths and during a permissions recompute, then asserts that the next request lists every tool once the provider answers again.
10 KiB
10 KiB