summaryrefslogtreecommitdiffhomepage
path: root/.rules/changelog/2026-03/31/01.md
diff options
context:
space:
mode:
Diffstat (limited to '.rules/changelog/2026-03/31/01.md')
-rw-r--r--.rules/changelog/2026-03/31/01.md30
1 files changed, 30 insertions, 0 deletions
diff --git a/.rules/changelog/2026-03/31/01.md b/.rules/changelog/2026-03/31/01.md
new file mode 100644
index 0000000..78cf9ef
--- /dev/null
+++ b/.rules/changelog/2026-03/31/01.md
@@ -0,0 +1,30 @@
+# Changelog — 2026-03-31 #01
+
+## Full gem implementation of dispatch-adapter-copilot
+
+### New Files
+
+- `lib/dispatch/adapter/errors.rb` — Error hierarchy (Error, AuthenticationError, RateLimitError, ServerError, RequestError, ConnectionError)
+- `lib/dispatch/adapter/message.rb` — Message, TextBlock, ImageBlock, ToolUseBlock, ToolResultBlock structs
+- `lib/dispatch/adapter/response.rb` — Response, Usage, StreamDelta structs
+- `lib/dispatch/adapter/tool_definition.rb` — ToolDefinition struct
+- `lib/dispatch/adapter/model_info.rb` — ModelInfo struct
+- `lib/dispatch/adapter/base.rb` — Abstract adapter base class with interface contract
+- `lib/dispatch/adapter/version.rb` — CopilotVersion module for gemspec version reference
+- `spec/dispatch/adapter/structs_spec.rb` — Tests for all canonical structs
+- `spec/dispatch/adapter/base_spec.rb` — Tests for Base interface defaults and NotImplementedError
+- `spec/dispatch/adapter/errors_spec.rb` — Tests for error hierarchy and attributes
+
+### Modified Files
+
+- `lib/dispatch/adapter/copilot.rb` — Rewrote from empty module to full Copilot adapter class inheriting from Base, with HTTP auth (device flow + Copilot token exchange), chat (non-streaming and SSE streaming), tool conversion, message merging, error mapping, list_models, and thinking/reasoning_effort support
+- `spec/dispatch/adapter/copilot_spec.rb` — Comprehensive WebMock-based tests covering text responses, tool calls, mixed responses, system param, max_tokens override, tool definitions, ToolUseBlock/ToolResultBlock wire conversion, ImageBlock error, consecutive message merging, streaming text deltas, streaming tool call deltas, list_models, thinking parameter (constructor default, per-call override, validation, nil disable), and error mapping for all HTTP status codes and connection failures
+- `spec/spec_helper.rb` — Cleaned up config
+- `dispatch-adapter-copilot.gemspec` — Updated version reference, summary, description, homepage, removed TODOs
+- `Gemfile` — Added webmock dependency
+- `README.md` — Replaced with actual gem documentation and usage examples
+- `.rubocop.yml` — Added NewCops, FrozenStringLiteralComment enforcement, and method/class length limits
+
+### Deleted Files
+
+- `lib/dispatch/adapter/copilot/version.rb` — Replaced by `lib/dispatch/adapter/version.rb`