Skip to content

feat(app): agents run in chat for everyone, with a setting to keep them in their terminals - #150

Closed
sean-brydon wants to merge 1 commit into
mainfrom
feat/structured-agents-default
Closed

sean-brydon wants to merge 1 commit into
mainfrom
feat/structured-agents-default

Conversation

@sean-brydon

Copy link
Copy Markdown
Collaborator

Structured agents leave Labs and are on for everyone. Claude Code, Codex and ACP agents now open as conversations, and berthd drives them through their stream, app server or ACP instead of typing into a terminal.

What changed

  • Default and gating. structuredClaude now defaults to true and no longer depends on the Labs master switch: structuredLaunch, agentDefaultsFor and the box-defaults sync all ignore labs. The stored key keeps its name.
  • The setting moved to a "How agents run" group at the top of Settings › Agents and models:
    • Run agents in chat turns it off, to run agents in their terminals. That stays as the fallback in case -p usage moves off subscription limits (design/structured-agents/plan.md).
    • Permissions (Bypass/Ask) moved here from Labs.
    • Labs no longer has either row.
  • Migration. Prefs v4 turns structuredClaude on once for everyone: off was the Labs default, so a saved false can't be told apart from a choice. After that, a person's own choice sticks. The migration now lives in lib/prefs-migrate.ts so it can be tested.
  • usePaneView. A structured session opens as its conversation even with Labs off. Before, it showed only the host's terminal render. A structured Claude moved to its terminal keeps its switch back to chat.
  • berthd default unchanged (terminal when nothing is saved). The app gives every box it reaches the person's setting as soon as it sees the box, so only boxes used just from the CLI keep the terminal default.
  • Docs. A new guides/structured-agents page, with a section on turning it off, replaces the Labs section. Plus a changelog bullet.

Proof (mock mode)

Settings › Agents and models, light and dark:

Labs without the structured rows:

Tests

  • pnpm test: 528 pass, including prefs-migrate.test.ts (5 tests) and the updated box-defaults-core.test.ts.
  • New e2e/structured-default.spec.ts (4 tests): on by default with no Labs switch, saved-off v3 prefs turned on once, off sticks across a reload, and a structured chat opens with Labs off. first-run, resume-picker, sidebar-columns, look and the a11y settings scenes pass too.
  • typecheck:plugins, check:titles, check:csp, check:themes, build, tsc -p e2e, cargo check and the docs build pass.
  • go vet passes. Locally TestAttachPassesShiftEnter fails against tmux 3.7c; the only Go change here is comments.

🤖 Generated with Claude Code

…em in their terminals

Structured agents leave Labs. New Claude Code, Codex and ACP agents run
structured by default, whether Labs is on or off, and a structured agent's
pane opens as its conversation without Labs too. Settings › Agents › How
agents run has "Run agents in chat" (off runs new agents in their
terminals) and Permissions, moved from Labs.

Prefs version 4 turns structuredClaude on once for everyone who had the
old default off; what they choose after that sticks. The migration lives
in lib/prefs-migrate.ts with its own tests. berthd's own default stays
terminal: the app gives each box its setting as soon as it sees it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
berth Ready Ready Preview Oct 18, 2026 4:54pm UTC
berth-docs Ready Ready Preview Oct 18, 2026 4:54pm UTC

Request Review

This branch was successfully deployed

2 active deployments
Preview – berth-docs — ace3a70a Deployed Oct 18, 2026 by vercel[bot]
Preview – berth — ace3a70a Deployed Oct 18, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant