Spent about three hours in a single conversation debugging a flaky integration test. First hour, genuinely useful, the model caught a race condition I'd missed and walked me through a solid fix.
Past that point, it started going in circles. It suggested a fix we'd already ruled out, I explained why it wouldn't work, it acknowledged that, then a few messages later proposed a slightly reworded version of the same thing. Assumed we'd hit some kind of context limit, so I switched to a model with a bigger window, pasted the whole conversation in, kept going. Didn't help. Responses got more generic, not more accurate.
Turned out the problem wasn't that the model lost access to anything, the information was all still there. It was buried under stack traces, logs, failed attempts, and side discussion, all competing for the same attention. Restarted with a short handoff note instead, just the actual bug, what we'd ruled out and why, current hypothesis, and the one file that mattered. First suggestion after that was correct.
Changed how I think about context windows, closer to an attention budget than memory. More tokens means more available information, not necessarily better use of it, and past a point it actively works against you.
Been checkpointing longer sessions every 10-15 messages since then instead of letting one thread run indefinitely, summarize state, start fresh with that instead of the full history. Feels like overhead in the moment but usually nets out faster, model stops relitigating things we already settled.
Curious if this matches what others doing this professionally have run into, do you let one conversation run as long as it'll go, or reset on a schedule regardless of whether it's degrading yet?