Draft and Focus

Photography, Productivity and AI

The Demo Worked. Mine Didn’t.

The first agent that broke wasn’t Vera. It was Giulia.

I’d sent her into the background to file some vault notes while I worked on something else. She reported back fine. Searched the right folders, identified the right structure, confirmed the file paths. Then nothing. No new files appeared. I ran the session again. Same result: clear thinking, no output. The Bash calls worked. The Write calls didn’t.

The error was “Call EnterWorktree first.” That message doesn’t appear in any documentation I could find quickly. It looked like a permissions problem. It wasn’t.

What Agent View actually is

Anthropic shipped Agent View in Claude Code v2.1.139 as a Research Preview. You launch it with claude agents. What you get is a dashboard of every Claude Code session you have running: active, waiting on input, or finished. Each row shows the session state and the last message. If an agent is blocked waiting for you, you can answer inline and it picks back up.

The other half of the feature is background sessions. You can spawn one with claude --bg [task] from the terminal, or push a running session to the background with /bg. The idea is you send an agent off to do something, check on it when it’s done, and keep working in the meantime.

For most Claude Code users, that means spinning up a background coding task and glancing at it later. My use case is different.

My setup

I run 14 custom agents defined as .md files in .claude/agents/. Each has a name, a persona, a tool list, and a model assignment. Vera is the chief of staff, Sofia does research, Marco writes, Luca critiques, Giulia handles vault filing, Ren manages content distribution. Plus eight others handling coaching, finance, travel, and code. I’m based in Bangkok, working in AI delivery at Accenture, and I built this setup to run the non-client side of my work: writing, research, knowledge management, a few personal areas.

It’s not a coding assistant. It’s closer to a personal operating system with named roles.

When Agent View shipped, the fit looked obvious. Spawn Giulia to file vault notes, let Marco draft in the background, watch both from the agent dashboard, step in when either one needs me. That’s the vision.

What actually broke

Background sessions block Write and Edit. Bash runs fine. But any attempt to write a file throws “Call EnterWorktree first” and stops.

The agents could search, read, run shell commands, produce analysis. They just couldn’t touch files. For most of my agents, file writing is the whole job.

I checked permissions first. The tool lists were correct and the file paths were valid. The problem wasn’t what I had or hadn’t allowed. It was a gate I didn’t know existed.

The actual cause

Claude Code has a worktree gate. Background sessions block file-writing tools until a worktree is initialized. That initialization doesn’t happen automatically. From the behaviour, it looks like the gate fires before any permission check runs, which is why granting every permission doesn’t fix it. Bash is exempt. Everything else that touches the filesystem isn’t.

I didn’t figure this out alone. I was debugging with Claude, and it kept going off in different directions, mentioning git. I stopped it and asked: “The vault is local, why are you referring to git?” That question is what surfaced the worktree concept. A simple question, and the answer came with it.

Once the worktree concept was on the table, the path to the fix became clear. It was a configuration issue in how the agents are set up. Not a permission. Not a missing tool. Just the way each agent initializes when it runs in a background session. I updated all 13 agents that write files. The Synthesizer is read-only by design, so it didn’t need the change. The whole fix took about ten minutes once I understood what I was actually looking at.

What it enables now

After the fix, the vision works. I can send Marco a draft task in the background, send Giulia a filing task at the same time, and check on both from Agent View without switching terminals or interrupting my own focus. When either one needs input, I answer in the agent dashboard and they continue.

I’m not sure how much of this holds under sustained use. I’ve been running the setup for a few days, not a few months. Some agents are clearly built for this. Giulia files, Marco drafts, Sofia researches without needing me in the loop. Others probably don’t need background mode at all. I haven’t tested every combination.

The honest limit is that background sessions are still early. “Research Preview” on a feature means it works but expect rough edges. I’ve hit one already. There are probably more.

The gap is always implementation detail

Every tool ships with a demo. The demo usually works. What the demo doesn’t show is what breaks when you plug the tool into your actual setup: the one built over months with specific file structures and agent roles that weren’t part of anyone’s design spec.

I spent a few hours convinced the problem was a permission I hadn’t granted. It wasn’t. The gap was a gate I’d never heard of, and a question I hadn’t thought to ask cleared it. Not dramatic. But I wouldn’t have found it without asking a basic question about why Claude kept bringing up git.

That’s the part that stays with me. Not the fix itself. The fix took ten minutes. What took longer was stopping to ask the obvious question instead of assuming I already understood the system.


Leave a Reply

Your email address will not be published. Required fields are marked *