Skip to content

Add settings gates for local -> cloud handoff#10492

Open
harryalbert wants to merge 4 commits intoharry/remote-1591-add-environment-creation-flow-for-local-cloud-handofffrom
harry/remote-1573-add-client-setting-for-local-cloud-handoff-surfaces
Open

Add settings gates for local -> cloud handoff#10492
harryalbert wants to merge 4 commits intoharry/remote-1591-add-environment-creation-flow-for-local-cloud-handofffrom
harry/remote-1573-add-client-setting-for-local-cloud-handoff-surfaces

Conversation

@harryalbert
Copy link
Copy Markdown
Contributor

@harryalbert harryalbert commented May 8, 2026

Description

We need to add a way for folks (and admins) to disable local -> cloud handoff. This PR adds a few ways to do that. This PR adds:

  • a setting to disable local -> cloud handoff. This disabled the & entrypoint, the /handoff command, the handoff chip, and local -> cloud handoff generally.
  • a sub-setting to disable the & entrypoint specifically, just because I'm guessing some folks will take issue with it and we should have an easy way to make it so that typing & doesn't kick you into local -> cloud handoff.

We also automatically disable the local -> cloud handoff setting when cloud conversations are disabled (as local -> cloud handoff is not possible without cloud conversations).

Testing

  • I have manually tested my changes locally with ./script/run

Screenshots / Videos

https://www.loom.com/share/bbad1cd7cd0b4b5b9370f9ad180aae0e

Agent Mode

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

Copy link
Copy Markdown
Contributor Author

harryalbert commented May 8, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@harryalbert harryalbert force-pushed the harry/remote-1573-add-client-setting-for-local-cloud-handoff-surfaces branch from 747f793 to 2a239e3 Compare May 8, 2026 17:20
@harryalbert harryalbert force-pushed the harry/remote-1573-add-client-setting-for-local-cloud-handoff-surfaces branch from 2a239e3 to dabb235 Compare May 8, 2026 18:31
@harryalbert harryalbert force-pushed the harry/remote-1591-add-environment-creation-flow-for-local-cloud-handoff branch from bba4fec to 802a24d Compare May 8, 2026 18:31
@harryalbert harryalbert changed the title add product and tech specs Add settings gate for local -> cloud handoff May 8, 2026
@harryalbert harryalbert marked this pull request as ready for review May 8, 2026 22:58
@harryalbert harryalbert requested a review from zachbai May 8, 2026 22:58
@harryalbert harryalbert force-pushed the harry/remote-1573-add-client-setting-for-local-cloud-handoff-surfaces branch from b878d83 to d24c42c Compare May 8, 2026 22:58
@harryalbert harryalbert changed the title Add settings gate for local -> cloud handoff Add settings gates for local -> cloud handoff May 8, 2026
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 8, 2026

@harryalbert

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 AI settings for local-to-cloud handoff, gates the &, /handoff, chip, and workspace action surfaces, and adds snapshot_disabled to cloud agent spawn requests when cloud conversation storage is disabled.

Concerns

  • Remote child agent spawns still hard-code snapshot_disabled: None, so they bypass the cloud-conversation-storage privacy gate.
  • The & sub-setting is hidden when the parent handoff setting is off instead of remaining visible and disabled as described by the PR behavior.

Security

  • The remote child spawn path can omit snapshot_disabled: true when cloud conversation storage is disabled, allowing end-of-run snapshots where the user/org opted out.

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

conversation_id: None,
initial_snapshot_token: None,
agent_identity_uid: None,
snapshot_disabled: None,
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] This hard-codes snapshot_disabled: None for remote child agent spawns, bypassing the cloud-conversation-storage privacy gate. When storage is disabled, this path can still allow an end-of-run snapshot upload; thread the effective setting here or normalize it in spawn_agent_with_request before spawn_internal.

app,
));

if effective_handoff {
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 hides the & sub-setting whenever cloud handoff is disabled. The described behavior keeps the sub-toggle visible but disabled so users can see and preserve their stored choice; render the row unconditionally and disable it when !effective_handoff.

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