◉CLAUDE LABJP
●2.1.296 — Sonnet 5.5 cache reads drop to $0.10/Mtok (was $0.20), and the MCP description limit rises to 4,096 characters●2.1.295 — Hooks gain onFailure: "block", so a failed or timed-out hook no longer lets the action through●SONNET 4.5 — Retires on the Claude API on 11/30, 51 days left. Migrate to Sonnet 5.5●Q&A — A long-running report: the console jumps back to the top of history whenever output is appended●HAIKU 5.5 — Code written for Haiku 4.5 hits a 400 error on budget_tokens●NEW — When first requests keep missing, hand over a one-page description of your work first●2.1.296 — Sonnet 5.5 cache reads drop to $0.10/Mtok (was $0.20), and the MCP description limit rises to 4,096 characters●2.1.295 — Hooks gain onFailure: "block", so a failed or timed-out hook no longer lets the action through●SONNET 4.5 — Retires on the Claude API on 11/30, 51 days left. Migrate to Sonnet 5.5●Q&A — A long-running report: the console jumps back to the top of history whenever output is appended●HAIKU 5.5 — Code written for Haiku 4.5 hits a 400 error on budget_tokens●NEW — When first requests keep missing, hand over a one-page description of your work first
Articles/Cowork
◈ Cowork/2026-09-15Intermediate

What you keep the agent from walking matters more than what you hand it

Searching one connected Cowork folder for the same word gave three different answers. Here is what the default search silently left out, and how to measure a folder's scan scope once before you hand it over.

Cowork43connected foldersripgrepscheduled tasks12automation design

✦ Premium Article

Four Next.js sites, a pile of assets, and a drawer of half-written documents all live in one folder on my machine, and that folder is connected to Cowork. One morning the log from an unattended check held nothing but a search that had stopped partway through.

No error. The count was simply low, and the task moved on to the next step. Failing quietly is the hardest kind of failure to notice.

So I ran the same search by hand. grep -rl never came back, even after forty seconds. ripgrep answered in seven. But ripgrep found more files. Faster and more — one of them had to be lying, and I sat looking at the screen for a while.

The first thing worth saying is that neither search was lying. What was wrong was my assumption that the folder could be walked at all.

The same word, the same folder, three different answers

I searched the root of the connected folder for one word (premium) four different ways, with a forty-second ceiling. Anything that hadn't returned by then I recorded as cut off. This is the working folder I actually use as an indie developer, so the numbers are exactly what my environment produced.

CommandFiles foundTimeFinished
grep -rl premium .314 (when cut off)>40sNo
rg -l premium .4,1427.6sYes
rg -l --no-ignore premium .3,443 (when cut off)>40sNo
rg -l --no-ignore --hidden + excludes4,27813.3sYes

Only two of the four finished. And between those two there was still a gap of 136 files.

The "314" sitting in my unattended log was 314 out of 4,278. That is 7.3%. As an audit, it is barely distinguishable from having looked at nothing.

Four out of five files were not anything I wrote

To understand why grep -rl never finished, I counted what it was being asked to walk. One pass over the whole folder, classified as it went:

BucketFilesShare
Total103,845100%
Inside node_modules81,35978.3%
Inside .git7,0926.8%
Inside __pycache__120.0%
Everything else (the actual work)15,38214.8%

Only 14.8% of the folder was material I had written or would ever want to read. The rest was dependencies and Git internals.

The timings follow directly. find . -type f -name "*.json" returned 3,867 paths in 15.03 seconds. Pruning node_modules, .git, and .next returned 56 paths in 2.41 seconds — 69 times fewer results, six times faster.

One assumption came apart here. I had been treating four repositories as identical boxes on one shelf. Only three of them had node_modules on disk; the fourth had none. Boxes lined up on the same shelf are not guaranteed to weigh the same. The cost of a scan is set by which dependencies happen to be unpacked, not by how many repositories you own.

✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦You'll be able to tell, before an unattended search cuts off mid-run, whether a folder can actually be walked inside your time budget
✦You'll be able to count which files your default search quietly excludes in your own environment, and close the hole it leaves in an audit
✦You'll be able to drop the assumption that longer exclude lists are safer, and move to declaring scope on the command instead
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $15 for lifetime access
View Membership →

Related Articles

◈ Cowork2026-09-16
The scheduled task that only ran on days my desk was awake
Cowork scheduled tasks run remotely by default, but the moment one needs a local file or app, it runs only on your machine. Here is how the last field in the setup dialog decides that, and the three questions I now answer before creating a task.
◈ Cowork2026-09-05
I verify what my Cowork memory claims instead of trusting its timestamp
Persistent memory keeps asserting whatever was true the day you wrote it. After an unattended job quietly read an empty folder for months, I stopped judging memory by its modification date and started attaching a verification step to every claim that can rot.
◈ Cowork2026-08-29
The lock I left in a shared folder shut out every run after the first
A cloud-synced connected folder allows create, append, and rename, but refuses delete. Putting a single-instance lock there quietly disabled every unattended run after the first. Measurements for three lock styles, plus an implementation that picks a safe location.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links