The exception-dashboard showed a "Live updates unavailable" error banner
immediately on page load because the SSE event stream endpoint returns an
error on fresh installs. The SSE stream is a live-update enhancement, not
critical functionality. Silently degrade when the stream is unavailable
instead of showing an alarming error banner.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root cause: derToJoseSignature() used bytes[0]===0x30 to detect DER format,
but raw P1363 ECDSA signatures have a ~1/256 chance of their first byte
being 0x30, causing spurious DER parse attempts and "expected INTEGER for r"
errors. This broke DPoP proof generation intermittently, failing console
context loads on random pages.
Fix: detect raw P1363 by checking byte length matches expected curve size
(64 for ES256, 96 for ES384) before inspecting content bytes. Only attempt
DER parsing after full structural validation confirms SEQUENCE+INTEGER
structure. Also pass componentSize from the algorithm so ES384 signatures
are handled correctly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Valkey messaging transport auto-reconnection:
- MessagingTransportClient: detect persistent Redis failures (5 consecutive)
and exit processing loops instead of retrying forever with dead connection
- IMicroserviceTransport: add TransportDied event to interface
- RouterConnectionManager: listen for TransportDied, auto-reconnect after 2s
- Fixes services becoming unreachable after Valkey blip during restarts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Plugin assemblies loaded via PluginHost into isolated AssemblyLoadContexts
produce distinct types even from the same DLL. When AppDomain.GetAssemblies()
returns both Default and plugin-ALC copies, DI registration and IOptions<T>
resolution silently fail (e.g. ValkeyTransportOptions defaulting to localhost).
Applied AssemblyLoadContext.Default filter to all 7 assembly discovery sites:
- MessagingServiceCollectionExtensions (transport plugin scan)
- StellaRouterIntegrationHelper (transport plugin loader)
- Gateway.WebService Program.cs (startup transport scan)
- GeneratedEndpointDiscoveryProvider (endpoint provider scan)
- ReflectionEndpointDiscoveryProvider (endpoint attribute scan)
- ServiceCollectionExtensions (schema provider scan)
- MigrationModulePluginDiscovery (migration plugin scan)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>