[SAL-55] Add orchestration launch modal wiring#10382
[SAL-55] Add orchestration launch modal wiring#10382jasonkeung wants to merge 13 commits intomasterfrom
Conversation
- Add taskGitCredentials types to schema.graphql (verified against staging) and add to clientQueries allowlist in client-schema.ts - Add task_git_credentials.rs GraphQL query file (cynic) following the task_secrets pattern - Add GitCredential struct and get_task_git_credentials to AIClient trait with a ServerApi implementation Co-Authored-By: Oz <oz-agent@warp.dev>
- Add driver/git_credentials.rs: atomic writes to ~/.git-credentials and ~/.config/gh/hosts.yaml, one-time git config setup (credential.helper store, url.insteadOf), git identity configuration, and refresh_loop() which re-fetches credentials every 50 minutes - Extend fetch_secrets_and_attachments to call taskGitCredentials in parallel at startup; writes credential files and git config - Add futures::select! refresh loop in run_internal, racing the harness execution against the infinite refresh loop for both Oz and ThirdParty harnesses Co-Authored-By: Oz <oz-agent@warp.dev>
- Write ~/.git-credentials and ~/.config/gh/hosts.yaml temp files with 0600 permissions (mode + set_permissions) matching the existing pattern in write_codex_auth_json, preventing other users from reading tokens - Add run_git_config_add (--add flag) so multi-value insteadOf entries coexist instead of the second overwriting the first - Derive SSH→HTTPS URL rewrites from credential hosts rather than hardcoding github.com, using --add for both scp-style and ssh:// forms per host Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
On transient failure, retry up to 3 times with 1min, 2min, 4min delays, keeping all retries within the ~10-minute buffer before token expiry. Co-Authored-By: Oz <oz-agent@warp.dev>
…tion Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
- Add OrchestrationLaunchModal feature flag (enabled in dogfood) - Add did_check_to_trigger_orchestration_launch_modal setting to AISettings - Add OneTimeModalModel state and trigger logic for the orchestration launch modal - Wire OrchestrationLaunchModal view into workspace (init, focus, events, rendering) - Add debug actions: OpenOrchestrationLaunchModal, ResetOrchestrationLaunchModalState Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
|
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 wires a new orchestration launch modal into the workspace one-time modal flow and also adds git credential file setup/refresh plumbing for agent runs.
Concerns
- Manual testing evidence is missing for the new user-visible modal. The PR description's Screenshots / Videos section is empty and says evidence will be added later; repo guidance requires screenshots or a screen recording for UI changes that can be manually tested.
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
- Extend FeatureItem with badge_url to support linked badges - Make 'Research preview' badge on Agent Memory clickable (links to AGENT_MEMORY_URL placeholder) - Update LEARN_MORE_URL to placeholder; both URLs are pending final links - Hero image is also still a placeholder pending asset delivery - Remove excessive comment before did_check_to_trigger_orchestration_launch_modal setting Co-Authored-By: Oz <oz-agent@warp.dev>
Conflicts resolved: - app/src/ai/agent_sdk/driver.rs: keep ours (GitCredentialRefresh flag already removed) - app/src/ai/agent_sdk/mod.rs: keep ours (GitCredentialRefresh flag already removed) - crates/warp_features/src/lib.rs: keep both OrchestrationLaunchModal and GitCredentialRefresh in DOGFOOD_FLAGS Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
|
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 adds the Orchestration launch modal flag, one-time trigger state, workspace wiring, and the modal UI.
Concerns
- The new modal setting is only marked checked inside the existing-user trigger path. Unlike the Oz/OpenWarp modal settings, it is not pre-dismissed for non-existing users during auth completion, so first-time signups can see this launch modal on a later startup after onboarding.
- The Learn More CTA uses a plaintext HTTP placeholder URL while the dogfood feature flag is enabled.
Security
- The modal opens
LEARN_MORE_URLfrom a CTA, and the current URL uses HTTP; use a final HTTPS URL before this flag is enabled for dogfood users.
Verdict
Found: 0 critical, 2 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
| should_show_openwarp_modal | ||
| } | ||
|
|
||
| fn check_and_trigger_orchestration_launch_modal( |
There was a problem hiding this comment.
AuthComplete non-existing-user branch marks Oz/OpenWarp as checked, but this setting stays false, so a new user can see the launch modal on a later startup after onboarding. Mirror that suppression before enabling the flag.
| const HERO_HEIGHT: f32 = 92.; | ||
| // TODO: Replace with actual hero image once provided. | ||
| const HERO_IMAGE_PATH: &str = "async/png/onboarding/openwarp_launch_banner.png"; | ||
| const LEARN_MORE_URL: &str = "http://warp.dev/placeholder-launch-blog-link"; |
There was a problem hiding this comment.
| const LEARN_MORE_URL: &str = "http://warp.dev/placeholder-launch-blog-link"; | |
| const LEARN_MORE_URL: &str = "https://www.warp.dev/placeholder-launch-blog-link"; |
Description
Wires up the orchestration launch modal into the workspace. This includes the feature flag, settings field, one-time modal trigger logic, and view integration. Placeholder image and links for now
What: Adds the plumbing and UI for the orchestration launch modal — a one-time modal that onboards users to the Oz orchestration feature.
Why: Part of SAL-55 — orchestration launch/in-app onboarding.
How:
OrchestrationLaunchModalfeature flag, enabled for dogfood buildsdid_check_to_trigger_orchestration_launch_modalboolean toAISettings(private, globally synced, not respecting user sync setting)OneTimeModalModel: checks the feature flag and settings flag to determine if the modal should be shown on startupOrchestrationLaunchModalview into the workspace: initialization, event handling (OrchestrationLaunchModalEvent::Close), focus management, and conditional renderingOpenOrchestrationLaunchModalandResetOrchestrationLaunchModalStateAGENT_MEMORY_URLLinked Issue
ready-to-specorready-to-implement.Screenshots / Videos
Testing
Tested locally with dogfood feature flag enabled. Debug actions allow manually opening and resetting the modal state.
Agent Mode
Co-Authored-By: Oz oz-agent@warp.dev