32ae301050
Continues closing the event-row gap after the v8 ExchangeKey/RC4 auth breakthrough. - HistorianGrpcHandshake: the v8 EVENT path skips StorageService.ValidateClientCredential (the native event connection authenticates purely via ExchangeKey + the RC4 token; running the Negotiate loop establishes a different session scope). - HistorianGrpcEventOrchestrator.RegisterCmEventTag: simplified to the exact native gRPC event sequence (UpdateClientStatus -> RegisterTags -> EnsureTags -> GetHistorianInfo -> GetSystemParameter x7), dropping the 2020-WCF-era cross-service GetV probes and params-before-register that the gRPC event flow does not use. eventCount 5 -> 100. - Opt-in diagnostics (RegistrationDiag, LastResultBufferHex/LastErrorBufferHex; gated EventReadDiagnostic test) for the continued investigation. STATUS: auth + StartEventQuery + registration all succeed live (RTag/EnsT=True, valid query handle), but GetNext returns version-11 rowCount-0 while the native returns 50 for a BYTE-IDENTICAL request. Every observable wire element matches the native. The remaining unknown is the string/uint HANDLE field VALUES the native uses per event RPC — the instrument-grpc capture logged only byte[] params, not the handle fields. Next: extend the IL rewrite to log strHandle/uiHandle/queryRequestType, re-capture, and match. 326/326 offline; gated test still pins the no-row throw. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B6mcaT2PjRFKcogzp9UkfC