# Release v0.1.0

Initial public release of `ane` — a chord-based terminal code editor built for humans and agents.

## Features

- **Chord engine**: A 4-part chord system (action, positional, scope, component) for composable, expressive edits. Short form (`cifc`) and long form (`ChangeInsideFunctionContents`) are both accepted. The engine runs in three stages: parse, resolve (LSP lookup if needed), patch.
  - Actions: change, delete, replace, yank, append, prepend, insert, jump
  - Positionals: inside, entire, after, before, until, to, outside, next, previous
  - Scopes: line, buffer, function, variable, struct, member, delimiter
  - Components: beginning, contents, end, value, parameters, arguments, name, self

- **LSP engine**: Centralized language server lifecycle manager. Detects the project language, installs the server if missing, starts it in the background, and gates LSP-dependent chords until the server is ready. The TUI status bar reflects the current LSP state at all times. Rust (`rust-analyzer`) supported at launch; Go, TypeScript/JavaScript, and Python added via WI-0008.

- **Exec mode (`ane exec`)**: One-shot headless CLI edits for code agents and scripts. Accepts a chord and a file path, writes the file, and outputs a unified diff to stdout. Yank chords output the selected text instead. Supports stdin piping for values (`value:-`). No LSP startup delay for line/buffer/delimiter chords.

- **TUI**: Interactive terminal editor with two modes — Chord mode (default) and Edit mode (`Ctrl-E`). File tree pane (`Ctrl-T`), chord history recall (`Ctrl-R`), save (`Ctrl-S`), and exit confirmation modal (`Ctrl-C`). Short-form chords auto-execute when the cursor sits inside a recognized construct.

- **Jump action and delimiter scope**: `j` (jump) moves the cursor to named code constructs without modifying the buffer. The `to` positional and delimiter scope (`d`) for bracket/quote/tag targeting are also included.

- **Tree-sitter syntax highlighting**: Universal baseline highlighting computed synchronously on file open (<2ms). LSP semantic tokens overlay once the server is ready, adding type-aware colors. Language support: Rust, Go, TypeScript/JavaScript, Python (tree-sitter + LSP), Markdown (tree-sitter only).

- **Application-managed mouse selection**: Mouse selection in the TUI excludes line-number gutters from the clipboard. Selection is tracked in logical buffer coordinates and copied via OSC 52. Hold Shift during click-drag to fall back to native terminal selection.

- **Code agent integration**:
  - `ane init <agent>` installs an embedded skill file into the agent's skill directory, teaching it the chord system and exec mode. Supported agents: claude, codex, gemini, opencode, cline, maki, charm.
  - `ane::core` public crate API exposes `ChordEngine`, `LspEngine`, `Buffer`, all chord types, and `tool_definition()` (a ready-to-serialize LLM tool definition). The `frontends` feature flag (on by default) gates CLI/TUI dependencies; library consumers use `default-features = false`.

- **Multi-language LSP support**: Go (`gopls`), TypeScript/JavaScript (`vtsls`), and Python (`basedpyright`) added alongside Rust (`rust-analyzer`). Each language has a capability matrix entry declaring tree-sitter and LSP support independently.
