- [x] On save, a status message should be displayed, using the same EditorAction framework
- [ ]`AddOverlay` action is defined and handled but never constructed externally — wire it up so commands and scripts can emit overlays via the action system
- [ ]`PanePosition::Main { tab }` field is unused — implement tab ordering for the main editing area
- [ ]`OverlayLifetime::Persistent` is unused — use it for long-lived status indicators (e.g. unsaved-changes marker, read-only indicator)
- [ ] Make help text more sophisticated — dynamically generated from keybindings and command definitions rather than a static string; could include sections for current mode, available commands with their aliases, and key bindings
- [ ]`Theme` is never constructed — wire `Theme::default_theme()` into the renderer so `StyleName` variants resolve to actual `TextAttrs` instead of being looked up at each call site
- [ ]`StyleName::Error`, `Warning`, `Hint`, and `Default` variants are unused — use them for command output errors, LSP diagnostics, and default buffer text once the theme is wired up
- [ ]`Color` and `TextAttrs` are unused — these become live once the renderer uses `Theme::resolve()` to translate `StyleName` to terminal attributes