The last git calls the server waited for
Two checks still made Obeya's server stop and wait for git, and every page froze meanwhile: whether a workstream's landed work has reached the copy the plan docs are read from, asked again each time the plan docs were read; and the main branch's CLAUDE.md, read for each review card's agent as it starts. Both now run in the background.
Time the server stood still waiting for git
A canvas with 8 workstreams whose pull requests were merged but not yet fetched (their plan doc still leaves them open) and 3 review cards whose agents resume as the canvas starts. Then the plan docs are read 20 times, as landings, fetches and saved settings do. Code before and after this change, median of 3 runs (the number of calls was the same in each).
BeforeAfter
What changes
- A workstream that landed while its plan doc leaves it open is still planned again for the rest, now a moment after git has answered instead of the instant the plan docs are read. The answer is kept until that copy of the main branch moves, so reading the plan docs again asks git nothing.
- A review card's agent starts a moment later, once the main branch's CLAUDE.md is read; what was read is kept until the main branch moves. Messages sent to it meanwhile reach it once it has started.
- On a real machine each git call takes far longer than in these tiny scratch repositories (around 100 ms with large repositories and agents at work), so 8 such workstreams cost close to a second of freeze on every reading of the plan docs.