OpenKnowledge

v0.30.1

Released Jul 14, 2026. Part of the OpenKnowledge changelog.

Patch Changes

  • Fix: the code-block chrome's Ask AI now grounds the composer with the selected block's fenced source on first click, matching the second-click and text-selection Ask AI paths. Previously, when no terminal was live, the composer opened with an empty pill and the receiving agent got no passage.
  • Add ok embeddings set-url <url> / ok embeddings clear-url to configure the semantic-search embeddings endpoint from the CLI (for headless / CI users), and validate the endpoint URL inline in Settings → This project → Search. Both the CLI and the Settings field now reject a guaranteed-to-fail endpoint at entry — a malformed URL, or a plaintext http:// host other than localhost — using the same rule the server enforces before it will send the API key, instead of letting a bad value degrade silently to lexical search later.
  • External links now reliably open in your OS default browser on desktop. Clicking an http(s) link in the visual editor, source mode, or a wiki-link chip previously could open another Open Knowledge window rendering the page — most visibly in windows created after a server restart. Link clicks now route straight through the desktop bridge, and the window-level safety net is attached to every editor window (including the server-restart recreate path), so external URLs land in your browser everywhere. Web behavior is unchanged (links still open in a new tab).
  • Terminal CLI launch rows now reflect what's installed. Across every launch surface — the header / tab-strip "New chat", the "Ask X" composer button, and the "Open with AI" menus — the docked-terminal CLI rows are gated on a PATH-detection probe, so you only see the CLIs you actually have (e.g. no Codex or Cursor-agent row when they aren't on PATH). Claude always keeps its row as an install anchor. The gate fails open: a CLI whose install state is still unknown (probe pending, probe failure, or an older desktop bridge) stays visible rather than being silently dropped, so a probe miss never hides a CLI you have installed.
  • Fixes Backspace/Delete merges at nested list-item boundaries (inkeep/open-knowledge#609). Backspace at the start of an item whose previous sibling has a nested sublist no longer lifts the item out of the list as a bare paragraph with no bullet or checkbox, and forward Delete at the end of a nested item before a shallower item no longer re-nests that item at the wrong depth or silently drops its checkbox. Both fixes cover the Mod-Backspace/Mod-Delete variants; flat-list merges, first-item lift-out, and autoformat undo behavior are unchanged. Supersedes and credits inkeep/open-knowledge#613 by @blokboy.
  • Remember each project's window position across opens and relaunches. Reopening a project now restores its editor window to the exact frame it last had — same display, same position, same size, including maximized / full-screen state — instead of the cascade default; cascade remains the fallback for projects with no memory or whose remembered display is no longer connected. The desktop also tracks which project window was most recently focused: a post-update relaunch reopens every window at its old position and brings the window you were actually working in back to the front, and a normal cold start reopens the project you were last in rather than the one you happened to open last. Focus tracking freezes the moment shutdown begins, so the window-close cascade during quit or update install can't mislabel "last active" with whichever window closed last.
  • New file, New folder, and template creation from sidebar menus now keep the inline name field focused, so you can rename the item instead of immediately committing its default name.
  • Fix the [[ wiki-link suggestion box silently freezing when a folder and a note share a name. The search index keyed every entry as page:<name>, so a folder wiki and a note wiki.md collided on page:wiki; the index rejected the duplicate key and the uncaught error killed the typeahead, leaving the dropdown stuck on the same initial results no matter what you typed. Entries are now keyed by their true kind (folder:, page:, file:), folders and assets are explicitly included in the corpus, and results map back to notes by the full kind-qualified key so a folder can't stand in for a same-named note.
  • Preserve agent-authored byte-forms through WYSIWYG edits in the same block. Blockquote lazy continuations now round-trip via a 'lazy' marker-spacing capture, tight ATX heading-paragraph adjacency round-trips via the existing contiguity attribute, and Observer A's map-driven splice narrows into an edited blockquote, list, or list item so untouched sibling children keep their source bytes (including blank-line runs inside list items).

View v0.30.1 on GitHub