# Inkhaven 1.3.33 — Command palette + a filterable Output pane

_Two quality-of-life features on the road to 1.4.0, both about finding things fast.
The **command palette** gives you one chord to fuzzy-find and run any of Inkhaven's
many commands without remembering its keystroke. The **Output pane** — which now
collects findings from five-plus subsystems on one surface — gains **filtering** so
a busy pane narrows to what you care about. Both are pure additions over existing
infrastructure; zero new external dependencies._

_Plans:
[PALETTE_PLAN.md](../PROPOSALS/PALETTE_PLAN.md) ·
[OUTPUT_FILTER_PLAN.md](../PROPOSALS/OUTPUT_FILTER_PLAN.md) · Roadmap:
[ROADMAP-1.4.0.md](../PROPOSALS/ROADMAP-1.4.0.md)_

## The command palette

`Ctrl+B`'s chord tree has grown large. The command palette is the fast way through
it: **`Ctrl+V Space`** opens a fuzzy finder over **every** command — type to filter
by name, chord, or description; `↑↓` to select; `Enter` runs it; `Esc` closes.

- It's a projection of the live keybinding registry, so it always reflects your
  actual bindings (including HJSON / `ink.key.*` overrides) and **self-lists** —
  the palette command appears in the palette.
- Bound to **`Ctrl+V Space`** (a two-key chord with no `Ctrl+Shift+<letter>`
  terminal ambiguity — `Ctrl+P` is the editor paste, untouched).
- Discoverable: it's listed in the **Quick reference** (`Ctrl+B H`), which also
  gains a `?` shortcut to open it from the Tree pane.

## A filterable Output pane

The Output pane gathers structured findings from the world fact-checker, Inner
Socrates, the timeline critique, translation, the lexicon, Bund, and more. When it
gets busy, three filter dimensions narrow it — the title shows `shown/total · <filter>`,
and the filter **persists across restarts** (in `.session.json`):

- **`f`** — cycle by **source**: fact-check / socrates / timeline-critique / world /
  translation / lexicon / variety / ai / bund / other. (A source classifier maps
  every message kind to one clean group — there was never a single provenance field
  to filter on.)
- **`S`** — cycle by **minimum severity** (Info / Warning / Contradiction); also
  hides transient progress ticks.
- **`t`** — **this paragraph only**: just the messages tied to the open paragraph.
- **`c`** — clear all filters.

The pane and its key handler share one filtered view, so selection and per-message
actions always match what's on screen. Release notes also document the Output pane's
existing keys for the first time (KEYBINDING §4.1).

## Surfaces & docs

- **TUI** — `Ctrl+V Space` palette; `f` / `S` / `t` / `c` in the Output pane; `?`
  opens the Quick reference from the Tree pane.
- **Docs** — `KEYBINDING.md` gains the palette rows + a new §4.1 Output pane
  section; the in-app Quick reference lists both.
- **Diagnostics** — an opt-in `INKHAVEN_KEYLOG=1` key tracer (logs each key's
  `code/modifiers/kind` to `.inkhaven.log`) for debugging terminal-specific chord
  reporting.

## Dependencies & compatibility

**No external application or binary dependencies; no new runtime crates.** Both
features are read-side views over existing infrastructure — the keybinding registry
and the Output message store are unchanged. Legacy `.session.json` files (without
the filter key) load cleanly with filtering off. Tests 1771 → 1795.
