Skip to main content

Module diff

Module diff 

Source
Expand description

Host façade over the diff subsystem, which now lives in the lattice-diff crate (moved out of lattice-host at BC.6/DX.6).

The pure algorithm (Hunk, HunkIndex, compute_diff) and — since DX.6 — the host-attached subsystem (DiffSubsystem + DiffSession lifecycle, diff-mode, and the overlay/filler/fold/pane-group presentation providers) both live in lattice-diff. This module re-exports those crate modules under the historical crate::diff::* paths so existing host call sites (dispatch, boot, the TUI + GPUI renderers) are unchanged. DX.7 collapses the boot wiring into lattice_diff::install(boot) and begins retiring these shims.

The one piece that stays host-side is resolver: the BufferRegistry-backed impls of the subsystem’s BufferTextProvider / DocumentBufferResolver seams (coupling C6; they reference the host BufferRegistry, so they can’t move). They are re-exported under subsystem so crate::diff::subsystem::BufferRegistry{TextProvider,DocumentResolver} still resolves everywhere.

See docs/dev/architecture/diff-extraction.md for the cut and docs/dev/operations/slice-plans/diff-extraction.md for sequencing.

Modules§

filler
D.4.c (2026-05-29) / D.6.b (2026-05-31): hunk-alignment filler rows.
fold
D.3.f.1 (2026-05-29) / DX.3-C7 (2026-06-24): HunkFoldSource.
mode
diff-mode minor mode + the host-side bridge that toggles it on participating buffers as DiffSessions open and close.
overlay
D.3.a (2026-05-29) — DiffOverlayVirtualRowProvider.
pane_group
D.4.b (2026-05-29) / D.6.b (2026-05-31): HunkRowMapper.
resolver
Host-owned BufferRegistry-backed impls of the diff subsystem’s resolver seams (DX.6, coupling C6).
subsystem
crate::diff::subsystem — the moved lattice_diff::subsystem surface PLUS the host-owned BufferRegistry-backed resolver impls, so every crate::diff::subsystem::* call site (including BufferRegistryTextProvider / BufferRegistryDocumentResolver) resolves unchanged after the DX.6 move.