Skip to content

v0.13.0

Choose a tag to compare

@inkeep-internal-ci inkeep-internal-ci released this 16 Jun 22:38
6b8000f

0.13.0

Stable promotion of beta v0.13.0-beta.15.

Aggregated changes since previous stable:

0.13.0-beta.0

Minor Changes

  • Keep history and Save Version responsive on long-lived, agent-heavy projects.

    History stays fast no matter how long you have been working in a project, and
    the version timeline keeps loading quickly even after months of daily edits.

    Save Version now groups all of your recent changes — including changes made by
    AI agents — under the version you save, matching what you would expect from the
    button. Previously it only captured some of your recent activity.

    ok diagnose health can now spot a project whose history has started to slow
    down and explain what to do about it.

Patch Changes

  • OK skill guidance now tells agents to reference images and other assets by a doc-relative path and never by a server URL. Previously an agent (notably in Codex) could embed an absolute http://localhost:<port>/… preview-server URL — which is machine- and session-specific and breaks portability, sharing, and the published docs render. The Media section now states the rule explicitly, covers the "reference an asset already in the tree" case, and clarifies that preview_url's URL navigates the preview and must never be pasted into an image embed.

  • Fix the FILES sidebar showing "Documents response did not match expected shape." when a documents refresh is superseded during a long initial load of a large project. A refresh aborted mid-response now propagates as a cancellation instead of being mistaken for a malformed server payload, so the sidebar keeps its loading state (or the previous tree) until a completed refresh arrives.

  • Show All Files sidebar overhaul. The recursive listing walk now emits in level order, so hitting the entry cap drops the deepest entries first instead of arbitrarily starving top-level items behind one huge subtree. The sidebar no longer walks the whole tree up front in Show All mode: it seeds the root level lazily, fetches each folder's children on expand, and revalidates only the root plus currently-expanded folders when files change externally. The truncation and listing-error notices now render as contained, localized alert rows, and the truncation copy is truthful: it shows a locale-formatted count and explains that deeply nested files are hidden (the previous copy claimed search could find them, which it cannot — show-all-only files are not in the search index).

  • Keep the desktop editor editable after creating and inline-renaming successive sidebar files in packaged builds. The editor now repairs a stale TipTap EditorContent portal attachment after rename churn and avoids clearing the freshly reopened destination provider during active renames.

  • Add a native right-click context menu in the OK Desktop editor (macOS). Right-clicking editable text now opens a native menu with Cut/Copy/Paste/Select All, and right-clicking a misspelled word adds spelling suggestions, "Add to Dictionary" (written to the macOS system dictionary), "Disable Spell Check", "Look Up", and "Search with Google" — matching the affordance every other Mac app offers. Spell check can be turned back on right from the editor ("Enable Spell Check" on any editable right-click) or from the new Edit ▸ "Check Spelling While Typing" menu item, and the on/off choice persists across relaunches. Previously, right-clicking a misspelled word did nothing.

0.13.0-beta.1

