Skip to content

0.26.0 - 2026-08-17

Choose a tag to compare

@github-actions github-actions released this 16 Aug 19:40

Release Notes

Changed

  • BREAKING — the project is now GrooveSeek, and the command is groove.
    The old name collided inside its own category (github.com/moikas-code/kb-mcp
    is also a knowledge-base MCP server) and bound the product to one of the two
    ways it is read — a browser opening /ui is the other. The rename lands now
    because the name is written into your filesystem, and after 1.0.0 changing it
    would mean carrying a "look for the old name too" layer for all of 1.x.
    Reasoning and the candidates that were measured and rejected:
    ADR-0007.

    There is no automatic migration, and no aliases. A 0.26.0 binary does not
    see anything left by 0.25.0. To carry an install over:

    Old New
    kb-mcp (command) groove
    kb-mcp.toml groove.toml
    .kb-mcp.db .groove.db
    .kb-mcpignore .grooveignore
    .kb-mcp-eval-history.json .groove-eval-history.json
    .kb-mcp-eval.yml .groove-eval.yml
    KB_MCP_CONFIG_HOME GROOVE_CONFIG_HOME
    KB_MCP_TRAY_LOG GROOVE_TRAY_LOG
    KB_MCP_BIN GROOVE_BIN
    KBMCP_BENCH_KB GROOVE_BENCH_KB
    kb-mcp-svc / kb-mcp-tray groove-svc / groove-tray
    <config_dir>/kb-mcp/<service>/ <config_dir>/groove/<service>/

    Renaming the files is enough — the formats did not change, so the index does
    not need rebuilding. A service registered by kb-mcp service install must be
    uninstalled with the old binary before groove service install is run;
    the new binary does not know the old registration exists.

    .mcp.json entries need their "command" updated to groove. The MCP server
    now identifies itself as grooveseek in serverInfo.name.

Fixed

  • The watcher missed every file inside a directory that was newly created
    under the knowledge base — on Linux.
    Copy a folder of notes into a watched
    KB and its contents stayed unindexed until the next full groove index; the
    directory event arrived, the files' did not.

    This is not a debounce or a deadline: the events are unobservable. inotify
    watches are per-directory, so a file written into a directory that was created
    microseconds earlier is reported by no watch at all — not the parent's, which
    only names the directory, and not the new directory's, which is registered too
    late. Measured on Ubuntu 22.04 with raw inotify: the file was on disk 0.79 ms
    after mkdir, and the earliest a watcher could register the new watch was
    2.41 ms. Nothing inside notify recovers it, so the watcher now looks inside
    a directory once when it appears.

    Windows was never affected — ReadDirectoryChangesW watches the subtree from
    a single handle — which is why this survived unnoticed until a Linux-only CI
    failure.

    What gets indexed is decided by the full index walk's filter, now reachable
    for a subtree, so a directory drop and a later groove index agree. The count
    is logged: a directory drop is never a silent bulk index.

grooveseek 0.26.0

Download grooveseek 0.26.0

File Platform Checksum
grooveseek-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
grooveseek-x86_64-pc-windows-msvc.zip x64 Windows checksum
grooveseek-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
grooveseek-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

groove-tray 0.26.0

Download groove-tray 0.26.0

File Platform Checksum
groove-tray-x86_64-pc-windows-msvc.zip x64 Windows checksum

groove-svc 0.26.0

Download groove-svc 0.26.0

File Platform Checksum
groove-svc-x86_64-pc-windows-msvc.zip x64 Windows checksum