Diego Rodrigues de Sa e Souza
c089ca9d1a
fix(compression): surface silently-dropped stacked-pipeline steps and fix inflation-guard no-op misfire ( #6479 , #6480 , #6491 ) ( #6901 )
...
Two related root causes in the stacked compression pipeline:
- #6479/#6491: a dispatched step whose engine legitimately finds nothing
eligible (session-dedup with no repeated blocks, ccr below its min-chars
threshold) returns `{ stats: null }`. `mergeStackStep()` silently dropped
that step from `engineBreakdown` with zero trace — no warning, no error.
Now records a `"<engine>: skipped (no eligible content)"` validation
warning for any null-stats step, covering every engine that follows this
convention (session-dedup, ccr, headroom, relevance, llm, llmlingua,
ionizer, readLifecycle), not just the two reported.
- #6480 : `finalizeStackedResult` ran the aggregate `guardPipelineInflation`
check unconditionally, even when the loop-level `compressed` flag stayed
false (no step ever advanced `currentBody`). Since tokens are trivially
equal when nothing ran, the guard mislabeled a genuine no-op as
`fallbackApplied: true` with a misleading "reverted to original" warning.
Extracted the guard into `applyStackedInflationGuard()` in
`pipelineGuards.ts` (keeps `strategySelector.ts` under its frozen line
budget) and gated it on `compressed === true`.
Also fixes `compression-pipeline-inflation-guard.test.ts`'s wire test,
which passed a bare engine-id string to the pipeline; `normalizePipelineStep()`
only recognizes a fixed set of built-in string aliases and silently
downgrades any other string to `{ engine: "caveman" }`, so the test's
custom inflating engine was never actually exercised. Passing a step object
restores the test's original intent.
New regression tests: tests/unit/compression/repro-6479-6491-null-stats-silent-drop.test.ts,
tests/unit/compression/repro-6480-noop-guard-misfire.test.ts.
2026-07-11 11:21:52 -03:00
..
2026-05-03 00:37:08 -03:00
2026-06-22 03:17:02 -03:00
2026-06-22 03:17:02 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-20 07:09:43 -03:00
2026-04-28 16:58:17 +07:00
2026-06-19 06:49:01 -03:00
2026-06-30 06:54:29 -03:00
2026-06-15 03:32:11 -03:00
2026-05-08 17:35:43 -03:00
2026-07-02 10:47:13 -03:00
2026-06-20 07:09:43 -03:00
2026-04-30 17:07:39 -03:00
2026-04-27 20:00:08 +07:00
2026-06-09 22:57:12 -03:00
2026-04-27 20:00:08 +07:00
2026-05-02 04:51:38 -03:00
2026-04-28 04:20:46 +07:00
2026-04-27 20:00:08 +07:00
2026-05-03 09:14:20 -03:00
2026-05-14 23:46:57 -03:00
2026-06-14 18:02:36 -03:00
2026-06-19 06:49:01 -03:00
2026-07-02 10:47:13 -03:00
2026-07-02 10:47:13 -03:00
2026-06-28 06:58:29 -03:00
2026-06-28 06:58:29 -03:00
2026-07-10 18:05:55 -03:00
2026-06-27 09:07:12 -03:00
2026-05-02 12:57:37 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-05-03 15:34:15 -03:00
2026-06-21 08:56:51 -03:00
2026-06-23 03:08:29 -03:00
2026-05-03 12:38:21 -03:00
2026-05-03 14:06:37 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-14 10:45:22 -03:00
2026-05-03 12:38:21 -03:00
2026-05-03 12:38:21 -03:00
2026-06-17 19:26:32 -03:00
2026-06-17 02:43:21 -03:00
2026-07-02 10:47:13 -03:00
2026-06-21 08:56:51 -03:00
2026-06-21 08:56:51 -03:00
2026-05-03 00:37:08 -03:00
2026-06-28 06:58:29 -03:00
2026-06-19 06:49:01 -03:00
2026-06-21 08:56:51 -03:00
2026-06-30 06:54:29 -03:00
2026-06-17 02:43:21 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-19 06:49:01 -03:00
2026-06-20 07:09:43 -03:00
2026-04-28 16:58:17 +07:00
2026-06-29 08:40:06 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-06-29 08:40:06 -03:00
2026-07-08 07:56:44 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-20 07:09:43 -03:00
2026-06-16 09:12:35 -03:00
2026-06-07 07:20:02 -03:00
2026-07-02 10:47:13 -03:00
2026-06-17 02:43:21 -03:00
2026-06-17 02:43:21 -03:00
2026-06-23 17:06:18 -03:00
2026-06-27 09:07:12 -03:00
2026-06-17 02:43:21 -03:00
2026-06-19 06:49:01 -03:00
2026-05-03 09:14:20 -03:00
2026-06-20 07:09:43 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-05-14 21:24:05 -03:00
2026-06-20 07:09:43 -03:00
2026-07-08 07:56:44 -03:00
2026-07-08 07:56:44 -03:00
2026-07-08 07:56:44 -03:00
2026-07-08 07:56:44 -03:00
2026-07-08 07:56:44 -03:00
2026-07-08 07:56:44 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-09 15:56:24 -03:00
2026-07-02 10:47:13 -03:00
2026-05-03 09:14:20 -03:00
2026-07-02 10:47:13 -03:00
2026-06-25 13:17:40 -03:00
2026-07-02 10:47:13 -03:00
2026-07-02 10:47:13 -03:00
2026-07-07 20:17:34 -03:00
2026-07-10 15:08:30 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-27 09:07:12 -03:00
2026-06-28 06:58:29 -03:00
2026-04-28 16:58:17 +07:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-07-02 10:47:13 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-07-11 11:21:52 -03:00
2026-07-11 11:21:52 -03:00
2026-06-21 08:56:51 -03:00
2026-06-29 08:40:06 -03:00
2026-06-27 09:07:12 -03:00
2026-06-28 06:58:29 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-21 08:56:51 -03:00
2026-06-22 03:17:02 -03:00
2026-05-08 17:35:43 -03:00
2026-06-29 08:40:06 -03:00
2026-06-17 19:26:32 -03:00
2026-06-14 10:45:22 -03:00
2026-05-03 00:37:08 -03:00
2026-05-03 00:37:08 -03:00
2026-06-14 10:45:22 -03:00
2026-05-03 00:37:08 -03:00
2026-05-03 09:14:20 -03:00
2026-06-25 13:17:40 -03:00
2026-05-03 00:37:08 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-06-19 06:49:01 -03:00
2026-06-14 10:45:22 -03:00
2026-06-20 07:09:43 -03:00
2026-06-14 10:45:22 -03:00
2026-05-03 00:37:08 -03:00
2026-06-27 09:07:12 -03:00
2026-07-02 10:47:13 -03:00
2026-05-03 00:37:08 -03:00
2026-06-19 06:49:01 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-05-03 00:37:08 -03:00
2026-06-19 06:49:01 -03:00
2026-06-14 10:45:22 -03:00
2026-05-03 00:37:08 -03:00
2026-05-03 09:14:20 -03:00
2026-07-06 23:53:52 -03:00
2026-06-19 06:49:01 -03:00
2026-06-27 09:07:12 -03:00
2026-06-28 06:58:29 -03:00
2026-06-29 08:40:06 -03:00
2026-06-30 06:54:29 -03:00
2026-07-07 20:08:27 -03:00
2026-04-27 03:53:05 +07:00
2026-06-20 07:09:43 -03:00
2026-06-21 08:56:51 -03:00
2026-04-28 16:58:17 +07:00
2026-04-28 16:58:17 +07:00
2026-06-28 06:58:29 -03:00
2026-05-03 00:37:08 -03:00
2026-06-23 17:06:18 -03:00
2026-06-23 17:06:18 -03:00
2026-06-19 06:49:01 -03:00
2026-05-06 02:29:25 -03:00