The proposals UI
The proposals UI
Where you review, accept, or reject agent proposals.
How to open it
The proposals queue lives in the Inspector as its own tab — the tray icon in the inspector tab bar. It fills (tray.full.fill) and shows a count when proposals are pending. Click it to see the list.
The layout
The Proposals tab is a single pane: a list of pending proposals at the top, and clicking any row opens a diff sheet over it.
┌─ 3 pending ─────────────────────────────┐
│ ✏ Claude Desktop · 2m +12 / −3 │
│ write_note Inbox/random.md │
│ │
│ ✏ Claude Code · 5m +5 │
│ patch_section Projects/Lettuce.md │
│ │
│ + Tag Curator · 1h +2 │
│ write_note Reading/x.md │
└─────────────────────────────────────────┘
Each row is compact: an operation icon (create / modify / delete / move), the proposing agent’s key label, a relative timestamp, the MCP tool that produced it, the target path, and the +N / −M line delta.
The diff sheet
Click a row to open the review sheet. It’s a single-pane unified diff — line-by-line, added lines in green (+), removed in red (−), context in plain text — with a header showing the tool, agent label, and target path. A move proposal also discloses how many other notes will have their inbound links ([[wikilinks]] and [text](path.md) Markdown links) rewritten if you accept.
Three controls at the bottom:
| Button | Action |
|---|---|
| Reject | Discards the proposal (see below). |
| Show in note | Opens the target file in the editor and closes the sheet. |
Accept (⌘↩) |
Applies the change. |
Accept
Applies the proposal through the same commit path the live write tools use — attribution, soft-locks, link-rewrites, and reindex all behave as if the agent had written directly. On success the proposal file is deleted from .lettuce/proposals/.
Before writing, Lettuce re-checks staleness: it compares the file’s current content to the before content the proposal captured. If they no longer match, the accept is refused with a staleness reason (see Suggestions mode/04 Staleness and conflicts) — there is no merge dialog, the write simply doesn’t happen.
Reject
Discards the proposal — its file is deleted from .lettuce/proposals/. There’s no rejection note; rejecting is silent and immediate. The agent can notice the proposal is gone on its next list_my_proposals call.
Show in note
Opens the target file in the editor and closes the sheet. Useful when you want to fix something the proposal almost-but-not-quite got right — edit the file directly, then come back and reject the proposal.