Skip to content

Add AmbientSetupPhaseEnded variant to OrderedTerminalEventType#17

Open
harryalbert wants to merge 2 commits into
mainfrom
harry/empty-prompt-handoff-local
Open

Add AmbientSetupPhaseEnded variant to OrderedTerminalEventType#17
harryalbert wants to merge 2 commits into
mainfrom
harry/empty-prompt-handoff-local

Conversation

@harryalbert
Copy link
Copy Markdown

@harryalbert harryalbert commented May 22, 2026

Add AmbientSetupPhaseEnded variant to OrderedTerminalEventType

In this PR, we make it so that users can kick off new cloud agent runs (specifically for local to cloud handoff) with no prompt.

One issue that this presented was that we rely on the initial agent response coming in to indicate to cloud agent viewers that the setup phase is complete. Without this event, the user is just stuck in the "Environment setup..." phase forever, meaning the client blocks them from submitting prompts (and the UI is generally borked).

To fix this, we need a prompt-agnostic event to indicate to viewers that environment setup is complete. The sharer emits this after setup is over (before sending the prompt for the start of the session, or not sending it if there's no prompt).

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

harryalbert and others added 2 commits May 22, 2026 16:50
Adds an explicit shared-session-protocol marker that the sandboxed Oz
AgentDriver emits when cloud-mode setup is complete but no initial LLM
turn will follow (e.g. empty-prompt local-to-cloud handoff with
`--skip-initial-turn`). Viewers consume the event to tear down the
Cloud Mode Setup V2 "Running setup commands..." chip and clear
`BlockList::is_executing_oz_environment_startup_commands` without
waiting for the first `AppendedExchange`.

The variant is unit-typed (no associated data) for v1. A future struct
upgrade with `task_id: Option<String>` is fine to plan for as a struct
variant later but is deliberately out of scope here.

Mirrors the placement and idiom of the adjacent
`AgentConversationReplayStarted` / `AgentConversationReplayEnded`
variants. The session-sharing-server treats `OrderedTerminalEventType`
opaquely (only `CommandExecutionFinished` is special-cased for
block-id tracking), so no server code changes are required to route or
persist the new variant. The server will pick it up via a protocol
dep rev bump after this change merges.

Includes a serde round-trip test asserting the unit-variant wire form.

Stage 2c of empty-prompt local-to-cloud handoff.

Co-Authored-By: Oz <oz-agent@warp.dev>
… missing Started half

Adjacent variants come in Started/Ended pairs; AmbientSetupPhaseEnded has no matching Started because the setup-phase start is implicit in existing SetupCommandState transitions on the viewer once scrollback arrives.

Co-Authored-By: Oz <oz-agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label May 22, 2026
Copy link
Copy Markdown
Author

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

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