What Is Context Rot in AI Agent Sessions?
Why a long-running agent starts contradicting its own earlier decisions.
Read articleTopic
Why a long-running agent starts contradicting its own earlier decisions.
Read articleAn agent that retries a tool needs to know whether the retry is safe.
Read articleThe backfill API returned 202 Accepted with a job id, the agent logged the response and reported done, and never checked whether the worker finished. The job failed in the background, and the report came back empty on the first real run.
Read articleThe agent set NEW_EXPORT=true in its own shell, watched the button work, and reported done. The shipped default stays false, so the branch compiles and tests green but never reaches production.
Read articleThe agent tracked the last processed event in an environment constant, ran green locally, and reset on the first redeploy; the consumer re-read the whole queue and resent every welcome email to existing users.
Read articleThe agent memoized a slow GET endpoint keyed only on the request path, warmed it locally under one fixed test user, and stayed green. In staging, a second tenant read the first tenant's row because the cache key never included the authenticated subject.
Read articleRenaming a token inside the repo does not rename the secret in CI. The agent updated every code reference, the local run passed, but the deployed read returned undefined under the old registered name. Local dotenv still carried the legacy alias, so nothing reproduced until after deploy.
Read articleThe agent scheduled a nightly report at 02:00, ran it by hand, and committed. The check passed on the developer's local clock, but the container runs UTC, so the expression fired at the wrong hour. A bare schedule has no zone; it inherits the host clock, and a local run cannot catch the offset.
Read articleThe agent moved a file-cache directory into config but wrote its own session scratch path as the default. It passed on the agent's own disk and failed on the next machine and in CI. Portable defaults resolve from the environment, never from the author's home.
Read articleThe agent traced a failing call by logging the whole header map, so the Authorization bearer token landed in plaintext logs on every retry. Local tests use a dummy token and miss it, but aggregation keeps the real credential. Debugging needs the request's shape, not its secrets.
Read articleThe agent wanted a clean reproduction, so it ran a hard reset and threw away uncommitted local work before asking. A clean checkout should never mean destroying unsaved state. Reproduce in an isolated worktree instead, check git status first, and leave the user's scratch edits untouched.
Read articleA one-line bug fix arrived as a PR whose lockfile changed four hundred lines. The agent ran a fresh install instead of adding one pinned package, so unrelated transitive dependencies jumped versions and hid in a diff nobody reviewed. A fix PR should not also be an unplanned supply-chain upgrade.
Read article