docs(handoff): re-characterize gRPC event-row gate — capture-gated, not server-gated
Live SQL ground truth (user-authorized one-time read via SOCKS->SQL relay) disproves the gate on the open gRPC event-row item. The live 2023 R2 server IS event-bearing — Runtime.dbo.Events holds 19,356 rows in the last 30 days (90,944 in 365) — yet the empty-filter gRPC event query still returns zero rows and long-polls to the deadline over that same window. So GetNextEventQueryResultBuffer returning nothing is NOT "no events on the server"; the empty-filter request shape (filter / namespace / event-tag registration) doesn't match existing rows. The remaining work is a fresh native gRPC event-query capture of the stock client, not access to a different server. - handoff.md: rewrite open-item #1 with the SQL numbers + capture-gated framing; update the "to move any item" summary to match. - HistorianGrpcIntegrationTests: correct the event-read test comment (drop the false "idle dev box holds no events" rationale; document 19k-events-yet-zero-rows). No behavior change (test edit is comment-only). Sanitization scan clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B6mcaT2PjRFKcogzp9UkfC
This commit is contained in:
@@ -39,8 +39,17 @@ reuses the proven 2020 WCF byte serializers/parsers unchanged inside protobuf
|
||||
**Everything still open is gated — none is a pure-code task:**
|
||||
|
||||
1. **gRPC event ROW retrieval** (`ReadEventsAsync` #2) — chain + StartEventQuery
|
||||
work; `GetNextEventQueryResultBuffer` long-polls on no data. Needs an
|
||||
**event-bearing 2023 R2 server**. Bounded ≤30s, throws on no-row.
|
||||
work; `GetNextEventQueryResultBuffer` long-polls and returns zero rows.
|
||||
**Re-characterized 2026-06-22: this is capture-gated, NOT server-gated.** The
|
||||
earlier "needs an event-bearing 2023 R2 server" assumption is **disproven** —
|
||||
the live 2023 R2 server *is* event-bearing (SQL ground truth via the INSQL
|
||||
linked server: `Runtime.dbo.Events` = 19,356 rows in the last 30 days /
|
||||
90,944 in 365 days), yet the **empty-filter** gRPC event query still yields
|
||||
zero rows over that exact 30-day window and long-polls to the deadline. So
|
||||
the gap is in the empty-filter request shape (filter / namespace / event-tag
|
||||
registration), not data availability. Needs a **fresh native gRPC
|
||||
event-query capture** to see what the stock 2023 R2 client sends. Bounded
|
||||
≤30s, throws on no-row.
|
||||
2. **R4.3 active-SF magnitude** — needs an **SF-active server** (D2 storage-engine
|
||||
console handle).
|
||||
3. **SendEvent over gRPC** — **capture-gated**: no distinct RPC, framing uncaptured.
|
||||
@@ -58,9 +67,10 @@ reuses the proven 2020 WCF byte serializers/parsers unchanged inside protobuf
|
||||
8. **Deferred-by-design** items (`write-commands` D1–D3, non-analog tag create,
|
||||
etc.) — bounded out until an explicit customer/user demand signal.
|
||||
|
||||
To move any remaining item you need a **different server** (event-bearing or
|
||||
SF-active), a **fresh native capture** (SendEvent gRPC framing), or a **demand
|
||||
signal** to unlock a deferred item. Live-server gRPC probe recipe: set
|
||||
To move any remaining item you need a **fresh native capture** (gRPC event-query
|
||||
empty-filter framing — item 1; SendEvent gRPC framing — item 3), a **different
|
||||
server** (SF-active for item 2), or a **demand signal** to unlock a deferred
|
||||
item. 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
|
||||
`HistorianGrpcIntegrationTests`.
|
||||
|
||||
Reference in New Issue
Block a user