- Add git-style conflict resolution with visual diff highlighting - Add buffer-local keymaps: co/ct/cb/cn for conflict resolution - Add floating menu with auto-show after code injection - Add linter validation that auto-checks LSP diagnostics after accepting code - Add SEARCH/REPLACE block parsing with fuzzy matching - Add new commands: CoderConflictMenu, CoderLintCheck, CoderLintFix - Update README with complete keymaps reference and issue reporting guide - Update CHANGELOG and llms.txt with full documentation - Clean up code comments and documentation Co-Authored-By: Claude <noreply@anthropic.com>
9.0 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.6.0 - 2026-01-16
Added
-
Conflict Resolution System - Git-style diff visualization for code review
- New
conflict.luamodule with full conflict management - Git-style markers:
<<<<<<< CURRENT,=======,>>>>>>> INCOMING - Visual highlighting: green for original, blue for AI suggestions
- Buffer-local keymaps:
co(ours),ct(theirs),cb(both),cn(none) - Navigation keymaps:
]x(next),[x(previous) - Floating menu with
cmor<CR>on conflict - Number keys
1-4for quick selection in menu - Auto-show menu after code injection
- Auto-show menu for next conflict after resolution
- Commands:
:CoderConflictToggle,:CoderConflictMenu,:CoderConflictNext,:CoderConflictPrev,:CoderConflictStatus,:CoderConflictResolveAll,:CoderConflictAcceptCurrent,:CoderConflictAcceptIncoming,:CoderConflictAcceptBoth,:CoderConflictAcceptNone,:CoderConflictAutoMenu
- New
-
Linter Validation System - Auto-check and fix lint errors after code injection
- New
linter.luamodule for LSP diagnostics integration - Auto-saves file after code injection
- Waits for LSP diagnostics to update
- Detects errors and warnings in injected code region
- Auto-queues AI fix prompts for lint errors
- Shows errors in quickfix list
- Commands:
:CoderLintCheck,:CoderLintFix,:CoderLintQuickfix,:CoderLintToggleAuto
- New
-
SEARCH/REPLACE Block System - Reliable code editing with fuzzy matching
- New
search_replace.luamodule for reliable code editing - Parses SEARCH/REPLACE blocks from LLM responses
- Fuzzy matching with configurable thresholds
- Whitespace normalization for better matching
- Multiple matching strategies: exact, normalized, line-by-line
- Automatic fallback to line-based injection
- New
-
Process and Show Menu Function - Streamlined conflict handling
- New
process_and_show_menu()function combines processing and menu display - Ensures highlights and keymaps are set up before showing menu
- New
Changed
- Unified automatic and manual tag processing to use same code path
insert_conflict()now only inserts markers, callers handle processing- Added
nowait = trueto conflict keymaps to prevent delay from built-inccommand - Improved patch application flow with conflict mode integration
Fixed
- Fixed
string.gsubreturning two values causingtable.inserterrors - Fixed keymaps not triggering due to Neovim's
ccommand intercepting first character - Fixed menu not showing after code injection
- Fixed diff highlighting not appearing
0.5.0 - 2026-01-15
Added
-
Cost Tracking System - Track LLM API costs across sessions
- New
:CoderCostcommand opens cost estimation floating window - Session costs tracked in real-time
- All-time costs persisted in
.coder/cost_history.json - Per-model breakdown with token counts
- Pricing database for 50+ models (GPT-4/5, Claude, O-series, Gemini)
- Window keymaps:
qclose,rrefresh,cclear session,Cclear all
- New
-
Automatic Ollama Fallback - Graceful degradation when API limits hit
- Automatically switches to Ollama when Copilot rate limits exceeded
- Detects local Ollama availability before fallback
- Notifies user of provider switch
-
Enhanced Error Handling - Better error messages for API failures
- Shows actual API response on parse errors
- Improved rate limit detection and messaging
- Sanitized newlines in error notifications
-
Agent Tools System Improvements
- New
to_openai_format()andto_claude_format()functions get_definitions()for generic tool access- Fixed tool call argument serialization
- New
-
Credentials Management System - Store API keys outside of config files
- New
:CoderAddApiKeycommand for interactive credential setup :CoderRemoveApiKeyto remove stored credentials:CoderCredentialsto view credential status:CoderSwitchProviderto switch active LLM provider- Credentials stored in
~/.local/share/nvim/codetyper/configuration.json
- New
Changed
- Cost window now shows both session and all-time statistics
- Improved agent prompt templates with correct tool names
- Better error context in LLM provider responses
Fixed
- Fixed "Failed to parse Copilot response" error showing instead of actual error
- Fixed
nvim_buf_set_linescrash from newlines in error messages - Fixed
tools.definitionsnil error in agent initialization - Fixed tool name mismatch in agent prompts
0.4.0 - 2026-01-13
Added
-
Event-Driven Architecture - Complete rewrite of prompt processing system
- Prompts are now treated as events with metadata
- New modules:
queue.lua,patch.lua,confidence.lua,worker.lua,scheduler.lua - Priority-based event queue with observer pattern
- Buffer snapshots for staleness detection
-
Optimistic Execution - Ollama as fast local scout
- Use Ollama for first attempt (fast local inference)
- Automatically escalate to remote LLM if confidence is low
- Configurable escalation threshold (default: 0.7)
-
Confidence Scoring - Response quality heuristics
- 5 weighted heuristics: length, uncertainty, syntax, repetition, truncation
- Scores range from 0.0-1.0
- Determines whether to escalate to more capable LLM
-
Staleness Detection - Safe patch application
- Track
vim.b.changedtickand content hash at prompt time - Discard patches if buffer changed during generation
- Track
-
Completion-Aware Injection - No fighting with autocomplete
- Defer code injection while completion popup visible
- Works with native popup, nvim-cmp, and coq_nvim
-
Tree-sitter Scope Resolution - Smart context extraction
- Automatically resolves prompts to enclosing function/method/class
- Falls back to heuristics when Tree-sitter unavailable
-
Intent Detection - Understands what you want
- Parses prompts to detect: complete, refactor, fix, add, document, test, optimize, explain
- Intent determines injection strategy
Configuration
New scheduler configuration block:
scheduler = {
enabled = true,
ollama_scout = true,
escalation_threshold = 0.7,
max_concurrent = 2,
completion_delay_ms = 100,
}
0.3.0 - 2026-01-13
Added
-
Multiple LLM Providers - Support for additional providers
- OpenAI API with custom endpoint support
- Google Gemini API
- GitHub Copilot
-
Agent Mode - Autonomous coding assistant with tool use
read_file,edit_file,write_file,bashtools- Real-time logging of agent actions
:CoderAgent,:CoderAgentToggle,:CoderAgentStopcommands
-
Transform Commands - Transform /@ @/ tags inline
:CoderTransform,:CoderTransformCursor,:CoderTransformVisual- Default keymaps:
<leader>ctt,<leader>ctT
-
Auto-Index Feature - Automatically create coder companion files
- Creates
.coder.companion files when opening source files - Language-aware templates
- Creates
-
Logs Panel - Real-time visibility into LLM operations
-
Mode Switcher - Switch between Ask and Agent modes
Changed
- Window width configuration now uses percentage as whole number
- Improved code extraction from LLM responses
0.2.0 - 2026-01-11
Added
- Ask Panel - Chat interface for asking questions about code
- Fixed at 1/4 (25%) screen width
- File attachment with
@key Ctrl+nto start a new chatCtrl+Enterto submit questionsCtrl+fto add current file as contextYto copy last response
Changed
- Ask panel width is now fixed at 25%
- Improved close behavior
- Changed "Assistant" label to "AI"
Fixed
- Ask panel window state sync issues
- Window focus returning to code after closing
0.1.0 - 2026-01-11
Added
- Initial release of Codetyper.nvim
- Core plugin architecture with modular Lua structure
- Split window view for coder and target files
- Tag-based prompt system (
/@to open,@/to close) - Claude API integration
- Ollama API integration
- Automatic
.gitignoremanagement - Smart prompt type detection
- Code injection system
- Health check module
- Project tree logging
Version History
Legend
- Added - New features
- Changed - Changes in existing functionality
- Deprecated - Soon-to-be removed features
- Removed - Removed features
- Fixed - Bug fixes
- Security - Vulnerability fixes