Skip to content

Conversation

@Tarquinen
Copy link
Collaborator

Summary

Major rewrite to use OpenCode's native hooks API, removing provider-specific fetch wrapper code and dramatically simplifying the architecture.

Highlights

  • Complete architecture rewrite using experimental.chat.messages.transform and experimental.chat.system.transform hooks
  • Removed ~1,400 lines of provider-specific format handlers (Anthropic, Bedrock, Gemini, OpenAI)
  • New features: System prompt transformation, AI nudge system, custom config path support
  • Prune tool enabled by default for more aggressive context management

What's Changed

Architecture

  • Removed lib/fetch-wrapper/ directory with 6+ format adapters
  • Simplified state management, removed ID mapping layer
  • Consolidated tool cache logic

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

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

@Tarquinen Tarquinen merged commit 3ea58a0 into master Dec 15, 2025
1 check passed
@Tarquinen Tarquinen deleted the release/v1.0.0 branch December 15, 2025 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants