|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to LocalCode will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## [3.1.0] - 2026-03-16 |
| 11 | + |
| 12 | +### Added |
| 13 | +- **Persistent input history** — last 200 entries saved to `~/.localcode/history.json`; survives restarts and is navigable with arrow keys |
| 14 | +- **Braille spinner animation** — displayed during streaming responses and tool calls for clear visual feedback |
| 15 | +- **Theme system** — four built-in themes (`dark`, `nord`, `monokai`, `light`) switchable at any time with `/theme` |
| 16 | +- **Template system** — save and reuse prompt templates with `/template add`, `/template use`, `/template list`, `/template delete`; stored in `~/.localcode/templates.json` |
| 17 | +- **Alias system** — define custom command shortcuts with `/alias <name> <command>`; stored in `~/.localcode/aliases.json` |
| 18 | +- **`/explain`** — stream an AI explanation of any file or the last code snippet in the conversation |
| 19 | +- **`/test`** — auto-detects and runs `jest`, `vitest`, `pytest`, `cargo test`, or `go test`; on failure, offers an AI-generated fix |
| 20 | +- **`/share`** — exports the full conversation as a self-contained HTML file |
| 21 | +- **Session history browser** — `/history [n]` lists and restores past sessions archived in `~/.localcode/sessions/` |
| 22 | +- **`/git` panel** — interactive git panel with status, log, stash, and branch views; raw git commands also pass through |
| 23 | +- **`/watch`** — watches a file with `fs.watch` and re-runs the last message automatically on every change |
| 24 | +- **Auto-context injection** — on startup, automatically injects `git log` and `git status` into context when no `.nyx.md` project file is found |
| 25 | +- **Multi-file diff summary** — after the agent edits multiple files, a grouped diff summary is shown |
| 26 | +- **Collapsible tool output** — long tool outputs are truncated and expandable to keep the UI clean |
| 27 | +- **Syntax highlighting** — code blocks receive keyword, string, number, and comment highlighting |
| 28 | +- **Plugin system** — drop any `.js` file into `~/.localcode/plugins/` to register custom slash commands; manage with `/plugins` |
| 29 | +- **`/image`** — vision input via base64 encoding, compatible with Claude, GPT-4o, and Ollama `llava` |
| 30 | +- **Streaming token counter** — live `+N▌` token display in the header updates during streaming |
| 31 | +- **TF-IDF semantic search** — `/index` builds a local search index of project files; `/search <query>` queries it |
| 32 | +- **New QoL commands** — `/cd`, `/ls`, `/find`, `/ping` added for quick filesystem and network tasks |
| 33 | +- **Dynamic version in header** — version number is read directly from `package.json` at runtime |
| 34 | +- **Token progress bar** — visual progress bar in the header shows context window utilization |
| 35 | +- **Message timestamps** — system messages and tool call messages now display a timestamp |
| 36 | +- **Auto-save** — session is automatically saved to disk after every AI response |
| 37 | +- **Input character counter** — footer displays a live character count while typing |
| 38 | +- **Windows + Wayland clipboard support** — `/copy` now works on Windows (`clip.exe`) and Wayland (`wl-copy`) |
| 39 | +- **Revamped website** — tabbed command browser, feature comparison table, plugin showcase, and terminal demo |
| 40 | + |
| 41 | +### Changed |
| 42 | +- Word wrap applied to all message text for improved readability on narrow terminals |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +## [3.0.0] - 2026-03-16 |
| 47 | + |
| 48 | +### Added |
| 49 | +- **Markdown renderer** (`MarkdownText` component) — renders fenced code blocks, headers (`#`–`###`), ordered and unordered lists, bold text, and inline code in the terminal |
| 50 | +- **Hooks system** — run shell scripts automatically on `PreToolUse`, `PostToolUse`, and `Notification` events; configured via `~/.localcode/hooks.json` |
| 51 | +- **Three-tier approval mode** — `suggest` (default), `auto-edit`, and `full-auto`; switch at runtime with `/mode` or grant blanket approval with `/allowall` |
| 52 | +- **AbortController integration** — pressing `Escape` cancels the current in-flight streaming request immediately |
| 53 | +- **Memory hierarchy** — global memory in `~/.nyx.md` plus per-project memory in `<project>/.nyx.md`; manage with `/memory` |
| 54 | +- **MCP (Model Context Protocol)** — connect external tool servers over `stdio` or HTTP transport; manage with `/mcp` |
| 55 | +- **Multiline input** — toggle multiline editing mode with `Ctrl+E`; lines are numbered, submit with `Ctrl+D` |
| 56 | +- **Unified diff** — `/diff` now shows a proper unified diff computed with a pure-JS LCS algorithm |
| 57 | +- **New file tools** — `delete_file`, `move_file`, `search_files`, `find_files` added to the agent tool set |
| 58 | +- **New slash commands** — `/review`, `/init`, `/doctor`, `/memory`, `/hooks`, `/mode`, `/steps`, `/sys`, `/persona`, `/pin`, `/unpin`, `/web`, `/export`, `/undo`, `/todo`, `/cost`, `/mcp` |
| 59 | +- **Per-model cost table** — token cost estimates for Claude 4.6, GPT-4.1, and o3 shown via `/cost` |
| 60 | +- **Configurable max steps** — `/steps <n>` sets the agent loop step limit; default is 20 |
| 61 | +- **Auto-checkpoint** — session checkpointed automatically every 20 messages |
| 62 | +- **Polished `NyxHeader`** — dynamic mood-based colors and a `v3.0` version badge |
| 63 | + |
| 64 | +### Security |
| 65 | +- **Shell injection prevention** — all `exec()` calls replaced with `execFile()` to eliminate shell injection vectors |
| 66 | +- **Path traversal protection** — tool executor now validates and rejects paths that escape the working directory |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +## [2.3.0] - 2025-01-01 |
| 71 | + |
| 72 | +### Added |
| 73 | +- **Real multi-step agent loop** — the agent now executes tools across multiple reasoning steps rather than a single-shot response |
| 74 | +- **MCP server support** — connect to MCP servers over `stdio` transport |
| 75 | +- **Ollama provider** — local model support via Ollama |
| 76 | +- **Claude SSE provider** — streaming support for Anthropic Claude models |
| 77 | +- **OpenAI-compatible provider** — works with any OpenAI-compatible API endpoint |
| 78 | +- **Tool set** — `read_file`, `write_file`, `patch_file`, `list_dir`, `run_shell`, `git_operation` |
| 79 | +- **Session persistence** — sessions are saved to disk with checkpoint and restore support |
| 80 | +- **`/commit`** — generates a conventional commit message using AI and commits staged changes |
| 81 | +- **`/diff`** — shows a diff of all files modified during the current session |
| 82 | +- **`/context`** — adds a file or folder to the active context window |
| 83 | +- **Inline context injection** — `@file` and `@dir` syntax in any message injects file or directory contents inline |
| 84 | + |
| 85 | +--- |
| 86 | + |
| 87 | +## [2.2.0] - 2024-12-01 |
| 88 | + |
| 89 | +### Added |
| 90 | +- **Custom system prompt** — set a persistent system-level instruction with `/sys` |
| 91 | +- **Personas** — five built-in personas: `pair-programmer`, `senior-engineer`, `rubber-duck`, `code-reviewer`, `minimal`; switch with `/persona` |
| 92 | +- **13 new slash commands** — including `/compact`, `/status`, `/copy`, `/export`, `/undo`, `/retry`, `/models`, and more |
| 93 | +- **Cost tracking** — `/cost` displays estimated token cost for the current session |
| 94 | +- **Token estimation** — approximate token counts shown before and after messages |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +## [2.1.0] - 2024-11-01 |
| 99 | + |
| 100 | +### Added |
| 101 | +- **First-run setup wizard** — interactive wizard on first launch guides the user through provider selection and API key entry |
| 102 | +- **Searchable command picker** — `/` opens a fuzzy-searchable list of all available commands |
| 103 | +- **Multi-provider support** — Ollama, Anthropic Claude, OpenAI, and Groq available from a single interface |
| 104 | +- **API key management** — add, update, and remove provider API keys from within the app |
| 105 | +- **Live provider and model switching** — change the active provider and model mid-session without restarting |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +## [1.0.0] - 2024-10-01 |
| 110 | + |
| 111 | +### Added |
| 112 | +- Initial release |
| 113 | +- Terminal UI built with [Ink](https://github.com/vadimdemedes/ink) |
| 114 | +- Ollama support for local model inference |
| 115 | +- Simple conversational chat interface |
| 116 | +- Basic file tools: read and write files |
| 117 | + |
| 118 | +[3.1.0]: https://github.com/alexanderthegreat/localcode/compare/v3.0.0...v3.1.0 |
| 119 | +[3.0.0]: https://github.com/alexanderthegreat/localcode/compare/v2.3.0...v3.0.0 |
| 120 | +[2.3.0]: https://github.com/alexanderthegreat/localcode/compare/v2.2.0...v2.3.0 |
| 121 | +[2.2.0]: https://github.com/alexanderthegreat/localcode/compare/v2.1.0...v2.2.0 |
| 122 | +[2.1.0]: https://github.com/alexanderthegreat/localcode/compare/v1.0.0...v2.1.0 |
| 123 | +[1.0.0]: https://github.com/alexanderthegreat/localcode/releases/tag/v1.0.0 |
0 commit comments