Languages
View on GitHub →Commit activity
Last 12 weeks · 0 commits
Community health
1 of 6 standards met
Recent PRs & issues
1. Steps to reproduce 1. Windows 11 or Linux, Neovim 0.11.x, installed and logged in 2. 99 with and prompt delivery + workspace alignment working (#180-class prompt fix and #181-class / tmp path fix — required so the agent actually completes search and writes TEMP_FILE) 3. Setup: 4. Open a project with a known entrypoint (e.g. with ) 5. Run search (), prompt: 6. Agent completes (stdout often status-only or citation markdown) 7. Quickfix / Trouble stays empty on stock Note: Pure stock may be blocked earlier by #180 / #181. The parsing gap below is independent; it appears once the agent runs and returns results. 2. Relevant text / action taken Expected: Quickfix shows file locations from the search. Actual: Agent finds the code but 99 does not populate . Common cases: Status-only stdout: agent writes qfix lines to TEMP_FILE but 99 reads conversational stdout or status text instead of parseable locations Citation markdown**: agent returns `startLine:endLine:pathQFixHelpers.create_qfix_entries"qf_list":[]--workspaceqf_list--workspacenormalize_qfix_response_retrieve_responseqf_listqf_list"C"CursorAgentProvider:_retrieve_responsesearchvibenormalize_qfix_responsevisualtutorial`: return raw text (no normalization).
Fixes crashes when marks are used before validation during visual selection operations. Problem The current code creates marks and immediately uses them for logging and RequestStatus before validating they were created successfully. When the buffer is modified between range calculation and mark creation, the marks fail to create but are still used, causing crashes. Current flow: 1. Create marks (may fail silently) 2. Use marks for logging - crashes if invalid 3. Pass marks to RequestStatus - crashes if invalid 4. Start status updates - crashes if invalid 5. Much later, in async callback, validate marks (too late) Solution Validate marks immediately after creation, before using them. This fails fast with a clear error message instead of crashing later with cryptic errors. New flow: 1. Create marks 2. Validate marks immediately 3. If invalid, log fatal error and return early 4. If valid, proceed safely knowing marks are good Benefits Fails fast with clear error message No defensive nil checks needed throughout codebase Single validation point instead of scattered checks Prevents crashes in logging, RequestStatus, and status updates Better user experience with actionable error message Testing All existing tests pass (68/68) Linting passes Formatting passes Follows existing error handling patterns in the codebase
Recent fixes
Pass query via stdin instead of a CLI positional arg in OpenCodeProvider to avoid shell argument size limits. BaseProvider gains a _build_stdin hook (returns nil by default) that subclasses can override; make_request now forwards the result to vim.system's stdin option. This is error: [!NOTE] Medium Risk Touches request execution for all providers by wiring optional into , which could affect provider invocation if stdin/args expectations differ. Change is small and covered by updated unit tests for . Overview Adds a new optional hook (default ) and updates to pass the returned value into as . Updates to remove the query from its command args and instead provide it via , with accompanying test updates to assert the new behavior. Written by Cursor Bugbot for commit a5687d385f80bfdce2478726128bc39a3ad1465a. This will update automatically on new commits. Configure here.
Summary Adds an for the Antigravity CLI. Uses Defaults to Discovers models through Parses model IDs while ignoring Reuses 99's existing temporary-file prompt contract; no provider-specific file I/O was added Tests Provider command construction: pass Default model and provider registration: pass Model parsing: pass Manual Agy file-output smoke test: pass; exit code 0 and response written to the requested temporary file : Agy tests pass; the existing suite also reports unrelated failures in CursorAgentProvider expectations and macOS path normalization The provider is opt-in and does not change the default provider.
Added support for the popular snacks picker. Snacks can now be selected as a picker by following the same config patterns as fzf_lua & telescope [!NOTE] Low Risk Adds a new optional extension and a small utility refactor; changes are localized to picker UI behavior with minimal impact on core functionality. Overview Adds a new picker extension () that lets users pick the current model or provider via , including dependency checks and preselecting the current choice. Refactors shared selection logic by moving into and updating the Telescope extension to use the shared helper for . Written by Cursor Bugbot for commit a15b14a6c559c098be4d5c50a87305d69eb0a4ea. This will update automatically on new commits. Configure here.
Repository: ThePrimeagen/99. Description: Neovim AI agent done right Stars: 4750, Forks: 264. Primary language: Lua. Languages: Lua (96.9%), Tree-sitter Query (2%), Shell (0.5%), Vim Script (0.3%), Makefile (0.2%). Open PRs: 14, open issues: 12. Last activity: 4mo ago. Community health: 42%. Top contributors: ThePrimeagen, SearidangPa, codegirl-007, ramonasuncion, AnthonyPoschen, jellydn, aleDsz, ThatOneShortGuy, barreiroleo, Copilot and others.