Context must leave
Every loaded item should have a lifecycle. It enters because it is needed, stays while it is active, and leaves when it becomes stale or superseded. Workflows without an eviction discipline accumulate context until the window is mostly archaeology.
Eviction is not forgetting
Eviction means moving the material to the right storage: file, history, index, ticket, or commit. The window should contain active work, not everything that ever happened. The pointer to the evicted material can stay in the index; the full text leaves.
The eviction question
Ask: would this content change the next decision? If not, keep a pointer and move on. The question is binary and fast, which is the only kind of policy a long session will actually follow.