diff --git a/docs/reverse-engineering/handoff.md b/docs/reverse-engineering/handoff.md index 4811321..108ec4b 100644 --- a/docs/reverse-engineering/handoff.md +++ b/docs/reverse-engineering/handoff.md @@ -87,6 +87,12 @@ reuses the proven 2020 WCF byte serializers/parsers unchanged inside protobuf server (markers `SdkSendProbe`/`SdkCaptureProbe` confirmed in returned rows). Golden-tested (`GrpcEventSendProtocolTests`) + gated live test (`SendEventAsync_OverGrpc_AcceptsEvent`, opt-in `HISTORIAN_GRPC_EVENT_SEND=1`). + **PERSISTENCE RESOLVED:** the earlier WCF/M2 caveat was "server accepts AddS2 but the local + dev box does NOT persist the event to `v_AlarmEventHistory2`" — we couldn't tell if that was an + SDK gap or the environment. The gRPC read-back against the live 2023 R2 server **proves the event + persists** (sent via the pure-managed SDK, then independently read back from the server's event + history). So non-persistence on the local box was purely the dev-box event-ingestion environment, + **not an SDK gap** — the event-send path (WCF and gRPC, same "OS" buffer) is durably correct. 4. **ExecuteSqlCommand over gRPC** — **server-walled** (`CSrvDbConnection`; RegisterTags prime doesn't help). Use WCF for SQL. 5. **R4.2 revision EDITS** — storage-engine-pipe-only on BOTH transports (the D2 wall). @@ -108,9 +114,9 @@ reuses the proven 2020 WCF byte serializers/parsers unchanged inside protobuf To move any remaining item you need a **server-side / connection-level angle** (item 1 — v8 event auth is solved; row retrieval is connection-gated, see the -NEXT SESSION section of `grpc-event-query-capture.md`), a **fresh native capture** -(SendEvent gRPC framing — item 3), a **different server** (SF-active for item 2), -or a **demand signal** to unlock a deferred item. +NEXT SESSION section of `grpc-event-query-capture.md`), a **different server** +(SF-active for item 2), or a **demand signal** to unlock a deferred item. +(SendEvent over gRPC — formerly item 3 — is now SHIPPED + live-validated.) Live-server gRPC probe recipe: set `HISTORIAN_GRPC_HOST`/`_PORT 32565`/`_TLS true`/`_DNSID` + domain creds (strip quotes — `reference_wonder_sql_vd03_credentials`) and run the gated