Releases: Opencode-DCP/opencode-dynamic-context-pruning
Releases · Opencode-DCP/opencode-dynamic-context-pruning
v1.0.0 - Major Architecture Rewrite
What's Changed
Highlights
Complete rewrite to use OpenCode's native hooks API, removing ~1,400 lines of provider-specific fetch wrapper code. The plugin now uses experimental.chat.messages.transform and experimental.chat.system.transform hooks, making it dramatically simpler and more maintainable.
Architecture
- Removed
lib/fetch-wrapper/directory with 6+ format adapters (Anthropic, Bedrock, Gemini, OpenAI) - Simplified state management, removed ID mapping layer
- Consolidated tool cache logic
- Net reduction of ~1,400 lines
New Features
- System prompt transformation hook for synthetic context injection
- AI nudge system reminds LLM to use prune tool after N tool results
- Support for
$OPENCODE_CONFIG_DIRconfig location - Prune tool enabled by default
Bug Fixes
- Skip inserting prunable tools list when empty
- Properly reset nudge counter after prune tool use
- Await session state load before syncing tool cache
- Prevent compacted tools from appearing in prunable list
Breaking Changes
- On-idle strategy now marked as legacy and disabled by default
Full Changelog: v0.4.17...v1.0.0
v1.0.0-beta.2 - Fix nudge counter reset
What's Changed
- Fix nudge counter to properly reset after prune tool is used
- Increase MAX_TOOL_CACHE_SIZE from 500 to 1000 for better session handling
- Refactor sync logic to correctly track nudge counter across session restarts
Full Changelog: v1.0.0-beta.1...v1.0.0-beta.2
v0.4.17 - Fix case-sensitive tool ID matching
What's Changed
- Fix case-sensitive tool ID comparison in pruning logic that could cause re-processing of already pruned tools
- Improve lookup performance by using Set instead of array includes()
Full Changelog: v0.4.16...v0.4.17
v0.4.16 - Fix tool result counting on session restart
What's Changed
- Fix tool result counting to not re-count already-pruned tools when a session is restarted
- Properly clear tool tracker state (seenToolResultIds, skipNextIdle) when switching sessions
- Prevent premature pruning threshold from being reached after session restart
Full Changelog: v0.4.15...v0.4.16
v0.4.15 - Auto-configure prune as primary tool
What's Changed
- Automatically register
prunetool as a primary tool via config hook, eliminating manualexperimental.primary_toolsconfiguration - Simplify setup by removing the now-unnecessary config from README
- Clean up redundant subagent check (now handled by OpenCode's primary_tools mechanism)
- Update
@opencode-ai/plugindevDependency
Full Changelog: v0.4.14...v0.4.15
v0.4.14 - Recommend @latest tag
What's Changed
- Update README to recommend
@latesttag instead of version pinning for simpler updates - Update version notification toast to suggest using
@latestfor auto-updates
Full Changelog: v0.4.13...v0.4.14
v0.4.13 - Use user messages for prunable list injection
What's Changed
- Revert prunable tool list injection from assistant messages back to user messages for better compatibility with various model providers
- Add improved message guidance for the prunable tools list
Full Changelog: v0.4.12...v0.4.13
v0.4.12
What's Changed
- Add write and edit to protected tools
- Fix nudge injection to insert before tool_use blocks (Anthropic)
- Remove autoUpdate feature and simplify version checking
- Remove redundant tool list from config comment
- Update demo image in README
Note: Versions 0.4.3-0.4.11 were unlisted from npm.
Full Changelog: v0.4.11...v0.4.12
v0.4.11 - Fix autoUpdate documentation
What's Changed
- Fix README to accurately document that
autoUpdateis disabled by default (opt-in, not auto-enabled) - Update description text to clarify DCP "checks for" updates rather than "automatically updates"
- Correct config table default value from
truetofalse
Full Changelog: v0.4.10...v0.4.11
v0.4.2 - Fix prune tool agent detection
What's Changed
- Fix agent detection in prune tool for consistent notifications between manual and GC pruning
- Refactor to fetch messages once and reuse for both agent detection and token calculation
Full Changelog: v0.4.1...v0.4.2