diff --git a/CHANGELOG.md b/CHANGELOG.md index b27a040..c0b0314 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.2.0] - 2026-06-09 + +### Added +- Vim bindings in the input via CodeMirror 6 + `@replit/codemirror-vim` (loaded from esm.sh, no build step). Supports `i`/`Esc`, `hjkl`, word/line motions, `dd`/`yy`/`p` (vim's internal register), undo/redo, `/` search, `:` command line. Auto-disabled on touch devices (detected via `(pointer: coarse)`) where modal editing fights the virtual keyboard. +- `Shift-H` / `Shift-L` cycle focus across the page controls (source → target → model → editor → button) like `Shift-Tab` / `Tab`. Also overridden in vim normal mode (replacing vim's viewport-top/bottom default) so the same shortcut works to leave the editor. +- On page load, the model dropdown defaults to whichever model Ollama already has hot — skips the 5-15 s disk-reload pain on the first translation. After load it follows the user's manual selection. + +### Changed +- Editor font-size pinned to `1rem` to match the output pane (CodeMirror 6 ships smaller by default). + ## [0.1.0] - 2026-06-09 First release. Stateless translator UI that proxies streaming requests to diff --git a/pyproject.toml b/pyproject.toml index 637910b..b1caec5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "finrod" -version = "0.1.0" +version = "0.2.0" description = "Translator UI backed by Ollama" requires-python = ">=3.11" dependencies = [ diff --git a/static/index.html b/static/index.html index 44a0820..53bbfd1 100644 --- a/static/index.html +++ b/static/index.html @@ -155,6 +155,30 @@ background: var(--border); box-shadow: none; } + + /* CodeMirror editor host — matches .output styling so input & output align */ + .cm-editor { + min-height: 180px; + border: 1px solid var(--border); + border-radius: 6px; + background: var(--panel); + font-family: ui-monospace, SFMono-Regular, Menlo, monospace; + font-size: 1rem; /* match .output's inherited body size — CM6 defaults are smaller */ + } + .cm-editor.cm-focused { + outline: none; + border-color: var(--accent); + } + .cm-scroller { padding: 0.6rem 0.75rem; } + .cm-content { caret-color: var(--accent); } + /* vim's command-line / status hint inherits readable colors */ + .cm-vim-panel { + background: var(--panel); + color: var(--fg); + border-top: 1px solid var(--border); + font-family: ui-monospace, SFMono-Regular, Menlo, monospace; + } +
@@ -185,7 +209,7 @@