Skip to content

fix(proxies): share the refusal store across duplicated server module copies - #15316

Open
maxmad64bis wants to merge 1 commit into
diegosouzapw:release/v3.8.52from
maxmad64bis:fix/refusal-store-shared-state
Open

maxmad64bis wants to merge 1 commit into
diegosouzapw:release/v3.8.52from
maxmad64bis:fix/refusal-store-shared-state

Conversation

@maxmad64bis

@maxmad64bis maxmad64bis commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ base-red inherited: #15306

Summary

The server bundle can hold several copies of the refusal store, one per module graph, so failures recorded by the patched global fetch never reached the account rotation that reads the store: repeated connection resets through one egress kept serving it. The store and its listener list now live in one process-wide object, the pattern already used for the fetch capture context.

Related Issues

Validation

  • Change type: routing
  • Focused tests and category gates from the golden path
  • npm run lint
  • Reconciled with the current active release base; focused checks rerun afterward
  • Production-code changes include a new or updated automated test in this PR

Tests Added Or Updated

  • tests/unit/proxy-refusal-memory-single-instance.test.ts (new, 4 cases: distinct modules witness, cross-copy set-aside visibility, cross-copy transport evidence, cross-copy slow evidence)
  • tests/unit/proxy-transition-bridge-single-emit.test.ts (new, 1 case: two bridge copies, one proxy.set_aside emission)

Coverage Notes

  • open-sse/utils/proxyRefusalMemory.ts: covered by the single-instance tests (cross-copy reads after writes through another copy)
  • open-sse/utils/proxyTransitionListeners.ts: covered by both new test files (shared listener set, idempotent keyed subscription)
  • src/lib/proxyEvents/proxyTransitionBridge.ts: covered by the single-emit test (stable subscription key)

Reviewer Notes

@maxmad64bis
maxmad64bis force-pushed the fix/refusal-store-shared-state branch from d48968a to 285b96b Compare October 4, 2026 12:37

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant