OpenKnowledge

v0.48.4

Part of the OpenKnowledge changelog.

Patch Changes

  • Agents that run through npx or uvx now start on machines where Node or Python tooling is managed by nvm or fnm, instead of offering to download a copy of Node the user already has. A desktop app opened from the Dock or Finder inherits a minimal PATH, and a version manager like nvm has no fixed directory to add to it — the active Node lives under a versioned path that only a shell function puts on PATH. When a command can't be found, OK now asks your login shell what its PATH is and tries once more before offering to download a managed runtime. The same fallback also rescues custom agents installed in shell-configured locations. The probe runs at most once per session, only after a launch has already failed, and never overrides a PATH that an agent's own configuration set.
  • Broken images keep their "Image failed to load" pill, without side effects on copy or on anything else that reads the document. The failed <img> now stays mounted (hidden) behind the pill, so copying a selection with a broken relative-path image emits the markdown source-fallback block again instead of silently dropping the image, the pill's own text no longer pastes into other apps as if it were document content, and a broken-but-portable web image pastes as a normal <img> whose URL may still resolve at the destination. Error detection now trusts the image's error event alone, so a successfully loaded dimensionless resource (an SVG sized only by CSS) is no longer misreported as broken, and screen readers always hear the failure notice with the image's alt text or source.
  • Blank lines at the very top or bottom of a document now stay in sync between the visual editor and markdown source in both directions. Previously they only propagated when added in the visual editor: blank lines typed in source mode (or arriving from disk or an agent) never appeared in any collaborator's visual editor, deleting them in source mode left phantom blank paragraphs behind, and deleting them in the visual editor never reached the file. On frontmatter-bearing documents, blank lines added above the first paragraph now survive too, with the separator line below the frontmatter kept intact. This also fixes a lock-up where a document whose two representations disagreed about an edge blank line would silently stop showing source-mode edits in the visual editor and revert visual-editor deletions.
  • The Mermaid and HTML code-preview edit modals now show the live render on the left and the source editor on the right, matching how the reader mentally locates their edit — outcome first, mechanism next. On stacked (mobile-width) viewports the source editor stays on top so the surface the user came to edit is what they land on, and the body scrolls if the two panes exceed the dialog height.
  • Internal test diagnostics: when the check that an ok mcp server exits after its launching host dies fails on CI, it now reports the server's parent pid and captured stderr instead of a bare assertion. The parent pid is what separates the two ways that check can fail — the process never being reparented at all, versus being reparented and then not finishing shutdown — which previously could not be told apart from the failure output. No change to how OK runs.

View v0.48.4 on GitHub