Patch Changes

  • Agent writes no longer drop concurrent un-flushed collaborative edits when an out-of-band disk edit races them. The pre-write reconcile used to ingest the divergent disk content wholesale, reverting any CRDT edit still inside the persistence debounce window; it now routes through the same three-way merge the file watcher uses, so both the disk edit and the concurrent edit survive (the success response's disk-edit-reconciled warning gains a mergeOutcome field discriminating clean from merged). Overlapping-block conflicts and conflict-marker disk content now refuse the agent write with the standard 409 doc-in-conflict envelope instead of silently picking a winner. The file watcher's own merge now advances the reconciled base to the on-disk bytes rather than the memory-only merged content, so a subsequent agent write no longer misreads the merge as a fresh divergence and reverts it (arrival-order independence), and the merged content actually reaches disk on the next store.

0.13.0-beta.2

Patch Changes

  • Editing near the top of a frontmatter document can no longer duplicate the first paragraph or silently delete the blank line after the frontmatter. When a WYSIWYG edit raced an unabsorbed source-mode edit, the server's three-way merge received inputs from two different byte-spaces — the editor-derived input structurally lacks the blank line between the frontmatter close fence and the body — so the line-based merge misread the user's edited first paragraph as replacing that blank line and resurrected a second copy of it, deleted the blank line from the document, and could double a trailing-whitespace keystroke on the close fence. All three merge inputs are now projected into one doc-boundary byte-space before merging, and the document's own boundary bytes are re-attached to the result verbatim — blank lines you typed (or deleted) after the frontmatter survive merges byte-exactly.

0.13.0-beta.3

Patch Changes

  • Markdown documents containing an astral (non-BMP) codepoint such as an emoji before a guard-unmatched { no longer get a stray { minted into otherwise-untouched text when the document is parsed and re-serialized. Previously, each astral codepoint before the brace shifted an internal protection sentinel one position too far, so on restore a real character was overwritten with { and the genuine { was left unprotected. This affected every editor render, every position: 'replace' agent write, and every disk save of such a document.

0.13.0-beta.4

Minor Changes

  • Simplify the document timeline to a single, flat history of real changes.

    The timeline now shows one clean, reverse-chronological list of every change as it happened — your edits alongside changes from AI agents, synced files, and upstream pulls. There are no more "Show N auto-saves" expanders to click through, and no distinction between different kinds of system snapshots.

    The "Save Version" button has been removed. Versions are no longer something you save by hand — the timeline already captures your history continuously, and you can still restore the document to any point from any row.

0.13.0-beta.5

Patch Changes

  • Fix literal &#x20; characters appearing in the editor after closing and reopening a document. A space at the edge of a paragraph, bold/italic run, inline code, or list item is stored by the byte-fidelity engine as the numeric character reference &#x20; (or &#x9; for a tab); on a cold reopen that reference was restored as the visible literal text &#x20; instead of a real space. Whitespace numeric character references now display as the decoded space/tab in the editor while still serializing to the exact same bytes on disk, so source byte-fidelity is unchanged. User-authored entity references (&amp;, &#x41;) and escaped \&#x20; are untouched, and the sourceLiteral security gate continues to reject any non-whitespace divergence between displayed text and persisted bytes.

0.13.0-beta.6

Patch Changes

  • Clicking the empty space in the sidebar file tree now clears the selection so that New File and New Folder create at the project root. The document you had open stays open in the main view — only the create target changes. Selecting another item, or navigating elsewhere, re-points creation at that item's folder as before.

0.13.0-beta.7

Patch Changes

  • OK skill guidance now tells agents to re-point the preview at the end of a multi-doc workflow and to stop claiming a doc is on screen when they haven't navigated there. The preview attaches once per session; later writes don't move the pane, so after a long workflow it could sit on an earlier doc while the agent reported the final file as "open." The Preview section now says: when a turn touches several docs, finish by navigating the preview to the doc the user should land on (via preview_eval / preview_url, honoring autoOpen), and don't tell the user a doc is open unless you navigated there this turn.

0.13.0-beta.8

Patch Changes

  • Clicking an Open Knowledge share link when the app was not already running no longer opens a previously-opened project instead of the shared doc or folder. On a cold start the boot path now recognizes a valid share deep-link as claiming the launch (the same way a single-file ok <file> open does) and suppresses the default window-restore, so the share flow opens the shared target — or the receive prompt — directly. Invalid or unsupported share links, and screen deep-links, still restore the previous window as before, since they need an existing window to surface their toast or navigation. Git preflight still runs for share launches.

0.13.0-beta.9

Patch Changes

  • OK skill preview guidance is now framed around the three apps OK ships first-class preview support for, naming the exact in-app browser tool to drive in each so the agent opens the preview in the host's own surface instead of falling back to the system browser:

    • Claude Code Desktoppreview_start / preview_eval (the preview pane).
    • Cursor → its built-in Browser tool's Navigate action (browser_navigate, via Cursor's cursor-ide-browser). Notes that only the agent's own Navigate reaches the pane (a third-party MCP cannot push a URL in) and that a surfaced link follows Cursor's "Browser Tab" vs "Google Chrome" picker.
    • Codex desktop app → the in-app @Browser plugin (drives via tab.goto).

    The Claude Code CLI is now a clearly separate track: pure stdio, no browser — use ok open <doc> to deep-link into OK Desktop, never print/fake a browser. The Codex CLI, IDE extension, and Cloud live on this track too (web search only, no localhost browser). The underlying capability-not-host-name principle is retained so unknown hosts still route correctly.

    The runtime "no browser attached" warning (attach-preview-once) now names the same per-host paths (preview_start, in-app browser Navigate/@Browser, CLI ok open) instead of only preview_start, so the in-band recovery signal matches the bundled skill.

0.13.0-beta.10

Patch Changes

  • Make share-link copying work in embedded previews.

    Clicking "Copy share link" inside an embedding host that blocks the modern
    clipboard API (for example the Claude preview pane) now falls back to the
    browser's legacy copy path instead of showing "couldn't copy" — the link lands
    on your clipboard on the first click. When the embedding host blocks both
    paths, the failure message now correctly explains the preview limitation.

0.13.0-beta.11

Patch Changes

  • fix(open-knowledge): explain why a shared-repo clone failed instead of a vague toast

    When opening a share link to a repository that can't be cloned (most often a
    private repo the recipient's GitHub account can't access), the share-receive
    dialog now shows a persistent in-dialog error view instead of a transient
    "clone failed" toast that disappeared before it could be read. The view shows
    the GitHub error condensed to its meaningful line (e.g. `Error: "Repository

0.13.0-beta.12

Patch Changes

  • fix(open-knowledge): branch-aware "I already have it locally" share-receive

    Opening a share link for a branch you don't have checked out, for a repo that
    isn't in your recent projects, now shows the branch-switch dialog when you
    locate the repo via "I already have it locally" — the same prompt you already
    get when the shared repo is in your recent projects. Previously this path opened
    the project on whatever branch happened to be checked out and silently showed
    the wrong (or an empty) document; the branch-switch choice only appeared on a
    second click, once locating the repo had added it to your recent projects. The
    receive flow now reads the located clone's current branch and, on a mismatch
    with the share's branch, routes to the branch-switch surface (open on the
    current branch vs switch to the shared branch) instead of opening on the wrong
    branch.

    • @inkeep/open-knowledge-core@0.12.1-beta.0
    • @inkeep/open-knowledge-server@0.12.1-beta.0

0.13.0-beta.13

Patch Changes

  • Use consistent sentence casing for file-tree menu and toolbar labels. Items like "New File", "New Folder", "Show Hidden Files", "Copy Path", "Full Path", "Relative Path", "Expand All", "Collapse All", and "Tree View Options" are now "New file", "New folder", "Show hidden files", "Copy path", "Full path", "Relative path", "Expand all", "Collapse all", and "Tree view options". Proper nouns keep their capitalization (Finder, Terminal, File Explorer, AI). The native macOS menu bar keeps title-style capitalization per the Apple Human Interface Guidelines.

  • The desktop server version-drift and restart toasts now route their copy through the Lingui translation catalog instead of hardcoded English. This covers the version-mismatch body, the agent-disruption warning, the restart loading and success messages, the dev-session reclaim notice, and the branched restart-failure copy. English output is unchanged; these strings are now translatable alongside the rest of the editor UI.

0.13.0-beta.14

Patch Changes

  • Use consistent sentence casing for the native desktop menu bar. File/View menu items like "New File", "New Folder", "Show Hidden Files", "Copy Path", "Expand All", "Create New Project…", "Switch Project…", and "Open Recent" are now sentence case ("New file", "New folder", "Show hidden files", "Copy path", "Expand all", "Create new project…", "Switch project…", "Open recent", etc.), matching the in-app menus. Proper nouns keep their capitalization (Finder, Terminal, AI), and menu titles (File/Edit/View/Window/Help) are unchanged.

    The labels shared between the native menu and the in-app menus now come from a single MENU_LABELS constant in @inkeep/open-knowledge-core, with a test that keeps the renderer's translated strings in sync with it.

0.13.0-beta.15

Patch Changes

  • Desktop auto-update and app-quit events are now recorded in the diagnostic logs (~/.ok/logs/desktop.<date>.log). Previously the auto-updater logged only to the console — which packaged builds don't persist — and its async log buffer was lost when the process was killed for an update swap, so an unexpected restart left no trace of whether it came from the "Relaunch now" prompt, an install-on-quit, or a crash. The updater now writes through the file logger; before-quit, before-quit-for-update, and will-quit are logged; and the buffer is flushed to disk before the process exits.
    • @inkeep/open-knowledge@0.12.1-beta.0
    • @inkeep/open-knowledge-core@0.12.1-beta.0
    • @inkeep/open-knowledge-server@0.12.1-beta.0