Skip to content

[SAL-55] Add orchestration launch modal wiring#10382

Open
jasonkeung wants to merge 13 commits intomasterfrom
jason/orchestration-launch-modal
Open

[SAL-55] Add orchestration launch modal wiring#10382
jasonkeung wants to merge 13 commits intomasterfrom
jason/orchestration-launch-modal

Conversation

@jasonkeung
Copy link
Copy Markdown
Contributor

@jasonkeung jasonkeung commented May 7, 2026

Description

Screenshot 2026-05-07 at 7 17 41 PM

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:

  • Added OrchestrationLaunchModal feature flag, enabled for dogfood builds
  • Added did_check_to_trigger_orchestration_launch_modal boolean to AISettings (private, globally synced, not respecting user sync setting)
  • Added state + trigger logic to OneTimeModalModel: checks the feature flag and settings flag to determine if the modal should be shown on startup
  • Wired OrchestrationLaunchModal view into the workspace: initialization, event handling (OrchestrationLaunchModalEvent::Close), focus management, and conditional rendering
  • Added debug-only workspace actions: OpenOrchestrationLaunchModal and ResetOrchestrationLaunchModalState
  • Modal UI: hero image, title/description, three feature rows (cloud harnesses, multi-agent orchestration, agent memory), and a CTA button
  • "Research preview" badge on the Agent Memory feature row is clickable and links to AGENT_MEMORY_URL

Note: The hero image and both URLs (LEARN_MORE_URL and AGENT_MEMORY_URL) are currently placeholders — pending final asset delivery and link confirmation.

Linked Issue

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes).

Screenshots / Videos

Testing

Tested locally with dogfood feature flag enabled. Debug actions allow manually opening and resetting the modal state.

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

Co-Authored-By: Oz oz-agent@warp.dev

jasonkeung and others added 9 commits May 5, 2026 11:56
- 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>
- 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>
@cla-bot cla-bot Bot added the cla-signed label May 7, 2026
@jasonkeung jasonkeung marked this pull request as ready for review May 7, 2026 21:01
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 7, 2026

@jasonkeung

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 /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

jasonkeung and others added 3 commits May 7, 2026 18:40
- 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>
@jasonkeung jasonkeung marked this pull request as draft May 8, 2026 04:43
@jasonkeung jasonkeung marked this pull request as ready for review May 8, 2026 04:43
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 8, 2026

@jasonkeung

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 /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_URL from 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(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [IMPORTANT] This trigger is never pre-dismissed for first-time signups; the existing 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";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [IMPORTANT] [SECURITY] The CTA opens this URL, but it uses plaintext HTTP; dogfood users can be redirected or served content via MITM. Use the final HTTPS URL before enabling the flag.

Suggested change
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";

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant