Expose rate-limit state and the resume signal on the session and fleet; per-class backoff; jitter test (§5) #151
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Review finding 2026-08-27 (C2).
NetworkPolicyEngine.rateLimitState: StateFlowandresumeConnectivity()exist but the engine is built privately inconnect()(KatrixSession.kt:126,742); nothing onKatrixSession/AppserviceFleetexposes them andresumeConnectivity()has zero production callers.BackoffConfigis global, not per endpoint class; no jitter test.Acceptance (§5 "public reactive rate-limit state", "resume signal", "per class backoff"): surfaced on session + fleet (and in the golden metrics-exporter sample), per-class backoff config, tests for each.
Hook landed with #134 / D81 (commit
f624a99):KatrixSession.connect(policy: NetworkPolicyEngine = NetworkPolicyEngine(httpPort))mirrors the fleet's seam, so a consumer-built engine (customNetworkPolicyConfig) now reaches the session;NetworkPolicyEnginealso implements the newRetryPolicy(retryDelay/awaitRetry) that the sync loop and send worker use. ExposingrateLimitState/resumeConnectivity()on session + fleet, per-classBackoffConfig, and the jitter test remain this issue's scope (a basic ±20 % jitter assertion exists inNetworkPolicyEngineTest.retryDelayPrefersServerDelayElseComputedBackoff).