Build authenticated recording viewer URL in client#14210
Conversation
Consume the optional server-provided view URL for recording artifacts while retaining the signed download URL fallback for older servers. Co-Authored-By: Oz <oz-agent@warp.dev>
Use the configured Oz origin, ambient task ID, and recording artifact UID to open the authenticated run viewer directly. Keep signed downloads as a fallback and remove the unused server view_url dependency.\n\nCo-Authored-By: Oz <oz-agent@warp.dev>
…open-recording-view-url
|
@warp-dev-github-integration[bot] I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR changes the StopRecording "Open recording" action to build an authenticated Oz run viewer URL in the client from the conversation task ID and recording artifact UID, with the existing signed download URL as the fallback when no task ID is available.
Concerns
- The PR is user-facing, but the attached media only shows a blocked unauthenticated flow and does not demonstrate clicking "Open recording" and landing on the authenticated recording viewer end to end. Repo guidance requires visual evidence for user-visible behavior before merge.
- No approved or repository spec context was available, so there were no spec commitments to validate against.
- Security pass found no issues.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
Summary
StopRecording’s “Open recording” action now builds the authenticated Oz run viewer URL in the client from the ambient task ID, the recording artifact UID, and
ChannelState::oz_root_url()from configuration:{OzOrigin}/runs/{task_id}?artifact={artifact_uid}The client no longer consumes the server-provided
view_urlfield. If the conversation has no task ID, the existing signeddownload_url()path remains the fallback.Verification
CARGO_HOME=/workspace/.cargo-home cargo test --manifest-path /workspace/warp/Cargo.toml -p warp --lib ai::blocklist::block::tests --no-fail-fastpassed:34 passed; 0 failed.CARGO_HOME=/workspace/.cargo-home cargo check -p warp --libpassed.CARGO_HOME=/workspace/.cargo-home ./script/presubmitpassed Rust formatting, clippy, clang-format, and wgslfmt. Its test phase exited100because of broad environment-sensitive integration failures, including headless native recording unable to foreground a target window, SSH/password flows, unavailable 501 backend endpoints, API-key deserialization, and a port-9281 conflict. The affected blocklist tests passed.UI verification status
WarpOss launched successfully with
CARGO_HOME=/workspace/.cargo-home ./script/run. The authenticated Agent StopRecording banner could not be generated in this environment: onboarding required sign-in for Agent features, no authenticated recording/task artifact or debug link was available, and the ordinary Recording Mode/PTY Recording toggles do not create a StopRecording block. Therefore the “Open recording” click and destination could not be observed; no visual claim is made beyond the attached blocked-flow screenshot.Computer-use screenshots
View screenshot: Warp OSS running unauthenticated in the terminal; recording toggles and the agent-conversation debug loader produced no StopRecording banner.
Related PR disposition
The server-side
view_urlresponse field is no longer needed because the client constructs the viewer URL locally. Please closewarpdotdev/warp-server#13205rather than retaining that dependency.Originating thread: https://warpcommunity.slack.com/archives/C0BDQDW8V5E/p1784823046962819
Linear ticket: https://linear.app/warpdotdev/issue/QUALITY-1193/link-open-recording-in-the-stoprecording-blocklist-banner-to-the
CHANGELOG-BUG-FIX: Open recording artifacts in the authenticated viewer using the client-built Oz run URL.
This PR was generated with Oz.