opencode-acp 1.14.14-dev.1 → 1.14.14

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
@@ -492,6 +492,16 @@ For the complete list with root cause analysis, see the [bug tracker](https://gi
492
492
 
493
493
  ## Changelog
494
494
 
495
+ ### v1.14.14 — Stable Release (2 PRs since v1.14.13)
496
+
497
+ Stable release covering two compress-subsystem fixes: the batched-call summary leak (#288) and the batch-compress all-or-nothing abort (#290). Published to the `latest` npm tag.
498
+
499
+ **PRs included**:
500
+ - **#288** (via #289) — `hideConsumedCompressCalls` keyed its keep-set on `compressCallId`, which is 1:N under batched compress (one tool call, multiple `content[]` entries share one callId). When a T2 distillation consumed only some siblings, a surviving sibling rescued the whole tool part, permanently leaking the consumed summaries — unreclaimable because compress is a default protected tool. Fix: key visibility per-block (on `startId::endId`) instead of per-callId; for kept batches with mixed liveness, rewrite the surviving tool part's `state.input.content` to drop consumed entries' summaries. All-consumed batches still fully removed. Files: `lib/compress/hide-consumed.ts`. Tests: +3 in `tests/hide-consumed.test.ts` (core regression verified to FAIL pre-fix).
501
+ - **#290** (via #291) — Batch `compress` aborted entirely when any single `content[]` entry contained only already-compressed messages (`Compression range N contains only already-compressed messages`), leaving valid entries unexecuted; the error also omitted which entry/IDs/blocks conflicted, forcing trial-and-error retries. Fix: (A) partial-failure batches — new `identifyPhantomPlans` drops phantom entries and compresses the rest, returning a concise skip notice; (C) detailed diagnostics on the all-phantom throw (entry index + consumed IDs + owning block); (B) a clamp warning when `clampMessageRef` silently shifts a boundary. Extracted `partitionPhantomPlans` + `buildPhantomSkipNotice` pure helpers for testable batch decision logic. `checkPhantomBlock` keeps its exact legacy contract. Files: `lib/compress/{pipeline,range,search,range-utils}.ts`. Tests: +19. Dual-agent reviewed (Oracle + General, both APPROVE).
502
+
503
+ **Install**: `opencode plugin opencode-acp@latest --global`
504
+
495
505
  ### v1.14.14-dev.1 — Dev Prerelease (2 PRs since v1.14.13)
496
506
 
497
507
  Dev prerelease covering two compress-subsystem fixes: the batched-call summary leak (#288) and the batch-compress all-or-nothing abort (#290). Published to the `dev` npm tag for early testing.
package/README.zh-CN.md CHANGED
@@ -446,6 +446,16 @@ ACP 是 DCP 的直接替代品。迁移步骤:
446
446
 
447
447
  ## 更新日志
448
448
 
449
+ ### v1.14.14 — 正式版(v1.14.13 以来 2 个 PR)
450
+
451
+ 正式版,包含两个压缩子系统修复:批量调用的 summary 泄漏(#288)和批量压缩的全有或全无中断(#290)。发布到 `latest` npm tag。
452
+
453
+ **包含的 PR**:
454
+ - **#288**(经 #289)— `hideConsumedCompressCalls` 的 keep-set 以 `compressCallId` 为键,在批量压缩下是 1:N 关系(一次工具调用,多个 `content[]` 条目共享一个 callId)。当 T2 蒸馏只消费了部分兄弟块时,存活的兄弟块会救下整个工具 part,永久泄漏已消费的 summary——且因 compress 是默认受保护工具而无法回收。修复:改为按块(`startId::endId`)标记可见性;对混合存活状态的保留批次,重写存活工具 part 的 `state.input.content` 以丢弃已消费条目的 summary。全部消费的批次仍整体移除。文件:`lib/compress/hide-consumed.ts`。测试:`tests/hide-consumed.test.ts` +3(核心回归测试已验证修复前会失败)。
455
+ - **#290**(经 #291)— 批量 `compress` 在任一 `content[]` 条目只含已压缩消息时整体中断(`Compression range N contains only already-compressed messages`),导致有效条目未执行;错误也未说明哪个条目/ID/块冲突,迫使反复试错重试。修复:(A) 部分失败批次——新增 `identifyPhantomPlans` 丢弃 phantom 条目并压缩其余,返回简洁的跳过提示;(C) 全 phantom 抛错时附详细诊断(条目序号 + 已消费 ID + 所属块);(B) `clampMessageRef` 静默平移边界时发出警告。抽出 `partitionPhantomPlans` + `buildPhantomSkipNotice` 纯函数使批量决策逻辑可测试。`checkPhantomBlock` 保持原有契约不变。文件:`lib/compress/{pipeline,range,search,range-utils}.ts`。测试:+19。双 agent review(Oracle + General,均 APPROVE)。
456
+
457
+ **安装**:`opencode plugin opencode-acp@latest --global`
458
+
449
459
  ### v1.14.14-dev.1 — Dev 预发布版(v1.14.13 以来 2 个 PR)
450
460
 
451
461
  Dev 预发布版,包含两个压缩子系统修复:批量调用的 summary 泄漏(#288)和批量压缩的全有或全无中断(#290)。发布到 `dev` npm tag 供早期测试。
package/dist/index.js CHANGED
@@ -8948,7 +8948,7 @@ import { writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
8948
8948
  import { join as join3 } from "path";
8949
8949
  import { existsSync as existsSync3 } from "fs";
8950
8950
  import { homedir as homedir3 } from "os";
8951
- var LOG_VERSION = true ? "1.14.14-dev.1" : "dev";
8951
+ var LOG_VERSION = true ? "1.14.14" : "dev";
8952
8952
  var Logger = class {
8953
8953
  logDir;
8954
8954
  enabled;