A context window that looks like infinite scroll is actually one of the tightest constraints on how well an agent reasons. Treating it as a managed budget, not a passive log, changes what a session should hold.
A coding agent’s context window looks, from the interface, like a scrolling conversation with no visible edge — you keep typing, it keeps responding, and nothing in the experience tells you where the limit is until you hit it. That interface is misleading in a specific way: it makes context feel like an infinite resource being consumed at a rate you do not need to think about, when it is actually one of the tightest constraints on how well the agent can do its job, tighter in practice than the model’s raw capability most of the time.
The failure mode is not running out of space and getting an error, which would at least be legible. It is a slower degradation that happens well before the hard limit: as a session fills with tool output, file contents, and back-and-forth, the model’s ability to weigh everything in that context correctly gets worse, and it gets worse gradually enough that it is easy to attribute the mistakes to the model being wrong rather than to the session being too full to reason over cleanly. I have watched an agent lose track of a constraint I stated clearly forty exchanges earlier, not because the words were not technically still in context, but because they were buried under everything that came after, competing for attention with a much larger pile of less important material.
Treating context as a managed resource rather than a passive log changes how a session gets built in the first place. The instinct to paste in an entire file "just in case it is relevant" or let a tool dump its full raw output into the conversation is the instinct that fills the budget with material the model will mostly ignore but still has to hold. The better habit is closer to what you would do managing any scarce resource deliberately: pull in only the slice of a file that is actually relevant to the current question, summarise a large tool result before it enters context rather than after, and treat every large paste as a cost that has to earn its place, not a free action because the window technically has room.
Compaction — summarising the earlier part of a long session down to what still matters, so the working context stays usable instead of just growing — is the mechanism that makes long sessions survivable at all, but it is not free either. A summary is a lossy compression of everything that happened, and what gets kept versus dropped is itself a judgement call that can go wrong, quietly, the same way the underlying degradation does. A session that has been through several rounds of compaction is running on a summary of a summary, and trusting it exactly as much as a fresh session with the full detail present is a mistake I have made and had to unwind.
The practical skill this adds up to is noticing when a session has become too full to trust, before it produces a mistake that reveals it after the fact. That is a judgement call, not a number on a progress bar — a session can be technically far from its hard limit and already past the point where its reasoning about something stated early on is reliable. Knowing that difference, and starting fresh or compacting deliberately rather than letting the scroll run on out of momentum, is the actual skill underneath what looks from the outside like just "using the tool for a while." Nobody teaches this skill directly, because the interface never asks you to notice it — it only ever asks you to keep scrolling, and by the time a mistake reveals the session was too full, the scrolling has already done the damage.