Theme
Working with agents
How to run AI coding agents day to day: memory, context, handoffs, many sessions at once.
101 posts by DX, in two lanes: plain-language stories and the technical build log.
Everyday lane
Plain-language stories. No jargon. 13 posts.
Start here
A Seven-Hour Session With 390 Prompts and No Record
A day of overlapping AI work showed us why every open task needs a name, a record, and a clear end.
Giving agents context that stays accurate
-
ManageRoster260224.js Looked Right and Was the Wrong File
A small project rule stopped coding assistants from repeatedly making changes that vanished at the next rebuild.
-
One word made a harmless 256 KB file tool disappear for one assistant only
A tool that could only create a small, sandboxed file was labeled with an accurate, generic warning. One AI assistant handled that label fine. Another one treated it as a reason to refuse the tool entirely.
Agent memory, notes and session handoffs
-
Why Context Switches Kept Costing Another Paragraph of Background
As more work moves across projects, tools, and people, the hidden cost is often the same: someone has to keep restating what matters. A shared, readable record can make restarting less expensive.
-
Opening the Shared Folder Before Trusting a Saved Notice
When someone says the notes were saved but the next person cannot find them, the handoff is not complete. Treat a readable shared record as the proof.
-
Why One Colleague Keeps Refilling the Same Handoff Detail
A repeated correction is not always quality control. It can signal that the process or tool is producing an unreliable result.
-
Splitting One Memory File Into Two Shelves Under 180 Lines
A memory can sit safely in a file and still be missing when the system needs it.
Running agent sessions and browsers unattended
-
Why our automated jobs kept opening browsers on top of each other
We stopped treating browser trouble as a bad setting and built a way for several jobs to share it without stepping on each other.
-
What Three Stopped Batches Taught Us About Who Owns Chrome
A small setup habit kept a task from running unless someone stayed close enough to rescue it.
Tracking many sessions and catching mistakes
-
A Seven-Hour Session With 390 Prompts and No Record
A day of overlapping AI work showed us why every open task needs a name, a record, and a clear end.
-
172 Messages, 180 Messages, and a Stranger at 8:38
At 8:38 AM a session appeared on our command board that we did not start. Our own helper had created it, nothing on it said so, and by the end of the day 5 of 18 sessions were the same kind.
-
The filing spot that did not exist at the other office
We closed out one piece of paperwork by hand and hit seven separate annoyances doing it. Instead of just remembering to be careful next time, we wrote each one down as a rule the process now follows automatically.
Measuring and managing AI cost and quota
Coordinating multiple agents without wasted effort
Technical lane
The build log: the logs, the code, the fix. 88 posts.
Start here
A 522-Line Markdown File Changed Every Session We Start
A committed AI context file turns repeated codebase explanations and product guardrails into a reviewable project artifact that sessions can be instructed to read first.
Giving agents context that stays accurate
-
A 522-Line Markdown File Changed Every Session We Start
A committed AI context file turns repeated codebase explanations and product guardrails into a reviewable project artifact that sessions can be instructed to read first.
-
What a 200-line README and a Current Truth section did to agent startup
Two days after we bootstrapped a new app, we stopped asking agents to read a 3,500-token README.
-
Every AI assistant here edited ManageMembers260224.js and the change vanished on rebuild
AI assistants kept editing date-stamped build output instead of the src files. A .cursor/rules glob encodes the correction once so every session inherits it.
-
621 Reference Files Sat Next to a Folder Labeled NOT for AI
The audit counted 621 reference files in docs/ and 57 files in dev-notes/, whose top level label said NOT for AI.
-
The bootstrap doc named the right script and the wrong working directory
Two commands went into a doc every new working session reads. They were correct, and they would have failed for the first person who pasted them.
-
What task-1234 Resolves To and Why Our Agents Stopped Role-Playing
The context primitive for AI agents is a scope: a deterministic, enumerable file set every consumer resolves the same way.
-
Why Our Agent Kept Re-Learning a Lesson Another Clone Already Had
Claude Code's local memory is keyed to the working directory, so separate clones did not automatically share useful context. Durable project knowledge needed a reviewed, Git-tracked home in the repository.
-
/add-dir Doesn't Reach Across Your Skills: The IDE-vs-CLI Claude Code Gotcha
In the Claude Code CLI, /add-dir grants file access but not skills: discovery stays rooted at the session cwd, so cross-repo skills belong at the user level.
-
Reverse-Engineering Claude Code's Session JSONL (So You Can Analyze Your Own Transcripts)
Claude Code logs every session to undocumented JSONL. Three parser traps: launch-cwd directory names, tool results labeled as user turns, and the nearly absent aiTitle.
-
Why verify-hotfix-branch.sh Passed a Branch Cut From develop
Claude was following a hotfix procedure that could put develop work into production. The first diagnosis was that the agent had forgotten a routine, and that diagnosis was wrong.
-
Merge Conflicts in .gitignore and an Auth Helper Kept Repeating
A workflow cleanup became a twelve-clone migration when long-lived environments had drifted at the same shared files. The code change was only part of the work; the migration record made it repeatable.
-
What /add-dir did in the CLI but not in Cursor's Claude Code panel
Closing a client ticket from outside its own repo proved that shared agent skills belong one level above any checkout, where every session can call them.
Agent memory, notes and session handoffs
-
A 24-Hour Download URL Nearly Cost the Next Session an Hour
Skip the end-of-session handoff and the next session pays to rebuild state you already held. The six-section structure that turns resuming into a lookup.
-
Why Every Note Needs an Owner, a Source and an Expiry Date
As parallel work increases, repeatedly reconstructing context becomes a real cost. Durable notes and handoffs can help when they are scoped, classified, current, access-controlled, and used as evidence for human judgment rather than as automatic instruction.
-
Why a backlog cleanup turned a triage prototype into a field schema
A backlog cleanup exposed a boundary between readable AI commentary and operational state. When an output must drive routing, filtering, or review, it needs a documented structured representation as well as its human-readable rationale.
-
Session 005 Turned a Late-Night Judgment Call Into a Slash Command
At 10:44 PM, session 005 had 33 minutes left. Two entangled work items, a test foundation and a release-tracking board, still had to ship.
-
Three Reports of Saved, One Readable Record
A review or handoff is not complete when an agent says it saved the work. It is complete only when the receiving system can read the exact record that the next decision depends on.
-
200 Lines of Memory Loaded and Everything Else Silently Dropped
We kept saving goals to our agent's memory and they kept vanishing by the next session. The cause was a silent truncation cap, and the fix is a pattern anyone running long-lived AI should adopt.
-
Zero Duplicates Found, Because the Memory Records Contradicted Each Other
The memory index was over its size target, so we went looking for duplicates to delete. We found zero.
-
Our v2 Prototype Had Branch Protection and No Reviewer
On June 1, we deleted a pull request trigger from a repository where no human reviewer was ever going to use it.
-
What a 266 Line PaymentInfo Component Says About Three Dead Branches
Three complete FormDialog implementations, Clean, Redesigned, and Simplified, were gone by the time we made the integration commit on October 19, 2025.
Running agent sessions and browsers unattended
-
The Agent Kept Asking Us to Launch Chrome on April 6
Manual setup can leave an unseen human in an agent workflow. A lifecycle-ownership audit for every dependency, starting with the browser, reveals which steps are not yet safe to run unattended.
-
Port 9222, Ten Agents, and a Window Opening Where No Monitor Existed
One agent's browser is a config change. A fleet's browser is infrastructure: a locked slot pool, an isolated binary, tiled windows, and sticky logins.
-
Magic Link Worked and Then claude.ai/logout?involuntary=1 Showed Up
Both claude.ai session URLs bounced to claude.ai/logout?involuntary=1 before anyone had typed anything, and the login page carried returnTo=%2Fcode%2Fsession... so the redirect was clearly deliberate.
-
The one-time Chrome launch that stranded session 11 without a browser
Session 11 had no browser, and it was not the first session to lose one.
-
A Forced-Command SSH Key Called rc_spawn.sh From a Phone
At 6:51 PM, the direct SSH action in iOS Shortcuts was blocked before it could create a single desktop session.
-
229 Prompts Before We Built the Session Host
We spent 229 prompts asking an editor extension to manage windows, then built a session host instead.
-
A desk that measured 162 context switches an hour
Our next request had nowhere to go. The central hub screen was locked while it worked through another problem, and we were hunting for a place to type.
-
The device_key_missing kick-out kept signing the agent Chrome out of claude.ai
Every window the main agent Chrome owned was filed as the author's, and no lane would touch them. The fix was for a recurring wrong-Chrome confusion.
-
A 3h 22m Debugging Session Chasing Taskbar Buttons in the Wrong Layer
Ten agent sessions, ten identical Chrome icons on the taskbar. We had added session automation so an agent could open a window for each session under one user. We expected one button.
-
The Bot Block That Wasn't, and Seven Sessions Under the Editor
We blamed bot detection for a sign-in kickout. The URL named the cause, and the process tree showed 7 of our 8 agent sessions were children of Cursor.exe.
-
344 browser tool calls, 62.8 minutes, zero Clarity funnels saved
A work log line read 213 calls, 40.0 minutes, and the last thing the agent did was hit a hard budget of 211 calls and 252k tokens of context. It saved zero funnels.
Tracking many sessions and catching mistakes
-
Breaking Every Chat Into Trackable Units
355 chat sessions turned into 1,748 work units in one backfill, and the first thing the verifier caught was a git attribution label that was wrong.
-
A Two-Prompt Session With 91,958 Cached Tokens Showed Up Unannounced
At 8:38 AM, our command dashboard showed a session on our plate that we had not opened. We were sure we had closed every session we opened.
-
The /sync Warm-Up That Turned Up Half a Dozen Hidden Conflicts
The agent hit a missing skills index in the first minute and offered to build one. We told it to go ahead. That was the last straightforward decision of that day.
-
The workflow broke in the glue code, not the AI
We spent a morning fixing five workflow gaps we'd been compensating for by hand. None were model failures. All lived in the glue code between tools.
-
feedback_ground_state_before_action Fired and Failed Five Times in One Day
Our memory of where Claude sessions go wrong kept resetting every week. So we made the transcripts keep score instead.
-
A nightly job filed its first investigation at 12:06 AM
Our agent systems were producing more edge cases than we could reasonably hunt for by hand. The evidence was scattered across transcripts, investigation files, task history, and commits.
-
After seven hours, we couldn't remember which model we were talking to
A 414-prompt pairing day where the active model was never surfaced. Session continuity and model-identity continuity are different things, and a footer line fixes it.
-
The 63-Second Prompt That Reopened a Session We Had Just Closed
The session was fresh at 4:31 PM. By 6:06 PM it was closed: server off the LAN, metered key out of the environment, and one line we'd been putting off finally verified.
-
Three Copies of the Firewall Page and Version 18, 27, 31
The first two edits to the search query bounced off a hook at 3:55 PM. The agent had swapped the LIKE escape character from a backslash to !:
Coordinating parallel agents on one machine
-
Why Our Ten Parallel Clones Stopped Accepting New Tickets on July 18
On July 18, five of our ten clone cells looked unavailable even though the tickets tied to them were already finished or closed.
-
When Your Agents Need a Coordinator
Two agents both wanted to write to the same place at the same time, and the only thing standing between that and a corrupted file was a person watching two terminal windows.
-
An unmerged branch, a stale main, and five sessions at 11:58 AM
At 11:58 AM, five agent sessions were still live when we needed to advance `main` in the shared coordinator checkout.
-
Slot 022 lost its session manifest and nothing told us
The lease said held. The board said stale. Both were reading the same file, and both were right, for different definitions of "right."
-
30 Clones, 20 Stale Branches, and Commits That Lived on One Disk
An audit of 30 clones of one web platform turned up 20 stale branches and work that existed on a single machine. The cause was a ticket close that never cleaned up after itself.
-
230 MB Free on C: and the Cleanup That Hit Every Other Claude Session
Our C: drive hit 230 MB free out of 231 GB. We cleared the obvious junk and got 18 GB back.
-
The SingletonLock Behind Our Intermittent Playwright Timeouts
Intermittent Playwright failures across parallel Claude Code clones traced to one shared Chromium profile lock. The --isolated flag removed the contention.
-
The Window Grid Said Slot 4 Was Empty and Buried a PowerShell Terminal
The always-on window grid was placing new session windows at 11 of 11 exact slots, 30px gap per cell, everything snapping into place.
-
Codex Cited a Line in a 1218 Line File and Missed
We were building an autonomous PM loop, the kind of thing that wakes up on its own, looks at what is open, and proposes the next move. The hardest decision of the day was where it should run.
-
Moving Claude Code Off Your C: Drive: The 12.4 GB VM Bundle and the UWP Permission Wall
Claude Code ate our C: drive. Not a slow creep of logs and caches either. One file: a 12.4 GB claudevm.bundle sitting in AppData, the sandbox VM the desktop build spins up to run tools.
Shared memory and pipelines across AI tools
-
Why We Stopped Pasting Stale Context Into Three Different Chat Windows
We had four AI tools open most days. Claude Code on the desktop, ChatGPT in a browser tab, Manus running its own tasks, and whatever we were testing that week.
-
87 hours, 119 drafts, and one feed that only misbehaved for machines
We opened the ticket queue at 9:20 PM and closed it 87 hours and 21 minutes later, spread across overlapping sessions where we stopped pretending we were doing one thing at a time.
-
Why our Haiku credits produced 6,134 files that no screen displayed
We built 6,134 enrichment sidecars for our multi-agent system and found that nothing was reading them.
-
12 Manus Tasks in One Night via File Exchange
In one night we fired off 12 parallel Manus tasks. The batch included a 15-question architecture review, 10 parallel system audits, a synthesis pass, and a hosted visual map.
-
We Were About to Write a digest_job.py. The Platform Already Shipped It.
Three custom scripts died in one review because the platform already shipped each one. The five-minute 'is this native yet' check that finds out before you build.
-
A Cloudflare 530 at 10:59 PM and a tunnel that never restarted
The alert we wanted was a green checkmark on a cron job. What we got instead was a Cloudflare 530 at 10:59 PM, because a cloudflared tunnel had fired at boot before the network was up, exited, and never restarted itself.
-
Turning a Stack of AI Transcripts Into Beats for Under a Dollar
Five conversation transcripts added up to 858KB of Markdown, roughly 215,000 input tokens, all set to repeat the same system prompt in full, five times over.
-
Reworking a vector-retrieval scoring formula: stop letting raw similarity be 100% of the base
Fold similarity, importance, heat, and state into a weighted base that sums to 1.0, and save additive bumps for transient urgency. How we rebuilt a retrieval ranker.
-
46.9M Output Tokens Against 9.8 Billion Cache Reads
The weekly total came back as 46.9M output tokens and 9.8 billion cache reads, and we read the two numbers twice because we assumed we had misplaced a decimal. We hadn't.
Measuring and managing AI cost and quota
-
Untagged spend hit 22.4 percent before we trusted any bill number
Untagged spend was 22.4 percent of our AI bill. Untagged means the spend carried no label for the job behind it.
-
The token-killing proxy we tested instead of trusting discipline
After a single audit session burned 365,257 output tokens and 37,945,352 cache reads, we tested RTK, a proxy that compresses common command output before it reaches the model. The post is about why an IO-layer fix beats personal discipline once you are running parallel sessions.
-
Parallelism Isn't Free: The Real Cost of Fanning Out Agents
The work log for that morning says we ran a fleet of about 30 concurrent runs "after the author noted main-context iteration wasn't burning quota fast enough."
-
The Config File That Changed Our 4 AM Cron Without Telling Anyone
At 3:40 AM on September 10th, Claude Code hit its weekly limit and reset itself to 4 AM.
-
Three overnight jobs hit the same 5:30am session limit while the other seat sat idle
At 2:41 in the morning, one of our automated helpers came back with the same six words: \"You've hit your session limit, resets 5:30am.\" An hour later, a completely different job hit the identical wa...
-
Squeeze the Quota Before Sunday
At 12:19 AM a failure note said the spend gate had deferred a model call. It was not a code bug. The gate was rationing a weekly quota that was about to reset.
-
Why Our Pre-Reboot Sweep Committed the Wrong Version at 10:29
At 10:29 one morning we wrote the status line for a ticket, and it had to say two things that didn't fit together. One half of the work was finished, tested and pushed.
Coordinating multiple agents without wasted effort
-
What a 12-Turn Throttle Taught Us About Agent Ownership
By 10:36 on the night of August 2, a Codex review had told us the agent-team pattern we'd spent the day building was "not fit to copy as the staff pattern."
-
Five Minutes, 288 Checks a Day, and Zero Tokens
The cron run that started at 6:30 AM took 894.91 seconds, cost 735 credits, and ended with an EOF from the connector when it tried to deliver its findings.
-
The 5 Minute Silence Our Agent Kept in a Shared Channel
The evening a partner tested our agent with a money-move ask in #agents, the first thing we noticed was the wait. The request was handled correctly.
-
Our Agent Kept Telling Another Agent to Pull. There Was Nothing to Pull.
Our agent kept telling another agent to pull a fix it already had. The cause was that its posts had no mention, so nothing woke to read them.
-
A 1,900-Character Review Where Only One Line Mattered
The ci-alert/triage channel posted the same build failure four times between 4:11 PM and 6:43 PM on 2026-09-13: astro build fails: blog/[draft post file].md has status 'published' but missing requi...
-
451 Tokens Spent to Learn a Model Call Was Told to Wait
At 12:19 AM the cron-fail triage agent read a failed dxdev run and answered in 9 seconds, 451 tokens: spendgate deferred the dxdev model call (band orange, discretionary), not a code bug.
Orchestrating parallel sessions and trusting their reports
-
The Hub Doorway: One Chat to Orchestrate Parallel Sessions
The roll-up said nothing was running while an executor was mid-turn. That was the first live test of the hub doorway, and the board was confidently wrong.
-
A Load Average of 4.2 and Six `next dev` Processes Nobody Started
The load average sat at 4.2 on a box that should idle at 0.3. ps aux showed six next dev processes, oldest one three days alive, none of them attached to a terminal anyone was looking at.
-
Why the 201 closes from one sweep went into a log
1,016 open tasks went in and 201 came out closed. It took under two minutes of logged session time, and we don't trust any of those 201 closes yet.
-
Two 900-second agent runs and a git stash pop conflict that never resolved
At 11:05 that morning we asked the hub for four things. Two hours and forty-five minutes later it had shipped none of them, and said so itself before we could point it out.
-
A 106-line handoff note was saved, pushed, and still never arrived
The handoff note was 106 lines long, it was saved, it was pushed, and the AI session it was written for told us it had received nothing.
-
Why 3,277 done rows held nothing longer than 172 characters
Three transcripts ended on a clean stophooksummary followed by a prompt nobody had answered.
Measuring AI work and keeping its plans
-
The Commit Count That Went 2.3 Times Up
Everyone has a story about AI making their team faster. We audited ours: commits per person per year, tickets resolved, review comments. The team doubled its output in six months, and every person's gain landed in a different currency.
-
Three Objections From a Strong Coder Who Won't Use Claude Code
The strongest coder we onboarded to Claude Code is our lowest-usage adopter. Capability and conviction are separate axes, and a second demo can't close the gap.
-
The 26 Minute Test Suite Number That Was Really 497 Seconds
A vendor newsletter pitched an AI-native SDLC playbook, and checking it against our own workflow found one real gap: our plans died at the end of every session.
Pitfalls when agents share files and output
-
Our scheduled job parsed the model's reply and found only a footer
Headless runs of our AI CLI loaded our interactive hooks, and a plain JSON request came back as pure footer text. The lint we wrote to protect the fix passed on a broken file.
-
One grep command kept the nightly sweep from committing 190 files
A nightly sweep held an entire 190-file repository over a change one session never made. The tool had mistaken a read-only search for a claim of ownership.
More in this theme
-
Counting UNENFORCED fallbacks in the ledger and the background CLI
The spawnbudget lock failed open under load.
-
Your Memory Gate Is Guarding Against a Moving Target
Three of 87 agent launches were admitted in one day. The spawn admission gate deferred on commit.pct > 80, and commit sat at 81-87% all day.
-
Our First Claude Account's 20x Pool Ran Out Wednesday. We Spun Up a Second Account Mid-Week.
The 20x pool ran out mid-Wednesday, not at the end of a billing cycle. We'd already spent that morning tracing a 60% quota spike to a wide daytime spread of sessions plus one unattended overnight r...
-
Teaching My Partner's AI a Skill Without Handing Over My Stack
At 10:50 PM on 7/21, I did not hand my partner an API key, repository access, or a link into the registry that gives our agent system its internal shape.
Free and plain-worded:
- What not to paste into an AI tool. A privacy checklist to run before you hit send.
- AI prompts for small business: a starter pack. Copy-and-fill prompts for email, quotes, scheduling and summaries.
Hitting one of these walls in your own codebase or your own machine? Start an assessment or talk to us.