Releases: Opencode-DCP/opencode-dynamic-context-pruning
Releases · Opencode-DCP/opencode-dynamic-context-pruning
v1.0.4 - Fix pruning of pending/running tool inputs
What's Changed
- Fix: Don't prune pending or running tool inputs, preventing premature context removal
Full Changelog: v1.0.3...v1.0.4
v1.0.3 - Supersede writes strategy and session init improvements
What's Changed
- Add supersede writes strategy: New pruning strategy that automatically prunes write tool inputs when the same file is subsequently read, reducing context overhead since the current file state is already captured in the read result
- Improve session initialization: Check compaction timestamp on session init for improved state handling
Full Changelog: v1.0.2...v1.0.3
v1.0.2 - Message-based compaction detection
What's Changed
- Message-based compaction detection: Detect compaction from message data instead of relying on events, improving reliability
- Tool cache optimization: Clear tool caches on compaction and add stale entry warning to prevent stale data issues
- Performance improvement: Optimize
findLastCompactionTimestampto iterate from end for better performance - Backwards compatibility: Restore
showUpdateToastsconfig option for backwards compatibility
Full Changelog: v1.0.1...v1.0.2
v1.0.1 - Bug fixes and improvements
What's Changed
- Fix critical compaction bug - Resolved a nasty bug where pruning operations failed after context compaction
- Add write/edit input pruning - Enabled capability to prune inputs for write and edit tools
- Refactor utils structure - Cleaned up utility file organization for better maintainability
- Improve pruning prompts - Enhanced guidance to prevent premature context loss
- Fix model stability - Resolved issue where model selection changed unexpectedly when prune was invoked
- Add prune tool debug logs
- Simplify pruning notification label
Full Changelog: v1.0.0...v1.0.1
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