Problem
The stream manager now bounds the event channel, but internal/ui.LogModel still appends every rendered log line to m.lines for the lifetime of the session. A long-running or high-volume container can therefore grow terminal UI memory without bound even though the upstream stream buffer is capped.
Proposed scope
Add a focused retention policy for the live log view, such as a configurable or documented maximum number of buffered rendered lines. Keep filtering display-only within the retained window and avoid changing Docker stream behavior.
Acceptance criteria
- The log view caps retained rendered lines at a documented limit.
- Filtering still works over the retained lines without interrupting streams.
- Tests cover retention behavior and ensure newer lines remain visible after the cap is exceeded.
Notes
This should be a UI-buffering change only. Do not combine it with stream manager refactors or Docker adapter changes.
Problem
The stream manager now bounds the event channel, but
internal/ui.LogModelstill appends every rendered log line tom.linesfor the lifetime of the session. A long-running or high-volume container can therefore grow terminal UI memory without bound even though the upstream stream buffer is capped.Proposed scope
Add a focused retention policy for the live log view, such as a configurable or documented maximum number of buffered rendered lines. Keep filtering display-only within the retained window and avoid changing Docker stream behavior.
Acceptance criteria
Notes
This should be a UI-buffering change only. Do not combine it with stream manager refactors or Docker adapter changes.