Skip to content

v1.16.0 — content-aware NO_PROGRESS dedupe (P2 Phase B)

Choose a tag to compare

@qmt qmt released this 30 Apr 20:48
· 42 commits to main since this release
42109b9

Highlights

The v1.14.4 threshold bump (3 → 5) was a stop-gap. v1.16.0 ships the planned Phase B content-aware refactor:

Same call signature counts toward the no-progress threshold ONLY if no read_file against an unseen path happened between repeats. If filesReadSet grew between identical signatures, count resets to 1 — the model is exploring, not stuck.

Closes today's empirical regression where Gemini 3 Pro under HIGH thinking re-runs the same grep while ALSO reading new files between iterations. That IS progress; the simple counter (v1.14.4) tripped before maxIterations. Phase B distinguishes "exploring with repeated lookups" from "genuinely stuck".

Changes

  • signatureCounts Map type changed <string, number> → <string, { count: number; lastFilesReadSize: number }>.
  • Per-iter snapshot of filesReadSet.size taken once after tool execution; used to decide reset-vs-increment per signature.
  • AA1 fix folded (3-of-3 cross-corroborated TP HIGH, grok escalated): within-iter parallel duplicates dedupe via Set BEFORE counting. Pathological 5× same signature in one batch counts as +1, not +5.
  • Threshold (5) unchanged. Hard caps unchanged.
  • Error message updated: "... repeated N times without new file reads between repeats".

Tests

759 passed | 9 skipped (was 756 in v1.15.3 — +3 net new test cases). Lint + typecheck green on Node 22 + Node 24.

Compatibility

No API/schema change. Behaviour change observable only in dedupe-trip decision: agentic calls that previously bailed at NO_PROGRESS while reading new files now run to completion (or to maxIterations + rescue).

Future-proof note

read_file is the sole progress oracle because ask_agentic's tool surface is intentionally read-only. When a future PR adds workspace-mutating tools (write_file, terminal exec), the oracle MUST be expanded — guidance documented in code.

Install

npm install -g @qmediat.io/gemini-code-context-mcp@1.16.0