fix: resolve code-review findings (locally verified)
Server-054/055/056, Contracts-020/021/022, Tests-036/038/039, IntegrationTests-030/031/032 (+033 deferred to live rig), Client.Dotnet-026/028/029 (+027 won't-fix), Client.Go-030..034, Client.Python-032..036, Client.Rust-033..038. Key fix: SessionEventDistributor orphaned a subscriber that registered after the pump completed but before disposal (Server-056) -> register paths now complete late registrants under _lifecycleLock; regression test added. The racy dashboard-mirror gRPC test made deterministic (Tests-039). Verified green locally: gateway Tests targeted classes (GatewaySession, SessionEventDistributor, GatewayOptionsValidator, ProtobufContractRoundTrip, GatewaySessionDashboardMirror) + dotnet/go/python/rust client suites.
This commit is contained in:
+10
-5
@@ -1084,12 +1084,19 @@ Resolved for v1:
|
||||
|
||||
- MXAccess COM target is `ArchestrA.MxAccess.LMXProxyServerClass` /
|
||||
`LMXProxy.LMXProxyServer.1` from the installed 32-bit `LmxProxy.dll`.
|
||||
- One `OpenSession` maps to one worker process; no reconnectable sessions.
|
||||
- One active event subscriber per session.
|
||||
- One `OpenSession` maps to one worker process.
|
||||
- Reconnectable sessions: clients reconnect by re-issuing `StreamEvents` with
|
||||
`after_worker_sequence`; the gateway replays the retained ring tail and emits
|
||||
a `ReplayGap` sentinel when events were evicted. See `docs/Sessions.md`.
|
||||
- Multi-subscriber event fan-out: multiple concurrent `StreamEvents` callers on
|
||||
the same session are supported; single-subscriber mode uses fail-fast
|
||||
backpressure, multi-subscriber mode disconnects only the slow consumer. See
|
||||
`docs/Sessions.md`.
|
||||
- API key authentication with hashed keys in gateway-owned SQLite.
|
||||
- Basic Blazor Server dashboard with Bootstrap CSS/JS and real-time updates.
|
||||
- Workers run as the gateway service identity.
|
||||
- Event backpressure is fail-fast with bounded queues.
|
||||
- Event backpressure is fail-fast with bounded queues (single-subscriber) or
|
||||
per-subscriber disconnect (multi-subscriber).
|
||||
- No public command batching.
|
||||
- `OperationComplete` is forwarded only when native MXAccess raises it.
|
||||
- `OnBufferedDataChange` is modeled now; multi-sample payload conversion remains
|
||||
@@ -1098,8 +1105,6 @@ Resolved for v1:
|
||||
Post-v1 revisit items:
|
||||
|
||||
- production event-rate target and optional coalescing,
|
||||
- reconnectable sessions,
|
||||
- multi-subscriber event fan-out,
|
||||
- restricted worker process identity,
|
||||
- command batching for high-volume setup.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user