opencode-acp 1.14.25-pr.343.61 → 1.14.25-pr.343.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -325,10 +325,11 @@ Each level overrides the previous, so project settings take priority over global
325
325
  // compression nudges (based on nudgeFrequency), so compression is
326
326
  // much more likely. Accepts: number or "X%" of model context window.
327
327
  "maxContextLimit": "80%",
328
- // Soft lower threshold for reminder nudges: below this, growth/turn/iteration
329
- // reminders are off (compression less likely). At/above this, reminders
330
- // are on. Accepts: number or "X%" of model context window.
331
- "minContextLimit": "80%",
328
+ // Soft lower threshold for turn/iteration reminder nudges: below this,
329
+ // those reminders are off (compression less likely). At/above this, they
330
+ // are on. Growth nudges have their own floor: minNudgeContextPercent.
331
+ // Accepts: number or "X%" of model context window.
332
+ "minContextLimit": "80%",
332
333
  // Optional per-model override for maxContextLimit by providerID/modelID.
333
334
  // If present, this wins over the global maxContextLimit.
334
335
  // Accepts: number or "X%".
package/dist/index.js CHANGED
@@ -6944,10 +6944,6 @@ function isContextOverLimits(config, state, providerId, modelId, messages) {
6944
6944
  return {
6945
6945
  overMaxLimit,
6946
6946
  overMinLimit,
6947
- // Issue #342: whether minContextLimit resolved to a concrete value
6948
- // (percent limits need a known model context limit). Callers must not
6949
- // treat overMinLimit=false as "below min" when the limit is unresolvable.
6950
- minLimitResolved: minContextLimit !== void 0,
6951
6947
  currentTokens,
6952
6948
  modelContextLimit: state.modelContextLimit
6953
6949
  };
@@ -7501,7 +7497,7 @@ var injectCompressNudges = (state, config, logger, messages, prompts, compressio
7501
7497
  const lastMessage = findLastNonIgnoredMessage(messages);
7502
7498
  const lastAssistantMessage = messages.findLast((message) => message.info.role === "assistant");
7503
7499
  const { providerId, modelId } = getModelInfo(messages);
7504
- const { overMaxLimit, overMinLimit, minLimitResolved, currentTokens, modelContextLimit } = isContextOverLimits(
7500
+ const { overMaxLimit, overMinLimit, currentTokens, modelContextLimit } = isContextOverLimits(
7505
7501
  config,
7506
7502
  state,
7507
7503
  providerId,
@@ -7647,8 +7643,9 @@ var injectCompressNudges = (state, config, logger, messages, prompts, compressio
7647
7643
  nudgeGrowthTokens: effectiveThreshold
7648
7644
  });
7649
7645
  const growthSinceBaseline = currentTokens !== void 0 && growthReference !== void 0 ? currentTokens - growthReference : void 0;
7650
- const minGateOpen = !minLimitResolved || overMinLimit || overMaxLimit;
7651
- const nudgeAllowed = emergencyOverride || decision.shouldNudge && minGateOpen && growthSinceBaseline !== void 0 && growthSinceBaseline >= growthFloor;
7646
+ const minNudgeFloorTokens = modelContextLimit !== void 0 ? Math.round((config.compress?.minNudgeContextPercent ?? 15) / 100 * modelContextLimit) : void 0;
7647
+ const overMinNudgeFloor = minNudgeFloorTokens === void 0 || currentTokens === void 0 || currentTokens >= minNudgeFloorTokens;
7648
+ const nudgeAllowed = emergencyOverride || decision.shouldNudge && (overMaxLimit || overMinNudgeFloor) && growthSinceBaseline !== void 0 && growthSinceBaseline >= growthFloor;
7652
7649
  const effectiveTipsVariant = emergencyOverride ? "maxLimit" : decision.tipsVariant;
7653
7650
  if (state.nudges.lastPerMessageNudgeTokens === void 0 && currentTokens !== void 0) {
7654
7651
  state.nudges.lastPerMessageNudgeTokens = currentTokens;
@@ -9115,7 +9112,7 @@ import { writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
9115
9112
  import { join as join3 } from "path";
9116
9113
  import { existsSync as existsSync3 } from "fs";
9117
9114
  import { homedir as homedir3 } from "os";
9118
- var LOG_VERSION = true ? "1.14.25-pr.343.61" : "dev";
9115
+ var LOG_VERSION = true ? "1.14.25-pr.343.63" : "dev";
9119
9116
  var LEVEL_RANK = {
9120
9117
  debug: 10,
9121
9118
  info: 20,
@@ -11556,7 +11553,7 @@ var server = (async (ctx) => {
11556
11553
  }
11557
11554
  const logger = new Logger(config.debug, config.debug ? "debug" : config.logLevel);
11558
11555
  logger.info("ACP plugin initialized", {
11559
- version: true ? "1.14.25-pr.343.61" : "dev",
11556
+ version: true ? "1.14.25-pr.343.63" : "dev",
11560
11557
  workspace: ctx.directory,
11561
11558
  logLevel: logger.level,
11562
11559
  debug: config.debug,