Skip to content

feat(app): agents run in chat wherever the box can, with no setting to turn it off - #153

Merged
sean-brydon merged 1 commit into
mainfrom
feat/structured-agents-always
Oct 18, 2026
Merged

sean-brydon merged 1 commit into
mainfrom
feat/structured-agents-always

Conversation

@sean-brydon

Copy link
Copy Markdown
Collaborator

Agents run in chat ("structured") wherever the box has the driver. There's no setting for it: it isn't in Labs and it isn't in Settings. This replaces #150, which made it a switch.

What changed

  • The structuredClaude pref is gone. structuredLaunch (now lib/structured-core.ts) picks the driver whenever the box has driver.claude, driver.codex or driver.acp. Otherwise the agent runs in its terminal, as on older boxes. An old saved structuredClaude is stripped when prefs load, so no migration is needed.
  • Permissions (Bypass | Ask) moves from Labs to the top of Settings › Agents and models, always shown:

    What new agents do when they want to run a command or change a file. Bypass lets the box allow it; their questions and plans still come to you. Ask brings each one to you.

  • Box defaults: the app always gives boxes {structured: true, mode}, with the mode from Permissions.
  • berthd with nothing saved now starts agents structured, asking for each permission (NoSavedDefaults = {Structured: true, Mode: "default"}). This covers agents started by the CLI, by other agents through the berth tools, or by runs on a box the app hasn't synced yet. It asks rather than bypasses because nobody chose to let them through. Terminal presets carry no skip-permissions flags either, so runs that used to start in a terminal behave the same. Once the app sees the box, it pushes the Permissions choice. A request that names "driver": "terminal" still gets its terminal.
  • usePaneView: a structured session opens as its conversation even with Labs off. A Claude moved to its own terminal keeps its switch back to the chat. Per-session "Open in terminal" is unchanged.
  • Docs: a new "Agents in chat" page (guides/structured-agents) replaces the Labs section, plus a changelog bullet. app-api.mdx notes the nothing-saved default.

Proof (mock)

Settings › Agents and models: Permissions, and no switch:

Labs without the structured rows:

Tests

  • e2e/agents-in-chat.spec.ts (5 tests):
    • Labs has no structured or Permissions row.
    • Agents has Permissions and no switch.
    • Settings search finds Permissions under Agents.
    • An old structuredClaude: false is dropped.
    • A structured chat opens as its conversation with Labs off, and a new Claude started with Labs off opens as a chat. With the old Labs check put back, this test fails.
  • structured-core.test.ts (new) and box-defaults-core.test.ts, which also checks that an old labs: false / structuredClaude: false changes nothing. pnpm test: 541 pass.
  • Go: agentdefaults_test.go covers nothing saved for Claude, Codex, ACP, an agent with no driver, a box without conversations and a broken file. mcptools_test.go checks that a berth-tools task is structured with nothing saved, in its terminal when saved off, and structured when on.
  • go vet, typecheck:plugins, check:titles, check:csp, check:themes, build, tsc -p e2e, cargo check and the docs build pass. Locally TestAttachPassesShiftEnter fails against tmux 3.7c; it passes in CI.

🤖 Generated with Claude Code

…o turn it off

The Labs "Structured agents" switch is gone: Claude Code, Codex and ACP
agents start structured whenever the box has the driver, Labs on or off,
and in their terminals on boxes without it. Permissions (Bypass | Ask)
moves from Labs to Settings > Agents and models. A saved structuredClaude
is dropped on load. A structured session opens as its conversation with
Labs off, and keeps the switch back from Claude Code's terminal.

berthd's default with nothing saved is now structured, asking for each
permission, so agents started by the CLI, other agents and runs on a box
the app hasn't reached run in chat too.

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 Building Building Preview Oct 18, 2026 5:52pm UTC
berth-docs Ready Ready Preview Oct 18, 2026 5:52pm UTC

Request Review

@sean-brydon
sean-brydon merged commit 72259d7 into main Oct 18, 2026
8 checks passed
@linear-code

linear-code Bot commented Oct 18, 2026

Copy link
Copy Markdown

ENG-6406

@sean-brydon sean-brydon mentioned this pull request Oct 18, 2026
sean-brydon added a commit that referenced this pull request Oct 18, 2026
The merge kept an old Labs page: the Structured agents switch and its
pref, which #153 removed (agents run in chat now), and the two-column
switch, which #154 moved to Appearance › Sidebar. main didn't typecheck.

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

This branch was successfully deployed

2 active deployments
Preview – berth-docs — 41749160 Deployed Oct 18, 2026 by vercel[bot]
Preview – berth — 41749160 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