Skip to content

Commit 70beea0

Browse files
authored
Merge pull request #392 from ranxianglei/2026-09-12_release-v1.18.0
release: v1.18.0 — version bump + changelog (pure bookkeeping)
2 parents 2e2140a + 298d144 commit 70beea0

5 files changed

Lines changed: 69 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
### v1.18.0 — adaptive compression candidates (opt-in): MICRO/EPISODE targets, executor-parity validated
4+
5+
**PR #341 + follow-ups.** Adds a candidate-planning layer on top of the existing range nudges — off by default, byte-exact with v1.17.1 behavior until you opt in.
6+
7+
**What it does when enabled** (`{"compress": {"candidates": true}}`):
8+
- Nudges and `acp_status` advertise pre-validated, batchable compression targets instead of raw ranges: **MICRO** = one large message or a complete tool transaction (call+result closed pair); **EPISODE** = a contiguous historical segment of smaller units (≥ `minCompressRange`).
9+
- Executor-parity: candidates are validated through the same `prepareExecutableRangePlans` path the `compress` tool uses — everything listed is submittable as-is (tool-pair closure, protection parity, Bug 39 semantics preserved). Planning is fail-closed and bounded to the visible context (v1.17.1 #385 guarantees ~1.2 ms).
10+
- Solves the over-compression failure mode where a model facing "compress m00150–m00220" nukes a whole span to save one big tool output.
11+
12+
**Default OFF means exactly v1.17.1**: base nudge templates, breakdown copy, `acp_status` overview, and debug logs are restored byte-exact; candidate planning never runs (zero cost). Per-post-merge review, `compress.candidates` is NOT per-model overridable (global/project layers only) — the type surface, validation allowlist, and docs now agree. One deliberate carry-over from the PR branch: the transform pipeline reorder (tool-output truncation and budget guard now run after nudge injection) applies in both modes; e2e scenarios 01–12 all pass in OFF mode with the reorder in place.
13+
14+
**Also in this release**: system-prompt and `compress-range`-prompt candidate guidance is gated behind the same switch (a1a2f23); e2e scenario 13 opts in explicitly; 12 new tests including a §5.7 four-turn growth-cycle with production `preserveRecentMessages: 20` and #207 baseline-retention assertions. Full suite 1263/1263.
15+
16+
**Install**: `opencode plugin opencode-acp@latest --global`
17+
318
### v1.17.1 — transform no longer scales with compression history (13.6 s → 1.2 ms) + config/CI fixes
419

520
Three fixes bundled — headliner is #385, which removes the long-session slowdown reported in #384:

CHANGELOG.zh-CN.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# 更新日志
22

3+
### v1.18.0 — 自适应压缩候选(opt-in):MICRO/EPISODE 目标,执行同构校验
4+
5+
**PR #341 + 后续修复。** 在既有范围 nudge 之上加了一层候选规划 —— 默认关闭,未开启时与 v1.17.1 行为逐字节一致。
6+
7+
**开启后**`{"compress": {"candidates": true}}`):
8+
- nudge 与 `acp_status` 展示预先校验、可批量提交的压缩目标,而非原始范围:**MICRO** = 单条大消息或完整工具事务(call+result 闭包);**EPISODE** = 相邻小单元构成的历史片段(≥ `minCompressRange`)。
9+
- 执行同构:候选通过与 `compress` 工具相同的 `prepareExecutableRangePlans` 路径校验 —— 列表中的目标均可直接提交(工具对闭合、保护同等、Bug 39 语义保留)。规划 fail-closed,开销限制在可见上下文内(v1.17.1 #385 保证 ~1.2 ms)。
10+
- 解决过度压缩问题:模型面对 "compress m00150–m00220" 时不再为了省一个大工具输出而整段压掉。
11+
12+
**默认 OFF = 精确还原 v1.17.1**:基础 nudge 模板、breakdown 文案、`acp_status` 概览、debug 日志均恢复原文;候选规划不执行(零开销)。合并后评审确认:`compress.candidates` 不可按模型覆盖(仅全局/项目层)—— 类型、校验白名单、文档三处已对齐。一个有意保留的 PR 分支变更:transform 管道重排(工具输出截断与预算守卫移到 nudge 注入之后)在两种模式下均生效;e2e 场景 01–12 全部在 OFF 模式下通过。
13+
14+
**同版本包含**:system prompt 与 compress-range prompt 的候选指导同样受开关门控(a1a2f23);e2e 场景 13 显式开启;新增 12 个测试(含 §5.7 四轮 growth-cycle、生产配置 `preserveRecentMessages: 20`#207 baseline 保留断言)。全量 1263/1263。
15+
16+
**安装**`opencode plugin opencode-acp@latest --global`
17+
318
### v1.17.1 — transform 开销不再随压缩历史增长(13.6 s → 1.2 ms)+ 配置/CI 修复
419

520
捆绑三项修复 —— 主打 #385,消除 #384 报告的长会话卡顿:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# REQ — v1.18.0 发布(纯版本簿记)
2+
3+
## 约定
4+
5+
发布 PR 只含:版本号 bump、CHANGELOG.md / CHANGELOG.zh-CN.md 条目、
6+
devlog。**不含任何功能代码**(按用户要求拆分,修复在 PR #393)。
7+
8+
## 发布内容(均已在 master,经 PR #341 + a1a2f23)
9+
10+
- **adaptive compression candidates(opt-in)**:`compress.candidates`
11+
开关默认 false = v1.17.1 行为;开启后 nudge / acp_status 展示
12+
MICRO/EPISODE 候选,executor-parity 校验,批量可提交。
13+
- system prompt / compress-range prompt 候选指导同样门控(a1a2f23)。
14+
- 依赖:**先合并 PR #393**(评审修复)再合并本 PR,使 v1.18.0 完整。
15+
16+
## 验收
17+
18+
- 版本 1.18.0;changelog 中英条目含 `### v1.18.0`
19+
- check-pr.sh 通过;CI 全绿。
20+
- 人工合并后 CI 自动 tag + npm publish latest + GitHub Release。
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# WORKLOG — v1.18.0 发布(纯版本簿记)
2+
3+
## 步骤
4+
5+
1. 初版发布分支(cc868b3)曾捆绑评审修复 —— 按用户要求"发布 PR 不得含
6+
功能代码"拆分:
7+
- 修复 → PR #393(分支 `2026-09-12_candidates-review-fixes`,210a152)
8+
- 本分支 `git reset --hard github/master`(d0c3875)后仅保留簿记
9+
2. `package.json` 1.17.1 → 1.18.0。
10+
3. CHANGELOG.md / CHANGELOG.zh-CN.md 增加 v1.18.0 条目(内容描述以
11+
#393 先合并为前提)。
12+
4. 验证:`check-pr.sh` 全绿(分支名 / devlog / changelog 版本串)。
13+
14+
## 验证结果
15+
16+
- 发布 PR #392 已更新为纯簿记 diff(3 文件 + devlog);合并顺序:
17+
**#393(修复)后 #392(发布)**#393 合并后本分支需 Update branch
18+
同步 master,再等 CI 绿。

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
33
"name": "opencode-acp",
4-
"version": "1.17.1",
4+
"version": "1.18.0",
55
"type": "module",
66
"description": "Active Context Pruning — model-driven context management for OpenCode (hardened fork of DCP with 35 bug fixes)",
77
"main": "./dist/index.js",

0 commit comments

Comments
 (0)