Skip to content

Releases: Opencode-DCP/opencode-dynamic-context-pruning

v1.0.4 - Fix pruning of pending/running tool inputs

18 Dec 22:33
b39ef03

Choose a tag to compare

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

18 Dec 05:55

Choose a tag to compare

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

17 Dec 08:59

Choose a tag to compare

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 findLastCompactionTimestamp to iterate from end for better performance
  • Backwards compatibility: Restore showUpdateToasts config option for backwards compatibility

Full Changelog: v1.0.1...v1.0.2

v1.0.1 - Bug fixes and improvements

16 Dec 22:37

Choose a tag to compare

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

15 Dec 19:05

Choose a tag to compare

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_DIR config 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

15 Dec 01:02

Choose a tag to compare

Pre-release

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

11 Dec 16:46

Choose a tag to compare

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

11 Dec 16:26

Choose a tag to compare

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

11 Dec 04:03

Choose a tag to compare

What's Changed

  • Automatically register prune tool as a primary tool via config hook, eliminating manual experimental.primary_tools configuration
  • 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/plugin devDependency

Full Changelog: v0.4.14...v0.4.15

v0.4.14 - Recommend @latest tag

10 Dec 03:11

Choose a tag to compare

What's Changed

  • Update README to recommend @latest tag instead of version pinning for simpler updates
  • Update version notification toast to suggest using @latest for auto-updates

Full Changelog: v0.4.13...v0.4.14