Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
f3272f0
feat(review): scaffold git-workon-review lib+bin crate
lettertwo Jul 5, 2026
4b15795
docs: record review crate workspace placement in ADR-027
lettertwo Jul 5, 2026
6d0aa5e
docs(review): add stale-metadata-head trap to RFC corpus
lettertwo Jul 5, 2026
4d46395
feat(review): build diff model from git2 diffs
lettertwo Jul 6, 2026
3eab76d
feat(review): synthesize whole-hunk patches from the model
lettertwo Jul 6, 2026
a833f6d
feat(review): add patch applier over git2 and git CLI
lettertwo Jul 6, 2026
4e1ca15
fix(review): preserve real file mode when synthesizing patches
lettertwo Jul 6, 2026
126211a
feat(review): line-precise patch synthesis with direction rules
lettertwo Jul 6, 2026
c23532e
fix(review): splice EOFNL del-to-context lines in partial patches
lettertwo Jul 6, 2026
a46c9dc
fix(review): splice kept-deletion EOFNL and thread patch mode
lettertwo Jul 6, 2026
618fe3b
feat(review): route whole-file ops for added and deleted files
lettertwo Jul 6, 2026
5fa9cb1
feat(review): add FIFO staging queue with live-index direction
lettertwo Jul 6, 2026
f80b824
feat(review): add refresh coordinator with generation supersede
lettertwo Jul 6, 2026
5f1ee06
fix(review): fix staging pathspec glob and retry error swallow
lettertwo Jul 6, 2026
0271cf1
test(review): round-trip corpus across git2 and CLI appliers
lettertwo Jul 6, 2026
fd90b2e
docs(rfc): record git2-vs-CLI verdict and write-path decision
lettertwo Jul 6, 2026
27e9424
fix(review): downcast corpus panics and pin exec-bit scenario
lettertwo Jul 6, 2026
fdda5b2
docs(rfc): record review-found exec-bit and EOFNL divergences
lettertwo Jul 6, 2026
fa96f6b
feat(review): add combined diff and rename detection to acquire
lettertwo Jul 6, 2026
cefd789
feat(review): port SBS row alignment with collapsed context gaps
lettertwo Jul 6, 2026
93a0204
feat(review): port word-diff spans and tree-sitter highlighting
lettertwo Jul 6, 2026
be07f19
feat(review): render side-by-side diff frames with highlights
lettertwo Jul 6, 2026
dae4e28
feat(review): wire uncommitted-source TUI with event loop and nav
lettertwo Jul 6, 2026
e1372c3
feat(review): add inline layout with runtime toggle
lettertwo Jul 6, 2026
bd142bd
docs(rfc): mark M3 renderer milestone done
lettertwo Jul 6, 2026
d0a63ad
docs(rfc): lock M4 staging and zoom design
lettertwo Jul 7, 2026
84218e9
feat(review): make cursor drive navigation and scroll
lettertwo Jul 7, 2026
e571667
feat(review): add zoom states with gate matrix and split panes
lettertwo Jul 7, 2026
59102a0
feat(review): color combined view by staged-ness attribution
lettertwo Jul 7, 2026
12c6778
feat(review): add transient footer notice line
lettertwo Jul 7, 2026
693bb65
feat(review): rebuild diff state in place on manual refresh
lettertwo Jul 7, 2026
5e2d123
feat(review): stage and discard hunks and files via the queue
lettertwo Jul 7, 2026
adbd2dc
feat(review): stage and discard line selections
lettertwo Jul 7, 2026
1a49ff9
feat(review): refresh on external index changes via tick poll
lettertwo Jul 7, 2026
c5b0922
docs(rfc): mark M4 staging and zoom milestone done
lettertwo Jul 7, 2026
6feea84
feat(review): source review from the changeset stack
lettertwo Jul 7, 2026
0fce3d4
feat(review): navigate changesets and mark committed ones
lettertwo Jul 7, 2026
f0a8370
feat(review): add outline pane with flat and stack modes
lettertwo Jul 7, 2026
454fd6f
feat(review): add outline tree and stack-tree modes
lettertwo Jul 7, 2026
616f0d9
docs(rfc): mark M5 stack sources and outline done
lettertwo Jul 7, 2026
ea5f683
docs(rfc): reorder and split remaining milestones into M6-M9
lettertwo Jul 7, 2026
67b4380
feat(review): respond to COMPLETE dynamic-completion protocol
lettertwo Jul 7, 2026
2818c65
docs(rfc): mark M6 done, unify MCP as git workon mcp
lettertwo Jul 7, 2026
51671b5
fix(review): render TUI to /dev/tty so stdout capture doesn't hang
lettertwo Jul 7, 2026
e733072
docs(review): lock M6.5 usability design (ADR-028/029)
lettertwo Jul 8, 2026
0f9c07f
feat(review): add ReviewConfig git-native config reader
lettertwo Jul 8, 2026
cb06286
feat(review): make keybindings git-config configurable
lettertwo Jul 8, 2026
0595dee
feat(review): add help footer and ? overlay
lettertwo Jul 8, 2026
d9eb9b3
feat(review): configure outline width/mode and diff layout/zoom
lettertwo Jul 8, 2026
a3e9cdb
fix(review): read committed changeset new side from head tree
lettertwo Jul 8, 2026
41e70a3
docs(review): reprioritize roadmap — daily-driver first, M7 review-an…
lettertwo Jul 8, 2026
7b5be99
refactor(review): base16 Theme with render-time color resolution
lettertwo Jul 8, 2026
f882549
feat(review): add light theme and theme selection
lettertwo Jul 8, 2026
d8a7fd2
feat(review): derive theme from terminal for theme=auto
lettertwo Jul 8, 2026
af3e450
fix(review): paint themed canvas so light/dark control bg and fg
lettertwo Jul 8, 2026
6f499c2
fix(review): wait out zero-byte tty reads in theme=auto probe
lettertwo Jul 9, 2026
1b26ac6
test(review): PTY smoke for theme=auto probe responsiveness
lettertwo Jul 9, 2026
b6e583f
docs(review): lock M7 review-any-source design (ADR-030 + plan)
lettertwo Jul 9, 2026
16311b7
refactor(lib): rename ChangesetSource to ChangesetSpan
lettertwo Jul 9, 2026
b243fe5
feat(review): source arg with stack and uncommitted keywords
lettertwo Jul 9, 2026
edb88d4
fix(review): show nothing-to-review for empty stack resolution
lettertwo Jul 9, 2026
990a87a
fix(review): refresh re-resolves the launched review source
lettertwo Jul 9, 2026
64e50ea
feat(review): resolve ref and range review sources
lettertwo Jul 9, 2026
555e488
refactor(review): dedupe source error mapping and committed diffs
lettertwo Jul 9, 2026
3fe7cc5
feat(review): resolve PR references as review sources
lettertwo Jul 9, 2026
071386a
fix(pr): fetch PR head and base fresh for review sources
lettertwo Jul 9, 2026
fa4c43f
refactor(review): reuse fork dispatch and PR error closure
lettertwo Jul 9, 2026
5f36e42
fix(review): refresh no-ops for a PR review source
lettertwo Jul 9, 2026
ea09668
feat(completions): review source completion and delegation
lettertwo Jul 9, 2026
84750a3
fix(completions): gate delegation to known responders, null stdin
lettertwo Jul 9, 2026
cffaeff
perf(review): coalesce buffered nav input in the event loop
lettertwo Jul 9, 2026
37f4aa2
fix(review): land diff on last crossed file for header landings
lettertwo Jul 9, 2026
b5a9ef2
refactor(review): collapse duplicated nav-coalescing arms
lettertwo Jul 9, 2026
296f97c
perf(review): parallelize changeset diff acquisition
lettertwo Jul 9, 2026
6ba6717
perf(review): defer file loads to an input-idle window
lettertwo Jul 9, 2026
4e710be
fix(review): reopen cached files eagerly in defer mode
lettertwo Jul 9, 2026
4d7ff58
feat(review): show launch splash before changeset acquisition
lettertwo Jul 9, 2026
292c464
fix(review): keep terminal free during PR source resolution
lettertwo Jul 9, 2026
0b2a3a5
fix(review): probe theme and resolve sources before terminal takeover
lettertwo Jul 9, 2026
a3154eb
test(review): PTY responsiveness harness for launch and nav burst
lettertwo Jul 9, 2026
1eba82a
refactor(review): share the PTY spawn helper across test suites
lettertwo Jul 9, 2026
f381279
docs(review): ADR-031 progressive pipeline design
lettertwo Jul 10, 2026
3f401ce
feat(review): per-changeset Pending/Ready/Failed slots
lettertwo Jul 10, 2026
89bcb83
feat(review): route input through a dedicated thread and mpsc inbox
lettertwo Jul 10, 2026
f08ab0d
test(review): drop dead MouseButton import in event-mapping test
lettertwo Jul 10, 2026
5db9d51
feat(review): loader thread with generation-tagged file loads
lettertwo Jul 10, 2026
32157b7
fix(review): make load-spec building total for fileless changesets
lettertwo Jul 10, 2026
b009e40
fix(review): re-dispatch a deferred open when zoom outran its load
lettertwo Jul 10, 2026
1cca266
feat(review): stream startup changeset diffs behind a live outline
lettertwo Jul 10, 2026
87429e6
fix(review): keep outline cursor anchored as streamed diffs land
lettertwo Jul 10, 2026
54fe76e
refactor(review): hoist the shared app-seating tail out of the launch…
lettertwo Jul 10, 2026
0e06974
feat(review): stream refresh diffs with span-keyed slot reuse
lettertwo Jul 10, 2026
944ccfa
fix(review): clear stale deferred-open flags on non-deferred opens
lettertwo Jul 10, 2026
17297d7
test(review): fileless open pins cleared flags after flag hygiene
lettertwo Jul 10, 2026
88e7455
test(review): real-thread pipeline smoke and streamed-launch oracle
lettertwo Jul 10, 2026
17547e0
test(review): pin per-changeset spans in the streamed-startup fixture
lettertwo Jul 10, 2026
a8f354c
perf(review): cache silent-terminal probe verdicts for theme auto
lettertwo Jul 10, 2026
509c942
feat(review): rework outline focus into home-base model with h/l
lettertwo Jul 10, 2026
5b3a176
fix(review): renumber resolve_key doc to the six-case Esc cascade
lettertwo Jul 11, 2026
5106a55
fix(review): delegate toggle_outline opening arm to focus_outline
lettertwo Jul 11, 2026
29bf4c7
feat(review): give the outline a scrolloff viewport and g/G jumps
lettertwo Jul 10, 2026
f16f8a1
fix(review): pass row count into derive_outline_scroll
lettertwo Jul 11, 2026
aef41f2
feat(review): order outline head-first with dirs before files
lettertwo Jul 10, 2026
bfa275a
fix(review): extract shared scan_order for stack display order
lettertwo Jul 11, 2026
d6603f9
feat(review): summary panel for outline header and dir rows
lettertwo Jul 10, 2026
266511f
fix(review): extract shared push_summary_body from summary builders
lettertwo Jul 11, 2026
12dc8eb
fix(review): build summaries from borrows, no FileChange clones
lettertwo Jul 11, 2026
7c36da0
feat(review): file status letters and opt-in nerd icons in outline
lettertwo Jul 10, 2026
ea74864
fix(review): name the outline file target struct FileOccurrence
lettertwo Jul 11, 2026
049f444
feat(review): preserve diff position across staging operations
lettertwo Jul 10, 2026
abf26c6
fix(review): search cursor restore in a single lineno frame
lettertwo Jul 11, 2026
b62439a
feat(review): stage, unstage, and discard from outline rows
lettertwo Jul 11, 2026
b83da9d
fix(review): re-resolve outline discard targets at confirm time
lettertwo Jul 11, 2026
3f46ba8
fix(review): adopt FileOccurrence and scroll arity from downstack
lettertwo Jul 11, 2026
c57985f
feat(review): expand collapsed context gaps progressively
lettertwo Jul 11, 2026
abb0d0d
fix(review): cancel the line selection when a gap expansion reshapes …
lettertwo Jul 11, 2026
f2dfc6a
fix(review): gate test-only collapse_gaps_with behind cfg(test)
lettertwo Jul 11, 2026
0a781e6
feat(review): reveal gaps to the enclosing tree-sitter scope
lettertwo Jul 11, 2026
ae5a65d
fix(review): drop unreachable empty-range guard in scope reveal
lettertwo Jul 11, 2026
7677a38
feat(review): devicons-backed icon table with brand colors
lettertwo Jul 11, 2026
f90c6a7
feat(review): promote semantic fg colors to palette knobs
lettertwo Jul 11, 2026
3ddd660
feat(review): nerd-mode status and header/summary iconography
lettertwo Jul 11, 2026
d25e564
style(review): tree guides, gap label, and winbar restyle
lettertwo Jul 11, 2026
a9301ef
refactor(review): promote icons config to workon.review.icons
lettertwo Jul 12, 2026
341a19c
feat(review): mouse support with click-to-focus and wheel scroll
lettertwo Jul 11, 2026
9869108
fix(review): compare AppEvent::Mouse structurally in PartialEq
lettertwo Jul 11, 2026
80b9e3f
fix(review): pass row count to derive_outline_scroll in mouse tests
lettertwo Jul 11, 2026
0c7594e
fix(review): mouse wheel scrolls the viewport and leaves the cursor
lettertwo Jul 11, 2026
f254efa
feat(review): horizontal scroll for long diff lines
lettertwo Jul 12, 2026
f16f568
feat(review): mouse h-wheel panning and outline hscroll
lettertwo Jul 12, 2026
0808fec
feat(review): distinguish outline changeset headers with counter and …
lettertwo Jul 13, 2026
ddd1759
feat(review): smart path render and tighter tree indent
lettertwo Jul 13, 2026
104fa0b
feat(review): git-style XY status matrix for outline files
lettertwo Jul 13, 2026
1c771e3
feat(review): reorder outline cycle and show next mode in footer
lettertwo Jul 13, 2026
e70ae33
feat(review): collapse and expand outline headers and directories
lettertwo Jul 13, 2026
73f37cd
fix(review): outline header label, indent, and marker polish
lettertwo Jul 15, 2026
262bc5d
feat(review): outline changeset nav and fold-all keybindings
lettertwo Jul 15, 2026
2813c25
fix(review): key changeset identity by name plus span kind
lettertwo Jul 17, 2026
1c14a51
test: merge per-file integration tests into one harness per crate
lettertwo Jul 13, 2026
39ea94f
fix(review): clear clippy lint debt blocking the scoped stop gate
lettertwo Jul 14, 2026
9df2804
feat(review): diff gap fold-all keys and n/p hunk navigation
lettertwo Jul 15, 2026
a4140bc
feat(review): warn at startup when a bare key shadows under a chord p…
lettertwo Jul 16, 2026
4206dd6
refactor(review): share the strict-prefix test with key dispatch
lettertwo Jul 16, 2026
0325b1e
fix(review): refusal notice shows the resolved cycle-zoom key
lettertwo Jul 16, 2026
17338aa
refactor(review): reuse primary_key for the zoom refusal label
lettertwo Jul 16, 2026
f202aae
feat(review): base16 slot and tint override keys under workon.review.…
lettertwo Jul 15, 2026
5f42387
feat(review): render monochrome when NO_COLOR is set
lettertwo Jul 15, 2026
392ef1b
fix(review): collapse nerd icon colors to foreground under NO_COLOR
lettertwo Jul 15, 2026
7ae28ad
feat(review): per-pane headers replace the global winbar row
lettertwo Jul 16, 2026
cde789a
refactor(review): single-source the pane-header diffstat spans
lettertwo Jul 16, 2026
9c8c9bd
feat(review): light the focused pane's header label
lettertwo Jul 16, 2026
43ae956
feat(review): dim the cursorline wash in unfocused panes
lettertwo Jul 16, 2026
e44a050
feat(review): dim header counters with their pane's focus
lettertwo Jul 17, 2026
a00e081
feat(review): run split caption rules full width as pane divider
lettertwo Jul 17, 2026
316a8c1
fix(review): dedupe caption_row helper across split-caption tests
lettertwo Jul 23, 2026
ac89340
fix(review): render one-sided patch headers git apply accepts
lettertwo Jul 17, 2026
eda83c3
feat(review): line stage and discard on untracked and added files
lettertwo Jul 17, 2026
0ba7cf8
fix(review): extract shared git_apply_cached test helper
lettertwo Jul 23, 2026
6d6bcbf
test(review): pin canvas paint under split-view content rows
lettertwo Jul 20, 2026
f779fc7
fix(review): key silent-probe cache to the concrete tty device
lettertwo Jul 20, 2026
4f4bba8
feat(review): derive auto diff washes from probed terminal accents
lettertwo Jul 20, 2026
90170a8
feat(review): render comment captures in italics
lettertwo Jul 20, 2026
86cd724
feat(review): screen the filler hatch back to its own base01 fg
lettertwo Jul 20, 2026
2ca5de3
refactor(review): unify startup config resolution into resolve_runtime
lettertwo Jul 22, 2026
689334b
feat(review): add reload-config command for live theme/keymap reload
lettertwo Jul 22, 2026
750ef5a
fix(review): re-plumb the zoom key hint on config reload
lettertwo Jul 22, 2026
d739d3c
fix(review): share seat-time zoom hint and warning plumbing with reload
lettertwo Jul 23, 2026
cf20627
fix(review): fold the theme fallback ladder into one shared path
lettertwo Jul 23, 2026
f9f221a
docs(review): record the diff line/edit fg-bg split decision
lettertwo Jul 22, 2026
ea066b7
feat(review): split diff wash fg from bg, rename line/edit
lettertwo Jul 22, 2026
ee09e65
style(review): bind dark() staged-fg washes and fix a test init
lettertwo Jul 22, 2026
ba0066a
feat(review): add workon.review.diff.text foreground modes
lettertwo Jul 22, 2026
7b7afde
refactor(review): resolve syntax fg and italic from one lookup
lettertwo Jul 22, 2026
90958de
fix(review): share the staged-ness attribution cascade
lettertwo Jul 23, 2026
d68e5d7
fix(review): bundle diff text-mode params into one struct
lettertwo Jul 23, 2026
f1547cf
docs(review): record the config validation completeness decision
lettertwo Jul 23, 2026
76f1299
feat(review): warn on unknown workon.review.* config keys
lettertwo Jul 23, 2026
be274d1
test(review): import width bounds into the app test module
lettertwo Jul 23, 2026
ce55419
feat(review): name the expected format in invalid color warnings
lettertwo Jul 23, 2026
feb7a10
fix(review): use fixture layers in the dedup warning test
lettertwo Jul 23, 2026
fddf6ac
fix(review): share the parse-warn-default shape across view settings
lettertwo Jul 23, 2026
9a71bb4
feat(review): add one-line prompt input primitive
lettertwo Jul 23, 2026
9eda24a
feat(review): add fuzzy filter to the outline pane
lettertwo Jul 23, 2026
31b6134
fix(review): clear the outline filter on Esc before quitting
lettertwo Jul 24, 2026
cd1e497
fix(review): signal filter input capture with cursor and prefix color
lettertwo Jul 24, 2026
fca7163
fix(review): keep outline structure when filtering
lettertwo Jul 24, 2026
a672635
feat(review): add search within the current diff file
lettertwo Jul 23, 2026
f5df7e4
fix(review): match inline paired rows by search side for jump and tint
lettertwo Jul 25, 2026
46c0b52
fix(review): only tint search matches in the focused pane
lettertwo Jul 25, 2026
3708706
fix(review): recompute search when split focus toggles
lettertwo Jul 25, 2026
a1ce971
fix(review): order search accept by aligned row not lineno
lettertwo Jul 25, 2026
bab7b99
refactor(review): share context-run measurement in align
lettertwo Jul 25, 2026
ad5555e
refactor(review): share prompt key decoding between filter and search
lettertwo Jul 25, 2026
bcb673c
fix(review): bound search-jump gap reveal and keep current match
lettertwo Jul 27, 2026
05bb2ee
feat(review): copy path:line to clipboard via OSC 52
lettertwo Jul 27, 2026
3b94552
fix(review): tolerate and self-heal a stale-diff align race
lettertwo Jul 27, 2026
363f36d
docs(review): log cursor-side, zoom-cycle, and deferred-load gaps
lettertwo Jul 27, 2026
2f2bf9b
docs(review): log combined-view exemptions as zoom evidence
lettertwo Jul 27, 2026
9d86a07
feat(review): split yank into range-aware copy-lines and copy-location
lettertwo Jul 27, 2026
31140a2
fix(review): keep selection when the clipboard write fails
lettertwo Jul 27, 2026
283cfdb
style(review): use matches! for search-side render filter
lettertwo Jul 27, 2026
ab6a4e6
docs(review): drop stale detect_gt note from pty bound
lettertwo Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

