Skip to content

v0.55.2

Latest

Choose a tag to compare

@inkeep-internal-ci inkeep-internal-ci released this 15 Aug 01:02

Point release over v0.55.1: the current stable plus 1 applied commit(s), isolated from the changes still soaking on main.

Applied: 53d3132

Patch Changes

  • ok start no longer dies without an error message when a project's path, or a folder inside it, is named in a non-Latin script. The server handed its ignore list to the file watcher's native matcher as glob patterns, and that matcher compiles each one to a C++ regular expression it evaluates against every path an event carries. The evaluation recurses once per byte of the path, so a long enough path exhausted the watcher thread's stack and killed the whole process — reported on Windows as exit code 0xC0000409. Nothing surfaced in JavaScript, so there was no exception, no stack trace, and an empty error log; from the outside the server had simply vanished mid-startup, and every MCP write tool that needed it began failing with server did not start within 5000ms.

    Because the recursion tracks bytes rather than characters, a Japanese, Chinese, Korean, Cyrillic, or Greek folder name reached the limit at roughly a third of the depth an ASCII one needed, which is why a knowledge base whose folders are named in the author's own language could not be served at all while an otherwise identical ASCII copy started fine. Renaming the folder to ASCII was the only workaround, and pointing an ASCII junction or symlink at it did not help.

    The watcher now pre-filters on plain directory prefixes instead of globs, so no path ever reaches the native regular-expression engine. .git, node_modules, and OK's own .ok/local and .ok/worktrees are still skipped before OK sees them, at every depth: the startup scan records each one it finds and hands the watcher that list, so a monorepo's per-package node_modules stay outside the watch. That list is taken once, at startup, so a dependency tree installed into an open project while the server is running is no longer skipped before OK sees it — the events are still discarded, just a step later, until the next restart.

    This also fixes a quieter bug in the same place. An exclusion with no wildcard in it — dist/, drafts/, coverage — was being handed to the watcher as a whole-subtree skip, which is broader than the rule you wrote: it also hid the templates at drafts/.ok/templates/*.md, which OK otherwise treats as ordinary editable content. External edits to such a template now reach the editor, and so do edits under a folder you un-ignore while the server is running, which previously stayed invisible until restart. Both apply to the CLI's watcher; the desktop app uses the fallback watcher, which prunes excluded folders itself and is unaffected either way.

Downloads

Platform Architecture Download
macOS Apple Silicon OpenKnowledge-arm64.dmg
Windows x64 OpenKnowledge-Setup-x64.exe
Windows arm64 OpenKnowledge-Setup-arm64.exe
Debian / Ubuntu x64 OpenKnowledge-amd64.deb
Debian / Ubuntu arm64 OpenKnowledge-arm64.deb
Fedora / RHEL x64 OpenKnowledge-x86_64.rpm
Fedora / RHEL arm64 OpenKnowledge-aarch64.rpm