From 9dd0a1f2d07b87d5c426c49db48e023a2d3ad133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ng=C3=B4=20Quang=20H=C3=B2a?= Date: Tue, 26 May 2026 15:44:22 +0700 Subject: [PATCH] fix(etl): exclude technique-jsonb fields from metric auto-capture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `max_num_batched_tokens` and `num_speculative_tokens` are TECHNIQUE_KEYS extracted into BenchmarkParams.techniques by parseTechniques. But they weren't in NON_METRIC_KEYS, so benchmark-mapper's metrics loop ALSO captured them as numeric metrics, producing: [WARN] auto-captured unexpected metric 'max_num_batched_tokens' — add to METRIC_KEYS … or NON_METRIC_KEYS Net effect: same value in both `techniques` and `metrics` JSONB columns. Wasted space and a confusing warning. Add all technique-flag artifact keys to NON_METRIC_KEYS so they live only in techniques. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/db/src/etl/benchmark-mapper.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/db/src/etl/benchmark-mapper.ts b/packages/db/src/etl/benchmark-mapper.ts index d95ff220a..0fdeefccd 100644 --- a/packages/db/src/etl/benchmark-mapper.ts +++ b/packages/db/src/etl/benchmark-mapper.ts @@ -44,6 +44,10 @@ const NON_METRIC_KEYS = new Set([ // techniques (legacy + new-shape) — extracted into BenchmarkParams.techniques 'spec_decoding', 'techniques', + 'num_speculative_tokens', + 'max_num_batched_tokens', + 'kv_cache_dtype', + 'prefix_cache', // v1 parallelism 'tp', 'ep',