mirror of
https://github.com/stablyai/orca.git
synced 2026-09-28 16:02:45 +00:00
A code review found defects that thirteen prior review rounds missed, two of them regressions against the renderer this replaced. Every e2e spec clicks into a diff before exercising a shortcut, which is precisely the action that masked the first one. - The Pierre host was never focused on mount. Monaco's DiffViewer.handleMount called focus() on every single-file mount (combined rows did not), so opening a file from the sidebar left Cmd+F and F7 dead until the user clicked. autoFocusHost restores it for the single-file tab only. - F7 reset to the first hunk on every re-parse, because registerDiffNavigator always cleared the cursor and DiffViewer re-registers whenever fileDiff identity changes. The cursor now survives a re-registration of the same file and clamps if the hunk count shrank. - A highlight rejection that settled before the parse snapshot committed was overwritten by the success path, so once the worker pool latched failed every read-only diff rendered unhighlighted with no error and no Retry. - An edit scope stayed reserved when Pierre never emitted complete, permanently demoting that row to throwaway :concurrent: sessions and losing undo history. - Cmd+H forced the additions side without writing sideRef, so the next Cmd+F retargeted Original and tore down the replace row. - Pure deletions fell back to an old-file line number, so Original-side search expanded an unrelated collapsed hunk instead of revealing the match. - The search onPostRender identity lived in the options memo, and Pierre treats a changed onPostRender as forceRender, so every match step fully re-rendered the mounted range. - The error boundary resetKey was built from tab identity and path, neither of which moves when content changes, so a caught render throw stayed latched through saves and rewrites. It now uses the content-derived cacheKey, and the comment describes what the code does.