You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Flaky: grok exact store lookup misses the held session beside an older events file on CI #1994
server/grok.test.ts › "exact store lookup › resolves Herdr's session safely when another file is held beside an older session's events file" failed once in CI on an unrelated PR (#1979, which does not touch Grok code):
Locally the same describe passes 12 runs out of 12 (bun test server/grok.test.ts -t "exact store lookup"), and bun run check fast passed on the same tree. The scenario holds files open in a spawned child and resolves the store from its descriptors right after the child's spawn event, so the test may read the child's descriptors before they are all visible on a loaded runner. Recent changes in this area: #1733, #1894, #1858.
A lead for whoever picks this up: in the failing scenario, server/grok.test.ts:279 writes the closed session's events.jsonl beside the lock without utimesSync, so its mtime is the current time, newer than the reported session's events.jsonl (200). Every other file in the scenario gets a fixed mtime. If resolveGrokStore weighs mtimes when it judges a held file beside an events file, this one is the time-dependent input.
Activity
devswha commentedon Oct 26, 2026
It happened again on #1979's rerun (head 19d2346, which touches no Grok code), with the same assertion at server/grok.test.ts:330: https://github.com/devswha/ovis/actions/runs/40306658219/job/121545080405. Two of two Fast checks runs on that branch hit it, and it passes locally.
devswha commentedon Oct 26, 2026
A lead for whoever picks this up: in the failing scenario, server/grok.test.ts:279 writes the closed session's events.jsonl beside the lock without utimesSync, so its mtime is the current time, newer than the reported session's events.jsonl (200). Every other file in the scenario gets a fixed mtime. If resolveGrokStore weighs mtimes when it judges a held file beside an events file, this one is the time-dependent input.
fix(terminal): end a pane's recovery wait when its terminal leaves it…
fix(tests): wait for the Grok fixture process to run before reading i…