opencode-acp 1.14.8-dev.4 → 1.14.8-dev.5
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 +9 -0
- package/README.zh-CN.md +9 -0
- package/dist/index.js +18 -24
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -492,6 +492,15 @@ For the complete list with root cause analysis, see the [bug tracker](https://gi
|
|
|
492
492
|
|
|
493
493
|
## Changelog
|
|
494
494
|
|
|
495
|
+
### v1.14.8-dev.5 — Dev Prerelease (1 PR since v1.14.8-dev.4)
|
|
496
|
+
|
|
497
|
+
Dev prerelease covering PR #257. Published to `dev` npm tag for early testing.
|
|
498
|
+
|
|
499
|
+
**PRs included**:
|
|
500
|
+
- **#257** — Bump `context-compress-algorithms` from 1.2.1 to 1.3.0. cc-alg 1.3.0 ships holistic TIER2/TIER3 compression prompts — summarize by theme instead of per-block. The old per-block format (Source header + 3-5 bullets + 50-150 tokens per block) caused length overflow when compressing 70+ T1 blocks (~30K chars exceeding `maxSummaryLengthHard`). No source code changes needed (prompts consumed from dependency).
|
|
501
|
+
|
|
502
|
+
**Install**: `opencode plugin opencode-acp@dev --global`
|
|
503
|
+
|
|
495
504
|
### v1.14.8-dev.4 — Dev Prerelease (1 PR since v1.14.8-dev.3)
|
|
496
505
|
|
|
497
506
|
Dev prerelease covering PR #252. Published to `dev` npm tag for early testing.
|
package/README.zh-CN.md
CHANGED
|
@@ -446,6 +446,15 @@ ACP 是 DCP 的直接替代品。迁移步骤:
|
|
|
446
446
|
|
|
447
447
|
## 更新日志
|
|
448
448
|
|
|
449
|
+
### v1.14.8-dev.5 — Dev 预发布(v1.14.8-dev.4 以来 1 个 PR)
|
|
450
|
+
|
|
451
|
+
Dev 预发布,涵盖 PR #257。发布到 `dev` npm tag 供早期测试。
|
|
452
|
+
|
|
453
|
+
**包含的 PR**:
|
|
454
|
+
- **#257** — 升级 `context-compress-algorithms` 从 1.2.1 到 1.3.0。cc-alg 1.3.0 提供整体式 TIER2/TIER3 压缩提示——按主题综合而非逐块处理。旧的逐块格式(Source 头 + 每块 3-5 条 + 每块 50-150 tokens)在压缩 70+ 个 T1 块时导致长度溢出(~30K 字符超过 `maxSummaryLengthHard`)。无需源码修改(提示从依赖中获取)。
|
|
455
|
+
|
|
456
|
+
**安装**: `opencode plugin opencode-acp@dev --global`
|
|
457
|
+
|
|
449
458
|
### v1.14.8-dev.4 — Dev 预发布(v1.14.8-dev.3 以来 1 个 PR)
|
|
450
459
|
|
|
451
460
|
Dev 预发布,涵盖 PR #252。发布到 `dev` npm tag 供早期测试。
|
package/dist/index.js
CHANGED
|
@@ -5500,7 +5500,7 @@ function evaluatePreCommitQuality(rawMessages, messageIds, messageTokenById, sum
|
|
|
5500
5500
|
}
|
|
5501
5501
|
}
|
|
5502
5502
|
|
|
5503
|
-
// node_modules/context-compress-algorithms/dist/chunk-
|
|
5503
|
+
// node_modules/context-compress-algorithms/dist/chunk-YCHW53QG.js
|
|
5504
5504
|
var COMPRESS_PHILOSOPHY = `Compression Philosophy:
|
|
5505
5505
|
- All compression serves the primary task, but be frugal.
|
|
5506
5506
|
- Context capacity is precious. Save context by compressing consumed outputs, not by avoiding tools.
|
|
@@ -5547,7 +5547,7 @@ PRIORITY \u2014 when the summary must be compact, preserve in this order:
|
|
|
5547
5547
|
Write dense, scannable bullets \u2014 not narrative prose. If the range spans distinct concerns (request \u2192 findings \u2192 decision), group bullets under short thematic headers so a reader can scan to the part they need. Every line must earn its place. Do not mimic the style of existing summaries in context; follow these rules.`;
|
|
5548
5548
|
var TIER2_DISTILL_RULES = `TIER 2 COMPRESSION \u2014 DISTILLATION
|
|
5549
5549
|
|
|
5550
|
-
You are compressing historical summaries (not raw conversation). These summaries have already captured the details. Your job is to DISTILL them:
|
|
5550
|
+
You are compressing historical summaries (not raw conversation). These summaries have already captured the details. Your job is to DISTILL them: write a holistic summary of what matters for future work, discarding the process.
|
|
5551
5551
|
|
|
5552
5552
|
KEEP \u2014 these are the only things that survive distillation:
|
|
5553
5553
|
- Decisions and their rationale ("chose X over Y because Z" \u2014 the "because" is load-bearing).
|
|
@@ -5555,9 +5555,9 @@ KEEP \u2014 these are the only things that survive distillation:
|
|
|
5555
5555
|
- Key lessons: what failed and why ("tried X, failed because Y"). These prevent repeating mistakes.
|
|
5556
5556
|
- Critical constraints discovered ("must support Node 22", "AGENTS.md forbids as any").
|
|
5557
5557
|
- Design decisions with architectural impact ("chose compress-as-anchor over synthetic messages because prefix cache").
|
|
5558
|
-
- Whether content is OBSOLETE or SUPERSEDED \u2014 mark with one line: "[SUPERSEDED by PR #NNN]" or "[OBSOLETE: deleted in vX.Y.Z]".
|
|
5559
|
-
- Function/class/type names and module paths that are the SUBJECT of the work \u2014 e.g., "fixed filterCompressedRanges in prune.ts"
|
|
5560
|
-
- Exploration findings: if a block was exploratory with no decision, keep the CONCLUSION in one line
|
|
5558
|
+
- Whether content is OBSOLETE or SUPERSEDED \u2014 mark with one line: "[SUPERSEDED by PR #NNN]" or "[OBSOLETE: deleted in vX.Y.Z]".
|
|
5559
|
+
- Function/class/type names and module paths that are the SUBJECT of the work \u2014 e.g., "fixed filterCompressedRanges in prune.ts". Not exact line numbers or full signatures \u2014 just enough to LOCATE the code.
|
|
5560
|
+
- Exploration findings: if a block was exploratory with no decision, keep the CONCLUSION in one line.
|
|
5561
5561
|
|
|
5562
5562
|
DROP \u2014 these were useful during the work but are no longer needed:
|
|
5563
5563
|
- Exact line numbers, diffs, verbose function signatures, full code listings.
|
|
@@ -5566,20 +5566,17 @@ DROP \u2014 these were useful during the work but are no longer needed:
|
|
|
5566
5566
|
- Verbose logs, command output, intermediate debugging steps.
|
|
5567
5567
|
|
|
5568
5568
|
FORMAT:
|
|
5569
|
-
-
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
-
|
|
5573
|
-
- Dense, scannable \u2014 no narrative prose.
|
|
5574
|
-
-
|
|
5575
|
-
- Cross-block synthesis: if multiple source blocks cover the same topic (same PR, same feature, same bug), MERGE them into a single group of bullets. Do not repeat the same fact from different blocks \u2014 keep it once under the most relevant source header.
|
|
5576
|
-
|
|
5577
|
-
SIZE TARGET: 50-150 tokens per source block (excluding the header). If you can't fit it in 150 tokens, you're keeping too much process. If a block has nothing worth keeping (pure noise), output just the header followed by "[no actionable content]".`;
|
|
5569
|
+
- Write a HOLISTIC summary grouped by THEME, not by source block.
|
|
5570
|
+
- NO per-block headers. NO "Source: bN" lines. This is a review of what happened, not a catalog of blocks.
|
|
5571
|
+
- Group related work together: all releases in one section, all bug fixes in another, all architecture decisions in a third.
|
|
5572
|
+
- Start with the most important outcomes (shipped releases, merged PRs, critical bugs).
|
|
5573
|
+
- Dense, scannable bullets \u2014 no narrative prose.
|
|
5574
|
+
- Most blocks will collapse into 1-2 bullets within a theme group. Many will have nothing worth keeping \u2014 omit them entirely.`;
|
|
5578
5575
|
var TIER3_CONDENSE_RULES = `TIER 3 COMPRESSION \u2014 ULTRA-CONDENSATION
|
|
5579
5576
|
|
|
5580
5577
|
You are compressing distilled summaries (Tier 2) into ultra-condensed facts (Tier 3). The distilled summaries already contain only decisions and outcomes. Your job is to reduce them to bare factual references.
|
|
5581
5578
|
|
|
5582
|
-
PRIORITY \u2014
|
|
5579
|
+
PRIORITY \u2014 keep in this order:
|
|
5583
5580
|
1. Shipped outcomes (versions released, PRs merged) \u2014 these are permanent record.
|
|
5584
5581
|
2. Open work (PRs/issues still pending) \u2014 these may need follow-up.
|
|
5585
5582
|
3. Key decisions with architectural impact ("chose X over Y because Z").
|
|
@@ -5587,12 +5584,11 @@ PRIORITY \u2014 when a source block has more facts than the size target allows,
|
|
|
5587
5584
|
Drop everything else. Tier 3 is a lookup index, not a knowledge base.
|
|
5588
5585
|
|
|
5589
5586
|
FORMAT:
|
|
5590
|
-
-
|
|
5591
|
-
|
|
5592
|
-
-
|
|
5587
|
+
- Write a HOLISTIC list of bare facts, grouped by theme \u2014 not by source block.
|
|
5588
|
+
- NO per-block headers. NO "Source: bN" lines.
|
|
5589
|
+
- Each fact is a single line: "[PR/Issue/Version] \u2014 [outcome in \u22648 words]"
|
|
5590
|
+
- Merge related facts aggressively. If multiple blocks concern the same release/feature/bug, output ONE line covering all of them.
|
|
5593
5591
|
- No explanations, no rationale, no process \u2014 just the fact.
|
|
5594
|
-
- Format: "[PR/Issue/Version] \u2014 [outcome in \u22648 words]"
|
|
5595
|
-
- Merge related facts from different source blocks if they concern the same topic.
|
|
5596
5592
|
|
|
5597
5593
|
EXAMPLES:
|
|
5598
5594
|
- "v1.13.0 shipped \u2014 quality gate + GC fix (7 PRs)"
|
|
@@ -5605,9 +5601,7 @@ DROP:
|
|
|
5605
5601
|
- Multi-sentence context. If a fact needs >1 sentence, it's too detailed for Tier 3.
|
|
5606
5602
|
- Lessons learned ("tried X, failed because Y") \u2014 drop UNLESS the failure is likely to recur and the block is <30 days old.
|
|
5607
5603
|
- Design rationale details \u2014 keep the decision, drop the "because" unless it's a critical constraint.
|
|
5608
|
-
- Anything marked [OBSOLETE] or [SUPERSEDED] \u2014 drop entirely, note "[N blocks obsolete]"
|
|
5609
|
-
|
|
5610
|
-
SIZE TARGET: 30-60 tokens per source block (including header). For a batch of N source blocks, total output \u2248 N \xD7 40 tokens. If a source block has only one trivial fact, output just the header + one line.`;
|
|
5604
|
+
- Anything marked [OBSOLETE] or [SUPERSEDED] \u2014 drop entirely, note "[N blocks obsolete]" at the end.`;
|
|
5611
5605
|
|
|
5612
5606
|
// lib/compress/quality-gate/rejection.ts
|
|
5613
5607
|
function formatMetric(result, name) {
|
|
@@ -8836,7 +8830,7 @@ import { writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
|
|
|
8836
8830
|
import { join as join3 } from "path";
|
|
8837
8831
|
import { existsSync as existsSync3 } from "fs";
|
|
8838
8832
|
import { homedir as homedir3 } from "os";
|
|
8839
|
-
var LOG_VERSION = true ? "1.14.8-dev.
|
|
8833
|
+
var LOG_VERSION = true ? "1.14.8-dev.5" : "dev";
|
|
8840
8834
|
var Logger = class {
|
|
8841
8835
|
logDir;
|
|
8842
8836
|
enabled;
|