From e00861093df5f796531bbd25ebe144c83dc1339c Mon Sep 17 00:00:00 2001 From: Ajay Krishnan Date: Wed, 20 May 2026 06:44:03 -0700 Subject: [PATCH] Use Opencode::Instrumentation.notify; bump dep + own version to alpha2 Paired-release commit that completes the .notify migration started in opencode-ruby v0.0.1.alpha2. Changes: - lib/opencode/exchange.rb: drops the empty '{ }' block from the apply_patch.artifacts_dropped emission, switching from .instrument(...) { } to .notify(...). Identical wire semantics, cleaner read at the call site. - opencode-rails.gemspec: pins opencode-ruby runtime dep to '= 0.0.1.alpha2' (was alpha1). Lockstep versions during alpha. - lib/opencode/rails_version.rb: 0.0.1.alpha1 -> 0.0.1.alpha2. - CHANGELOG: documents the Exchange call-site change and the opencode-ruby pin bump. 53 tests pass, 134 assertions, 0 failures. --- CHANGELOG.md | 16 ++++++++++++++++ lib/opencode/exchange.rb | 4 ++-- lib/opencode/rails_version.rb | 2 +- opencode-rails.gemspec | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d904c8..6dcf491 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.0.1.alpha2 — 2026-05-20 + +### Changed + +- `Opencode::Exchange` now emits `opencode.apply_patch.artifacts_dropped` + via the new `Opencode::Instrumentation.notify` fire-and-forget API + (introduced in opencode-ruby v0.0.1.alpha2) instead of + `.instrument(name, payload) { }` with an empty block. Cleaner read + at the call site; identical semantics on the wire (same event name, + same payload). + +### Bumped + +- Runtime dependency `opencode-ruby` pinned to `= 0.0.1.alpha2` (was + `= 0.0.1.alpha1`). Versions stay in lockstep during alpha. + ## 0.0.1.alpha1 — 2026-05-20 Initial public alpha. Extracted from a production multi-product Rails app (`ajent-rails`) where these objects shipped under `lib/opencode/rails/` before being carved out into a standalone gem. diff --git a/lib/opencode/exchange.rb b/lib/opencode/exchange.rb index ddd5b99..8f904c2 100644 --- a/lib/opencode/exchange.rb +++ b/lib/opencode/exchange.rb @@ -65,13 +65,13 @@ module Opencode eligible = file_entries.reject { |e| e[:type] == "delete" } next if eligible.empty? - Opencode::Instrumentation.instrument("opencode.apply_patch.artifacts_dropped", + Opencode::Instrumentation.notify("opencode.apply_patch.artifacts_dropped", file_count: eligible.size, relative_paths: eligible.filter_map { |e| e[:relativePath] }.first(5), message_id: part[:messageID], session_id: part[:sessionID], reason: "apply_patch v1.15+ metadata does not include post-write file content; " \ - "extraction requires sandbox-read which is not yet wired into ResponseParser") { } + "extraction requires sandbox-read which is not yet wired into ResponseParser") end end end diff --git a/lib/opencode/rails_version.rb b/lib/opencode/rails_version.rb index c187188..cb18daf 100644 --- a/lib/opencode/rails_version.rb +++ b/lib/opencode/rails_version.rb @@ -11,5 +11,5 @@ # We can't reuse the same constant from a second gem, so we use a # distinct, non-namespaced constant. module Opencode - RAILS_VERSION = "0.0.1.alpha1" + RAILS_VERSION = "0.0.1.alpha2" end diff --git a/opencode-rails.gemspec b/opencode-rails.gemspec index 5f9a027..07b2870 100644 --- a/opencode-rails.gemspec +++ b/opencode-rails.gemspec @@ -37,7 +37,7 @@ Gem::Specification.new do |spec| # this gem builds on. During alpha both gems evolve in lockstep — we pin # exactly (= not ~>) so that consumers always pick the version this gem # was tested against. Bump to alpha2 when the paired release ships. - spec.add_runtime_dependency "opencode-ruby", "= 0.0.1.alpha1" + spec.add_runtime_dependency "opencode-ruby", "= 0.0.1.alpha2" # Rails sub-libraries used at runtime. Depending on these individually # (instead of the `rails` umbrella) avoids forcing host apps to load