Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/voltage-buzz-gpui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-14, windows-latest]
os: [macos-15, windows-latest]
steps:
# The buzz-app git dependencies have paths past MAX_PATH.
- if: runner.os == 'Windows'
Expand Down
3 changes: 3 additions & 0 deletions apps/buzz-gpui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ same look. It can also manage agents running on other machines through

See [ARCHITECTURE.md](ARCHITECTURE.md) for the design.

Voltage builds also support moving saved teams or selected agents through **Agents → Your agents → Move to remote**.
See [Move existing agents to Remote workspace](docs/remote-agent-migration.md) for setup, preserved settings, and recovery.

## Laptop: install the app (Ubuntu)

```sh
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,17 @@ pub fn init(cx: &mut App) {

struct RemoteWorkspace;

/// Shared destination editor for a batch; per-agent instructions and
/// environments are deliberately absent from this form.
pub(crate) fn migration_settings(
view: crate::agents2::AgentView,
window: &mut Window,
cx: &mut App,
) -> AnyView {
cx.new(|cx| settings::SettingsTab::shared(view, window, cx))
.into()
}

impl AgentType for RemoteWorkspace {
fn id(&self) -> &'static str {
TYPE_ID
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ pub enum Picker {
const FAST: &[(&str, &str)] = &[("off", "Off"), ("on", "On")];

pub struct SettingsTab {
shared_destination: bool,
view: AgentView,
/// The saved settings the draft started from.
saved: Config,
Expand Down Expand Up @@ -134,6 +135,7 @@ impl SettingsTab {
}));
}
let mut tab = Self {
shared_destination: false,
view,
runtime: saved.runtime.clone(),
effort: saved.effort.clone(),
Expand All @@ -152,6 +154,14 @@ impl SettingsTab {
tab
}

/// Batch settings leave each agent's instructions intact and use the
/// enrolled profile for credentials rather than copying environments.
pub fn shared(view: AgentView, window: &mut Window, cx: &mut Context<Self>) -> Self {
let mut tab = Self::new(view, window, cx);
tab.shared_destination = true;
tab
}

fn reset(&mut self, saved: Config, window: &mut Window, cx: &mut Context<Self>) {
self.model.update(cx, |state, cx| {
state.set_value(saved.model.clone(), window, cx)
Expand Down Expand Up @@ -506,7 +516,7 @@ impl Render for SettingsTab {
&c,
))),
)
.child(field(
.when(!self.shared_destination, |body| body.child(field(
"Environment",
TextArea::new(&self.env)
.rows(6)
Expand All @@ -523,7 +533,7 @@ impl Render for SettingsTab {
saving,
"Sent as the harness's system prompt when a thread's Sandbox starts.",
&c,
))
)))
.map(|this| {
let sending = self.enroll.sending;
let owner = enroll_form::owner(cx).map(|owner| owner.pubkey_hex());
Expand Down
2 changes: 2 additions & 0 deletions apps/buzz-gpui/crates/app/src/agents2/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ pub mod listings;
pub mod objects;
mod presence;
pub mod registry;
#[cfg(feature = "voltage-sandbox")]
pub mod remote_migration;
pub mod runtime;
mod service;
pub mod store;
Expand Down
Loading
Loading