## Workspace Structure

This is a Cargo workspace with three crates:
This is a Cargo workspace with four crates:

- **git-workon** (git-workon/): The CLI binary that provides the user-facing commands
- **git-workon-lib** (git-workon-lib/): Core library (published as `workon`) containing the git worktree manipulation logic
- **git-workon-fixture** (git-workon-fixture/): Testing utilities that provide fixture builders and custom predicates for git repository tests
- **git-workon-review** (git-workon-review/): Lib+bin crate for the review TUI domain — diff parsing, staging, changeset views; the binary is the TUI

## File Location Quick Reference

Expand All @@ -32,6 +33,9 @@ This is a Cargo workspace with three crates:
- Add integration tests → `git-workon-lib/tests/` or `git-workon/tests/`
- Find workon root logic → `git-workon-lib/src/workon_root.rs`
- Smart routing logic → `git-workon/src/main.rs` (lines 20-38)
- Add review domain logic → `git-workon-review/src/`
- Add review CLI entry → `git-workon-review/src/main.rs`
- Add review error types → `git-workon-review/src/error.rs` (ADR-008 pattern: concrete enums with `#[derive(Error, Diagnostic)]`)

## Key Architecture Concepts

Expand Down Expand Up @@ -73,7 +77,7 @@ Inline test/clippy runs go through `cargo-gate test`/`clippy` (a raw `cargo test

**Valid types**: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`

**Scopes** (optional): `cli`, `lib`, `fixture`, `config`, `worktree`, `hooks`, `copy`, `pr`, `completions`, `build`, `release`
**Scopes** (optional): `cli`, `lib`, `fixture`, `review`, `config`, `worktree`, `hooks`, `copy`, `pr`, `completions`, `build`, `release`

**Breaking changes**: append `!` — e.g. `feat(cli)!: change output format`

Expand Down
24 changes: 24 additions & 0 deletions CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,30 @@ Terms used throughout the `git-workon` codebase. Implementation details do not b

**Status filter** — a flag (`--dirty`, `--clean`, `--ahead`, `--behind`, `--gone`) that narrows a `list` or `find` result to worktrees in a specific state. Filters select **worktrees**: each check queries the working tree or branch-tracking state of a checked-out worktree. A metadata-only stack diff (`◯`) has no working tree and can never satisfy a status filter; it is excluded from any filtered result. See also: `StatusFilter`, `WorktreeDescriptor::is_dirty()`.

## Review

**Changeset** — one reviewable unit in the review TUI: a node in a stack, a single inferred commit, or the uncommitted layer. Ordered base → head when part of a stack. See also: `workon::Changeset`.

**Changeset span** — what a changeset covers: a resolved commit range (`base..head`) or the uncommitted working tree + index. _Avoid_: "changeset source" (renamed; "source" is the review-source concept below).

**Review source** — the user's answer to "review *what?*": auto-detect (no argument), the `stack` keyword, the `uncommitted` keyword, a ref, a range, or a PR reference. Exact bare keywords win over same-named refs; a qualified spelling (`refs/heads/stack`) escapes. See also: [ADR-030](docs/adr/030-review-source-grammar.md).

**Uncommitted layer** — the synthetic changeset spanning the dirty working tree + index. Appears in a review only when the review is focused where `HEAD` actually is, since uncommitted changes diff against `HEAD`.

## Review Theming

**Wash** — a background color painted behind diff text to signal that the text changed. Washes carry the diff signal; foreground carries syntax meaning unless a theme says otherwise. _Avoid_: "tint" for the background specifically (see below), "highlight".

**Line wash** — the wash covering an entire line that contains a change. Answers "something here changed". _Avoid_: "subtle" (renamed — it named intensity, not scope).

**Edit** — the exact text that changed. On a line paired with a counterpart, the word-diff ranges within it; on a line with no counterpart, the whole line. _Avoid_: "word" (true only for the paired case), "change" (reserved for a file's change kind).

**Edit wash** — the wash covering an edit. Answers "this precisely is the change". _Avoid_: "strong" (renamed — its intensity-flavored name is what let it drift into a foreground role).

**Tint foreground** — a text color that encodes added-ness or deleted-ness rather than syntax meaning. Distinct from a wash: same fact, opposite channel. _Avoid_: "diff color" (ambiguous between the two channels).

**Slot** — one of the sixteen base16 palette positions (`base00`–`base0f`) a theme assigns colors to. A slot has a *role* only when some part of the TUI reads it; the key space accepts all sixteen regardless.

## Prune Candidate Reasons

**BranchDeleted** — the local branch ref for the worktree no longer exists in the repository. Always a prune candidate regardless of flags.
Expand Down
Loading