mirror of
https://github.com/block/buzz.git
synced 2026-10-29 21:41:33 +00:00
## Why Thread-scoped ACP sessions from #6732 need an opt-in desktop rollout that preserves today’s channel policy by default. ## What - Add the default-off “Thread Scoped ACP Sessions” toggle under Settings → Experiments using the existing feature-override persistence. - Map the persisted setting to `BUZZ_ACP_SESSION_POLICY=channel|thread` for every local and provider-backed managed ACP launch. Changes apply when managed agents next start; DMs remain conversation-scoped by the backend. - Keep the desktop setting authoritative over descriptor environment and cover the UI, persistence, local spawn, provider payload, and existing Projects/Workflows experiments. ## Risk Assessment Low. The experiment defaults off and explicitly preserves `channel`; changes are limited to managed-agent launch configuration. Existing running agents are unchanged until their next start. ## Testing - `. ./bin/activate-hermit && just ci` — passed on the final restacked tree, including 5,674 desktop tests, 2,796 Tauri tests, and 1,860 mobile tests. - `cd desktop && pnpm build:e2e && pnpm exec playwright test tests/e2e/experimental-features.spec.ts --project=smoke` — 1 passed. - `. ./bin/activate-hermit && cargo test --manifest-path desktop/src-tauri/Cargo.toml session_policy --lib` — 4 passed. - `. ./bin/activate-hermit && cargo test --manifest-path desktop/src-tauri/Cargo.toml commands::agents::deploy::tests --lib` — 15 passed. - `. ./bin/activate-hermit && cargo test -p buzz-backend-kubernetes --test wire_fixtures` — 4 passed. ## Stack Info Stacked on #6732. This PR depends on #6732 and should merge after it. Generated with Codex --------- Signed-off-by: Salman Mohammed <smohammed@squareup.com> Signed-off-by: Leo <5faf251baee50ee6bcde338aef6acdd70bb3e60115664c2cd490d94a55dfc488@buzz.block.builderlab.xyz> Co-authored-by: Leo <5faf251baee50ee6bcde338aef6acdd70bb3e60115664c2cd490d94a55dfc488@buzz.block.builderlab.xyz>
26 lines
767 B
TypeScript
26 lines
767 B
TypeScript
import { invokeTauri } from "@/shared/api/tauri";
|
|
|
|
export async function applyCommunity(
|
|
relayUrl: string,
|
|
nsec?: string,
|
|
token?: string,
|
|
reposDir?: string,
|
|
agentManagedProfiles?: boolean,
|
|
threadScopedAcpSessions?: boolean,
|
|
): Promise<void> {
|
|
await invokeTauri("apply_workspace", {
|
|
relayUrl,
|
|
nsec: nsec ?? null,
|
|
token: token ?? null,
|
|
reposDir: reposDir ?? null,
|
|
agentManagedProfiles: agentManagedProfiles ?? false,
|
|
threadScopedAcpSessions: threadScopedAcpSessions ?? false,
|
|
});
|
|
}
|
|
|
|
export const setAgentManagedProfiles = (enabled: boolean) =>
|
|
invokeTauri("set_agent_managed_profiles", { enabled });
|
|
|
|
export const setThreadScopedAcpSessions = (enabled: boolean) =>
|
|
invokeTauri("set_thread_scoped_acp_sessions", { enabled });
|