-
Notifications
You must be signed in to change notification settings - Fork 28
fix(dgw): adopt recording file-type helpers #1946
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Krista House (kristahouse)
wants to merge
5
commits into
master
Choose a base branch
from
DGW-406
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
5d9d868
fix(dgw): adopt recording file-type helpers
kristahouse 4cb6f63
fix(dgw): include json pull media type
kristahouse d7d990c
test(dgw): add extension boundary regressions
kristahouse 98647c4
fix(dgw): address human review feedback
kristahouse 475b928
docs(dgw): trim streaming intent preface
kristahouse File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
|
kristahouse marked this conversation as resolved.
|
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # Recording streaming intent | ||
| ## Scope | ||
|
|
||
| These rules apply to the `/shadow` WebSocket streaming path implemented by `streaming.rs`. | ||
|
|
||
| This includes: | ||
|
|
||
| - recording file-type classification | ||
| - streamability decisions | ||
| - streaming implementation selection | ||
| - terminal input-format selection | ||
| They do not define the following: | ||
|
|
||
| - JREC push behaviour | ||
| - JREC pull behaviour | ||
| - artifact storage | ||
| - download MIME types | ||
| - consumer-side rendering. | ||
|
|
||
| ## Streaming contract | ||
|
|
||
| Only WebM, asciicast, and TRP recording artifacts are accepted by the `/shadow` streaming path. | ||
|
|
||
| | Recording file type | Extension | Streaming behaviour | | ||
| | --- | --- | --- | | ||
| | `WebM` | `.webm` | WebM streaming | | ||
| | `Asciicast` | `.cast` | Terminal streaming using asciinema input | | ||
| | `TRP` | `.trp` | Terminal streaming using TRP input | | ||
| | `SessionRecordingLog` | `.slog` | Explicitly rejected by the `/shadow` streaming path | | ||
|
|
||
| - A recognised`RecordingFileType` is not automatically supported by `/shadow` streaming. Each recognised recording file type must have explicitly defined behaviour for the `/shadow` streaming path. | ||
| - Files with missing or unrecognised extensions must be rejected before WebSocket streaming begins. | ||
|
|
||
| ## Architectural invariants | ||
|
|
||
| - Recording artifact streaming must use the canonical `RecordingFileType` extension mapping as its source of truth. | ||
| - A recording file must be classified once. The resulting `RecordingFileType` must determine: | ||
| - if the artifact is supported by the `/shadow` streaming path | ||
| - which streaming implementation is used (when applicable) | ||
| - which terminal input format is used (when applicable) | ||
|
|
||
| - Streaming validation, streamer selection, and terminal input selection must not maintain separate extension mappings or independently compare known recording extensions as raw strings. | ||
| - Adding a new `RecordingFileType` requires an explicit decision about whether it is supported by the `/shadow` streaming path and, if supported, how it is streamed. | ||
| - A new or unsupported recording file type must not silently fall back to an existing streaming implementation or terminal input format. | ||
| ## Component boundaries | ||
| JREC artifact handling, storage, download content types, and consumer-side rendering are outside the scope of this document. | ||
|
|
||
|
|
||
| > **Boundary:** Session Recording Log artifacts are supported elsewhere in Gateway through the JREC recording flow. Their rejection by `/shadow` applies only to the WebSocket streaming path covered by this document. |
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.