Skip to content

chore(release): 2.6.0 - #311

Merged
Harol-Reina merged 1 commit into
mainfrom
chore/release-2.6.0
Sep 24, 2026
Merged

Harol-Reina merged 1 commit into
mainfrom
chore/release-2.6.0

Conversation

@Harol-Reina

Copy link
Copy Markdown
Contributor

Cuts 2.6.0. Ten entries, six of them BREAKING, closing defects that reach back to 2.0.0.

Why a minor

ADR-0061 D1, landed today: only a Changed — BREAKING forces one, and four of the six are. ADR-0028's
migration-guide obligation is met — all three guides exist and are reachable from the index (#310,
which also added the row audiosocket-wire-format-migration.md never got).

What ships

#302 AudioSocket spoke a protocol Asterisk does not — neither server had ever completed a handshake since 2.0.0
#305 externalMedia returned a channel id that found no stream
#291 A failed first ConnectAsync left AriClient reporting Connecting for the life of the instance
#291 #298 #300 Three accept loops that died silently on a failure they could survive
#284 A caller hanging up mid-playback booked as a synthesis failure
#286 A session save governed by a token nothing could cancel
#281 An accepted AudioSocket connection nobody closed
#296 Microsoft.ML.OnnxRuntime 1.28.0 → 1.30.0

The OnnxRuntime bump gets an entry because it is a PackageReference without PrivateAssets in
Verbara.Sdk.VoiceAi.TurnDetection: a consumer resolves it transitively and the turn detector runs
its inference on it. The bundled smart-turn-v3.2-cpu model and every published accuracy figure are
unchanged — the runtime moved, not the model. The only precedent for recording a bump
(Microsoft.SourceLink.GitHub, 2.5.1) was a security advisory, so this entry states the reach rather
than the reason.

Four files, not two

The previous cut (#264) touched CHANGELOG.md and Directory.Build.props. This one also moves
README.md's headline version and its claim-registry row, because
StatusBlockCoherenceTests.TheHeadlineVersion_ShouldMatchTheVersionThePackagesShipWith now binds the
headline to <PackageVersion> — a guard written precisely because that headline had rotted three
releases behind.

Not in this release, knowingly

The reconnect reload that strands a call after an AMI reconnect: measured today, seven months old
(git blame puts Channels.Clear() at 2026-03-01, before 2.0.0), present in every 2.x including the
2.4.0 that downstream pins. Cutting now makes nothing worse for anyone.

Its fix is the open change a-reconnect-reload-is-a-diff-not-a-wipe. The owner ruled its entry
Fixed — BREAKING, which under ADR-0061 does not force a minor, so it ships as a patch when its
own functional measurement says it is ready — rather than holding ten finished fixes behind a change
whose task 3.3 says a real-Asterisk measurement can still narrow its spec.

The tag

Not pushed by this pull request. After it merges, release-hygiene.yml reports the
staged-but-untagged version on the next push to main — that is ADR-0055's design, not a failure.
The tag is a separate, explicit step, and the ApiCompat baseline move plus the deletion of the 14
CompatibilitySuppressions entries follow it.

Verification

  • Release section: 25,201 bytes, 20% of ADR-0055 D4's 125,000 cap
  • Tests/Verbara.Sdk.OpenTelemetry.Tests — 31 passed (headline version, ADR count, catalog, claims)
  • Tests/Verbara.Sdk.Governance.Tests — 129 passed
  • openspec validate --all --strict — 17 passed, 0 failed

🤖 Generated with Claude Code

Ten entries, six of them BREAKING, closing defects that reach back to 2.0.0:
the AudioSocket wire format neither server ever spoke (#302), externalMedia
returning a channel id that found no stream (#305), a failed first ConnectAsync
that left AriClient reporting Connecting for the life of the instance (#291),
three accept loops that died silently on a failure they could survive (#291,
#298, #300), a caller hanging up mid-playback booked as a synthesis failure
(#284), a session save governed by a token nothing could cancel (#286), and an
accepted AudioSocket connection nobody closed (#281).

A minor, per ADR-0061 D1: four of the six are `Changed — BREAKING`, and only
that kind forces one. ADR-0028's migration-guide obligation is met — all three
guides exist and are reachable from the guides index (#310).

The `Microsoft.ML.OnnxRuntime` bump gets an entry of its own. It is a
`PackageReference` without `PrivateAssets` in `Verbara.Sdk.VoiceAi.TurnDetection`,
so a consumer resolves it transitively and the turn detector runs on it; the
bundled model and every published accuracy figure are unchanged. The only
precedent for recording a bump was an advisory that broke the build, so this one
states the reach rather than the reason.

Four files, not the two the previous cut needed: `StatusBlockCoherenceTests`
now binds README.md's headline version to `Directory.Build.props`, so the
headline and its claim-registry row move in the same commit. That guard was
written because the headline had rotted three releases behind.

Not in this release, and knowingly: the reconnect reload that strands a call
after an AMI reconnect. It is seven months old, present in every 2.x including
the 2.4.0 downstream pins, and its fix is the open change
`a-reconnect-reload-is-a-diff-not-a-wipe`. The owner ruled its entry
`Fixed — BREAKING`, which under ADR-0061 does not force a minor, so it ships as
a patch when its own functional measurement says it is ready rather than holding
ten finished fixes behind it.

The tag is not pushed by this commit. `release-hygiene.yml` will report the
staged-but-untagged version on the next push to main, which is the design in
ADR-0055, not a failure.
@Harol-Reina
Harol-Reina added this pull request to the merge queue Sep 24, 2026
Merged via the queue into main with commit e1a731f Sep 24, 2026
15 checks passed
@Harol-Reina
Harol-Reina deleted the chore/release-2.6.0 branch September 24, 2026 22:44
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.

1 participant