|
| 1 | +# REQ — Deprecate `minContextLimit` (and `modelMinLimits`) |
| 2 | + |
| 3 | +- **Task ID:** 2026-08-29_deprecate-min-context-limit |
| 4 | +- **Date:** 2026-08-29 |
| 5 | +- **Priority:** P2 |
| 6 | +- **Status:** Done (pending review) |
| 7 | + |
| 8 | +## Background |
| 9 | + |
| 10 | +`compress.minContextLimit` (default `"80%"`) is the soft lower bound for turn/iteration reminder nudges: `overMinLimit` gates when those anchors are set/cleared. Since #343/#351, the growth-nudge floor (`minNudgeContextPercent`, cascade via `compress.providers`) is the maintained "minimum" mechanism — two parallel "min" knobs confuse users. |
| 11 | + |
| 12 | +Maintainer direction (2026-08-29): mark `minContextLimit` as deprecated. |
| 13 | + |
| 14 | +## Requirement |
| 15 | + |
| 16 | +1. **Soft deprecation only** — annotations, no behavior change: |
| 17 | + - `@deprecated` JSDoc on `CompressConfig.minContextLimit` and `CompressConfig.modelMinLimits` (the flat per-model map only feeds `minContextLimit`; same fate). |
| 18 | + - `dcp.schema.json`: `[DEPRECATED — …]` description prefix (repo convention, cf. `allowSubAgents`). |
| 19 | + - `CONFIGURATION.md` / `CONFIGURATION.zh-CN.md`: Status → DEPRECATED, deprecation notes, legend reworded ("kept for backward compatibility, scheduled for removal (may still take effect until then)") — the old legend "accepted but no effect" is wrong for a soft deprecation. |
| 20 | +2. Deprecation text must state the removal consequence: when removed, the lower-bound gating for turn/iteration reminder nudges is retired with it (those nudges depend on `overMinLimit`); the growth-nudge system (`minNudgeContextPercent` + `nudgeGrowthTokens`) is the maintained mechanism. |
| 21 | +3. No runtime warnings, no validation rejection, no default changes, no removal in this PR. |
| 22 | + |
| 23 | +## Non-goals |
| 24 | + |
| 25 | +- Actually removing the field or changing nudge behavior. |
| 26 | +- Deprecating `nudgeFrequency` / `iterationNudgeThreshold` (only meaningful to revisit at removal time). |
| 27 | +- Touching `maxContextLimit` / `modelMaxLimits`. |
| 28 | + |
| 29 | +## Acceptance criteria |
| 30 | + |
| 31 | +- Annotations present in code + schema + both docs. |
| 32 | +- `npm run typecheck` passes; full suite 1053/1053 unchanged (annotation-only change proves no behavior drift). |
| 33 | +- CI green. |
| 34 | + |
| 35 | +## References |
| 36 | + |
| 37 | +- PR #351 (nested providers floor, stacked-under), PR #343 (growth floor gate) |
| 38 | +- Deprecation precedents: `gc.algorithm`, `gc.maxBlockAge`, schema `allowSubAgents` |
0 commit comments