Releases: Opencode-DCP/opencode-dynamic-context-pruning
Releases · Opencode-DCP/opencode-dynamic-context-pruning
v3.1.3 - Bug fix and code cleanup
What's Changed
- Fix: Skip message ID injection on empty assistant messages (#463)
- Refactor: Simplify hooks imports
- Refactor: Move manual trigger handling out of hooks
Full Changelog: v3.1.2...v3.1.3
v3.1.2 - improve compression reporting and XML tag cleanup
What's Changed
- Improved compress notifications with net savings and compression ratio details.
- Hardened hallucination stripping to remove stray dcp-prefixed XML tags more reliably.
- Refined token usage formatting helpers and aligned OpenCode SDK/plugin dependencies.
Full Changelog: v3.1.0...v3.1.2
v3.1.1 - Fix hallucination stripping for dcp-prefixed XML tags
What's Changed
- Fix: Broadened hallucination stripping to catch all dcp-prefixed XML tags instead of only specific ones
Full Changelog: v3.1.0...v3.1.1
v3.1.0 - Add experimental message-mode compression
What's Changed
- Add experimental
compress.mode: "message", which lets DCP compress individual raw messages instead of only full ranges. - Prioritize compression targets by message size, keep protected refs and completed compress calls visible, and preserve IDs across multipart content for more reliable message-mode behavior.
- Improve
rangemode with multi-range compression support and addcompress.summaryBufferso active summaries can extend the effectivemaxContextLimitin long sessions. - Fix stale token and message-id handling after native
/compact, count tool arguments more accurately, and clean up prompt/schema/config behavior. - Add the
scripts/opencode-message-token-countsinspector, expand compression and token-usage test coverage, and add GitHub issue templates.
Full Changelog: v3.0.4...v3.1.0
v3.0.4 - Bug fixes and config improvements
What's Changed
- config: Raise default compress thresholds for better context management
- compress: Ignore invalid block placeholders instead of erroring
- prompts: Fix override tag parsing
Full Changelog: v3.0.3...v3.0.4
v3.0.3 - Fix compress subagent refs and metadata tag leaking
What's Changed
- Fix compress tool to rebuild message refs when operating in subagent context
- Add instruction to prevent model from outputting injected XML metadata tags
- Add compress subagent integration test
Full Changelog: v3.0.2...v3.0.3
v3.0.2 - Fix host permissions compatibility
What's Changed
- Replace
findLastwith compatible alternative in host permissions for broader runtime support
Full Changelog: v3.0.1...v3.0.2
v3.0.1 - Prompt and permissions improvements
What's Changed
- Update context management guidance in compress prompts
- Align compress gating with opencode host permissions
- Standardize dcp-system-reminder XML naming convention
- Update demo readme images
Full Changelog: v3.0.0...v3.0.1
v3.0.0
v3.0.0 — Single Compress Tool Architecture
A major release featuring a complete architectural overhaul of the Dynamic Context Pruning system.
Breaking Changes
- The previous 3-tool system (
distill,compress,prune) has been replaced with a singlecompresstool. All context management now flows through one unified interface.
New Features
- Decompress / recompress commands — Built-in commands for managing compression blocks
- Subagent support —
experimental.allowSubAgentsenables compression awareness in sub-agent contexts - Custom prompts —
experimental.customPromptsallows user-defined prompt overrides - Flat schema option —
compress.flatSchemafor simplified tool schema presentation - Protected user messages —
protectUserMessagesprevents user messages from being compressed - Protected tools with glob patterns — Configure which tool outputs are preserved during compression using glob matching
- Visual progress bar — Real-time compression activity indicator
- Configurable turn nudges — Fine-tune when and how compression nudges appear
- Strengthened manual mode — More robust manual compression control
Improvements
- Reduced cache invalidation — Significantly decreases how often DCP causes cache invalidation, fixing Anthropic-related cache issues without needing manual mode
- Infinite conversations — Conversations can now last almost indefinitely; the previous tool pruning approach limited this by leaving user/AI messages untouched
- Simplified model behavior — The model no longer needs to choose between 3 context management tools, reducing decision complexity and improving reliability
Contributors
Migration
This is a major version bump. Users upgrading from v2.x should review the updated README for the new single-tool configuration. The compress tool now handles all context management operations that were previously split across multiple tools.
Full Changelog: v2.1.8...v3.0.0
v2.2.9-beta0 - New config options and context compression improvements
What's Changed
- Added
protectUserMessagesconfig option to prevent user messages from being compressed. - Added
flatSchemaconfig option for simplified tool schema injection. - Added wildcard/glob pattern support for
protectedToolsconfiguration. - Gated
compresstool behind a one-shot manual trigger. - Fixed: insert injected text parts before tool parts in assistant messages.
- Fixed: include
cache.writein system prompt token calculation. - Fixed: strip hallucinated tags from merged sub-agent results.
- Consolidated user and assistant turn nudges into a single prompt.
- Show raw LLM summary in
showCompressionnotification.
Full Changelog: v2.2.8-beta0...v2.2.9-beta0
