9 Commits

Author SHA1 Message Date
Oleks 29e4c31bd7 v0.9.0: rename plugin nvim-agentic-companion → nvim-agentic 2026-05-22 11:59:59 +03:00
oleks f18c8410ad v0.8.0: enumerate MCP tools explicitly in tools:/allowed-tools: (#1)
A trailing mcp__…__* wildcard in an agent's tools: / a skill's
allowed-tools: does not expand — verified by spawning the companion
agent, which saw zero mcp__ tools despite the parent session having
all 19 connected. Working plugins (cluster) enumerate every MCP tool
by full name; do the same here.

- agents/companion.md, skills/*: tools:/allowed-tools: now list all 19
  mcp__plugin_nvim-agentic-companion_neovim__vim_* tools explicitly
- companion.md: drop the stale nvim-mcp-repin.path/.service reference
  (re-pin is now the bridge's ExecStartPost); spell out the launch-race
  (issue #2) in the unavailability runbook

Fixes #1. Refs #2.
2026-05-21 14:41:21 +03:00
oleks 9a9d477d5c v0.7.0: name MCP tools by leaf, not fully-qualified
Hardcoding mcp__neovim__vim_* in the agent/skill prose was wrong on
two counts: (1) the prefix was flat-out incorrect — a plugin-shipped
.mcp.json server is namespaced mcp__plugin_<plugin>_<key>__, not
mcp__<key>__; (2) hardcoding any fully-qualified MCP tool name in
prose is fragile — it depends on registration method and topology
(metamcp aggregation injected/removed a segment).

- frontmatter tools:/allowed-tools: use the correct prefix wildcard
  mcp__plugin_nvim-agentic-companion_neovim__* (the allowlist needs a
  real pattern; one place; stable with plugin name + .mcp.json key)
- all prose now names tools by leaf (vim_command, vim_health, …) and
  tells the agent to match those against its actual runtime toolset
  rather than assume a prefix
2026-05-21 13:44:04 +03:00
oleks 214c640f75 v0.6.0: drop MetaMCP from the neovim path
MetaMCP never re-dials a restarted upstream — proven for both STDIO
and STREAMABLE_HTTP upstreams — so it cannot front an ephemeral,
editor-bound MCP. The pool now fronts the nvim-mcp-bridge directly:

  Claude Code -> mcp-session-pool /p/neovim -> nvim-mcp-bridge -> nvim

The pool re-establishes on its own (_ensure_pinned re-runs initialize),
so an event-driven /repin (fired by the socket-appearance systemd.path
oneshot) actually heals the chain.

- tool names revert to two-segment mcp__neovim__vim_* (no MetaMCP
  aggregation prefix)
- agents/companion.md + skills + README: surface description and
  troubleshooting runbook rewritten for the pool->bridge->nvim chain
2026-05-21 13:24:01 +03:00
oleks 3c5851e95e v0.5.0: route the neovim MCP through MetaMCP
mcp-neovim-server no longer runs as a per-session npx stdio child.
It is now a MetaMCP namespace upstream on emmett (one persistent
process), reached over Streamable-HTTP via the mcp-session-pool:

  Claude Code -> pool.localhost:12010/p/neovim/mcp
    -> MetaMCP neovim namespace -> mcp-neovim-server -> nvim socket

- .mcp.json: stdio npx server -> streamable-http pool endpoint
- agents/companion.md + skills: tool names are now 3-segment
  (mcp__neovim__neovim__vim_*) — the MetaMCP aggregation shape; the
  surface description and unavailability runbook updated for the
  three-link path (nvim socket / MetaMCP / session)
- README: connection-path diagram

Host side (servers/emmett, deployed separately): neovim added to
services.mcp-session-pool.upstreams; metamcp.nix seeds the neovim
mcp_servers row + mapping and adds nodejs to the unit PATH.
2026-05-21 11:19:49 +03:00
oleks 222035d4fe v0.4.0: fix MCP tool names (vim_* not nvim_*)
mcp-neovim-server exposes tools named vim_command, vim_buffer,
vim_status, vim_edit, vim_window, vim_file_open, vim_search, etc. —
all with a vim_ prefix and with no eval tool. The agent and skills
previously referenced mcp__neovim__nvim_command and
mcp__neovim__nvim_eval, which do not exist, so every drive/introspect
call would have failed to resolve.

- agents/companion.md: add the full vim_* tool reference table; note
  that lua is evaluated via vim_command with :lua print(...)
- skills/editor-introspect: add a 'tools you have' section; correct
  the runnable-via line
- skills/editor-act: correct the description's tool references
2026-05-21 11:09:49 +03:00
oleks 31eb79bd56 v0.3.0: deeper claudecode.nvim integration + lint fixes
- agents/companion.md: recognise three surfaces (mcp-neovim-server RPC,
  claudecode.nvim IDE-link, declarative NixVim config) and rule for
  picking between MCP-RPC vs IDE-link tools (selection/diff/diagnostics
  -> IDE link; everything else -> mcp__neovim__*)
- skills/claude-code-handoff: document the full :ClaudeCode* command
  surface (SelectModel, Status, TreeAdd, partial-file Add with line
  range) and recommend partial-file Add over whole-buffer send
- skills/editor-act: fix markdown lint issues (vim language hint on
  code fences, line-length on feedkeys snippet)
2026-05-21 00:35:07 +03:00
oleks 6de5cec0e4 v0.2.0: broaden tools, ship neovim MCP server, namespace agent
- agents/companion.md: expand tools to full editor + filesystem + web set
  and grant mcp__neovim__* so the agent can drive nvim directly
- skills/*: each skill's allowed-tools also gains mcp__neovim__*
- .mcp.json: ship the mcp-neovim-server config with the plugin so
  installing the plugin auto-wires the editor MCP (uses default socket
  /run/user/1000/nvim.sock — adjust if your uid differs)
2026-05-21 00:29:23 +03:00
oleks acf207e53b Initial commit: nvim-agentic-companion plugin
Adds a Claude Code agent and three skills for collaborating with the
user's running Neovim instance via mcp-neovim-server and the official
coder/claudecode.nvim plugin:

- agents/companion.md — the nvim companion identity, prefers runtime
  introspection over training-data guessing
- skills/editor-introspect — read-only queries against the live editor
- skills/editor-act — safe driving (open, jump, toggle, run); no buffer edits
- skills/claude-code-handoff — delegate buffer edits to the in-editor
  Claude Code session so users get a diff to accept or reject
2026-05-21 00:22:05 +03:00