magi-code 0.96.1

Repository-aware CLI coding agent for terminal work
Documentation
# Input guide

Maps keys/mouse/clipboard into commands; controller reducers apply resulting effects.

## Where to look

| Change | Owner |
| --- | --- |
| Command/action/display types | `../input.rs`; viewport types: `viewports.rs` |
| Binding truth/help labels | `keybindings.rs` |
| Classification/command mapping | `classify.rs`, `keys.rs`, `binding_commands.rs` |
| Send/multiline parsing | `submit_command.rs` |
| Slash/skill/context/file completion | `autocomplete_sources.rs` |
| Modal ownership/settings scope | `modal.rs` |
| Painted hit targets/selection intent | `mouse.rs` |
| Clipboard handoff | `clipboard.rs` |

## Local contracts

- Production classifiers emit commands, not workflow effects; no independent help binding lists. Reuse `../autocomplete.rs` matching/replacement and `../selection.rs` byte ranges.
- Follow parent panel geometry/focus contracts. Autocomplete owns Esc before dismissal and Tab before cycling; hidden pinned panels on Changes cannot capture input. Mouse close/scroll targets painted panel independently of keyboard focus.
- Preserve selection, paste boundaries, multiline submission and command order. Raw capture belongs in `../controller/input_bridge.rs`; never log clipboard/prompt/path contents.
- File completion canonicalizes cwd and delegates traversal to `crate::tools::autocomplete_file_paths`, passing gitignore toggle and both candidate/visited-entry bounds rather than adding UI walker.
- Emit slash-normalized relative candidates only under canonical root, sorted/deduplicated; walk/canonicalization failure yields no candidates.