Skip to content

refactor: Implement adapter pattern for conversation optimizer#374

Merged
edenreich merged 1 commit intomainfrom
refactor/conversation-optimizer-adapter-pattern
Jan 24, 2026
Merged

refactor: Implement adapter pattern for conversation optimizer#374
edenreich merged 1 commit intomainfrom
refactor/conversation-optimizer-adapter-pattern

Conversation

@edenreich
Copy link
Contributor

Introduces an adapter pattern to decouple the conversation optimizer from the SDK client interface. Creates SDKClientAdapter to adapt sdk.Client to domain.SDKClient interface, improving testability and separation of concerns. Updates all dependent services to use the new interface.

Summary of Changes:

  1. Interface rename: ConversationOptimizerServiceConversationOptimizer
  2. New adapter: Created SDKClientAdapter in internal/infra/adapters/ to adapt sdk.Client to domain.SDKClient
  3. Dependency injection: Updated container to use the adapter instead of direct SDK client
  4. Test improvements: Enhanced conversation optimizer tests with better tool call handling
  5. Boundary adjustments: Improved logic for handling tool call/response pairs at compaction boundaries

Benefits:

  • Improved testability: Allows mock implementations of SDK client interface
  • Separation of concerns: Decouples external SDK concerns from domain layer
  • Better maintainability: Clearer boundaries between infrastructure and domain layers
  • Enhanced testing: More comprehensive conversation optimizer tests with proper tool call handling

The adapter pattern follows clean architecture principles by keeping domain logic independent of external SDK implementations.

@edenreich edenreich merged commit 4c7c428 into main Jan 24, 2026
5 checks passed
@edenreich edenreich deleted the refactor/conversation-optimizer-adapter-pattern branch January 24, 2026 12:42
ig-semantic-release-bot bot pushed a commit that referenced this pull request Jan 24, 2026
## [0.99.0](v0.98.0...v0.99.0) (2026-01-24)

### 🚀 Features

* Add model context system for improved project awareness ([#375](#375)) ([1afb26b](1afb26b))

### 🐛 Bug Fixes

* Skip migrations for JSONL storage in infer init ([#376](#376)) ([3793345](3793345)), closes [#372](#372)

### ♻️ Code Refactoring

* Improve the testability of conversation optimizer ([#374](#374)) ([4c7c428](4c7c428))
@ig-semantic-release-bot
Copy link

🎉 This PR is included in version 0.99.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant