docs(openspec): archive externalmedia-returns-a-channel-id-that-finds-its-stream - #308
Merged
Merged
Conversation
…-its-stream Closes out #305, merged as 9f2cbde. The change becomes openspec/changes/archive/2026-09-24-externalmedia-returns-a-channel-id-that-finds-its-stream and its delta becomes the living spec openspec/specs/external-media-stream-routing. The CHANGELOG entry is relabelled from `Fixed — BREAKING` to `Changed — BREAKING`, and that is a ruling, not a tidy-up. ADR-0061 landed as #307 after the entry was written: only a `Changed — BREAKING` forces a minor, and D3 says an entry that cannot name the documented behaviour it restores is a `Changed`. This entry has two halves. The behavioural half restores what the docs promised — GetStream said it returned a stream by channel id and could not. The other half changes a shipped signature, so a caller that passed the cancellation token positionally stops compiling, and that restores nothing. Left as `Fixed`, D1 would have permitted the next release to ship that compile break as a patch. The spec's Purpose is written rather than left at TBD. It records that Asterisk decides this, not the SDK: `data` becomes the identification UUID the table is keyed by and `channelId` becomes the ARI Channel.Id, and supplying neither — the shipped behaviour — leaves a channel id that appears in no table. It also records why the answer had to be measured: reading the code produces a plausible answer, and the review that tried it produced a wrong one. Referrer sweep: two references, both by change name rather than by path, so the archive move breaks neither. The dependency line in a-published-surface-is-one-something-measures now reads as satisfied rather than pending, and names where the archived record and the live capability are. openspec validate --all --strict: 15 passed, 0 failed. Governance tests: 129 passed, 0 failed.
Harol-Reina
deleted the
Harol-Reina/archive-externalmedia-channel-id
branch
September 24, 2026 14:55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Close-out for #305, merged as
9f2cbde7.Harvested: F1 (WebSocketAudioServer's URL-segment key), F2 (
AudioStreamMetrics' ten uncalled instruments) and F3 (ten dialed-but-undefined dialplan extensions) →openspec/changes/a-published-surface-is-one-something-measures, opened during the change itself rather than at close-out. Its dependency line is updated here to read as satisfied and to name where the archived record and the live capability are.Cited:
(#305)backfilled into theCHANGELOG.md [Unreleased]entry.Referrer sweep: two references, both by change name rather than by path, so the archive move breaks neither —
ExternalMediaChannelIdFunctionalTests.cs:11and the new change's proposal. The latter's tense was stale and is corrected; nothing else pointed at the directory.One ruling, not a tidy-up
The entry is relabelled from
### Fixed — BREAKINGto### Changed — BREAKING.ADR-0061 landed as #307 after this entry was written: only a
Changed — BREAKINGforces a minor, and D3 says an entry that cannot name the documented behaviour it restores is aChanged.This entry has two halves:
GetStreamsaid it returned a stream by channel id, and could not. That is aFixed.Left as
Fixed, D1 would have permitted the next release to ship that compile break as a patch. D3 puts the call on the author at the moment the entry is written; this is that call, made late because the ADR arrived in between.The spec's Purpose is written, not left at TBD
It records that Asterisk decides this, not the SDK:
databecomes the identification UUID the stream table is keyed by,channelIdbecomes the ARIChannel.Id, and supplying neither — the shipped behaviour — leaves a channel id that appears in no table, so the lookup cannot succeed by construction.And it records why the answer had to be measured with two byte-order-asymmetric UUIDs per request: reading the code yields a plausible answer, and the review that tried it produced a wrong one.
Verification
🤖 Generated with Claude Code