mirror of
https://github.com/stablyai/orca.git
synced 2026-10-23 16:03:49 +00:00
* perf(renderer): keep worktree lineage map identity on no-op refresh A host-scoped lineage refresh always spread IPC clones into new maps, so WorktreeList Object.is subscriptions missed every time even when capture, taskId, and coordinatorHandle were unchanged. Reuse structurally equal records, return the previous maps when nothing moved, and skip set() when both maps are still current so a no-op refresh is actually a no-op. Co-authored-by: Orca <help@stably.ai> * type(store): mark worktree lineage maps readonly Widen reuseEqualRecordMap and the renderer lineage store fields to Readonly<Record<...>> so a reused no-op refresh map cannot be mutated in place. Co-authored-by: Orca <help@stably.ai> * type(store): build lineage overlays on mutable records mergeExactHostLineage was writing into AppState map types after they became Readonly. Use local mutable Records, then reuseEqualRecordMap. Co-authored-by: Orca <help@stably.ai> * fix(renderer): keep direct-ssh host hydration under the max-lines cap The lineage overlay rewrite pushed the file to 305 counted lines against the 300 cap, failing oxlint. Fold the duplicated per-map filter/overlay into one scoped helper so both maps share it. Co-authored-by: Orca <help@stably.ai> * perf(renderer): drop dead reuseEqualRecordMap key loop A key missing from next always shows up as either a key-count mismatch or a failed previous lookup in the first pass, so the second pass over the previous keys could never flip identical. Cover the identity contract with focused unit tests, including the same-count key swap that the removed loop appeared to guard. Co-authored-by: Orca <help@stably.ai> --------- Co-authored-by: Orca <help@stably.ai>