From ce48e6916202a8fc1086ed583b73ecbcc6b63dd6 Mon Sep 17 00:00:00 2001 From: Rafael Date: Fri, 28 Aug 2026 19:45:06 -0300 Subject: [PATCH] FIX: decode int64 as Number in the PipelineV2 gRPC client MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PipelineV2SinkTableOffset.committed_offset is int64. Without a `longs` option proto-loader decodes it as a Long.js object ({low,high,unsigned}), which then serialized to the frontend as an object and blew up the card's DecimalPipe (NG02100) on every 10s poll — the visible symptom was the raw/deduped layers flickering. Kafka offsets fit in 2^53, so `longs: Number` is exact and keeps the JSON a plain number. Co-Authored-By: WOZCODE --- src/modules/pipelinesV2/pipelines-client.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/pipelinesV2/pipelines-client.ts b/src/modules/pipelinesV2/pipelines-client.ts index 53c0442..6330104 100644 --- a/src/modules/pipelinesV2/pipelines-client.ts +++ b/src/modules/pipelinesV2/pipelines-client.ts @@ -25,6 +25,10 @@ export class PipelinesClientConfiguration { loader: { keepCase: true, enums: String, + // int64 fields (PipelineV2SinkTableOffset.committed_offset) decode as + // plain JS numbers instead of Long.js objects, so they serialize as + // JSON numbers for the frontend. Safe: Kafka offsets fit in 2^53. + longs: Number, objects: true, arrays: true, },