Open a second agent or workspace on a host where something else is already streaming, and the new tab stays cold until the stream pauses. On slow storage it can sit there for the entire turn. Nothing is wrong with the agent being opened - it is waiting on a cache read that keeps restarting. This is getpaseo/paseo#4813, fixed in PR #7074.
Why it happens
The replica cache guards a read with a revision check - capture the host revision, read the rows, and return only if the revision has not moved and nothing is pending. The revision is tracked per host, not per row, and every stream flush advances it. A streaming agent flushes its timeline many times a second, so the revision moves constantly while that unrelated agent works.
Each time the read loop retries it also forces a full persist first, which serialises every pending row and writes them out. The measurements in the report make the shape obvious - a single read of agent-1 while agent-2 streams cost 201 store reads and 200 forced writes, because each iteration saw the revision had moved again. With commits arriving faster than persist plus read, the loop effectively never settles.
The fix
Invalidate an in-flight read only when something touches the rows that read asked for - an update or delete to those rows, a replacement of the directory baseline that covers them, or a host lifecycle change. Unrelated commits leave the read alone.
// too broad - any commit restarts every read
if (hostRevision !== capturedRevision) retry()
// scoped - only changes to what this read requested matter
if (requestedRowsChanged || baselineChanged || hostLifecycleChanged) retry()
Keep the persistence contract intact. Reads should still return persisted rows and fail closed when storage rejects pending writes - the earlier overlay approach fixed the churn but handed back unpersisted data after rejected writes. Row-scoped invalidation cuts the retry storm without weakening durability.
The generalisable part is the guard. When a cache read is fenced by a revision, decide what that revision covers before wiring it to the read. A single host-level counter turns every unrelated write into a reason to restart every reader.