Skip to content

v0.24.0

Latest

Choose a tag to compare

@inkeep-internal-ci inkeep-internal-ci released this 02 Jul 05:43
4a93a66

0.24.0

Stable promotion of beta v0.24.0-beta.10.

Aggregated changes since previous stable:

0.24.0-beta.0

Minor Changes

  • Invite OK Desktop users to subscribe to product updates from the post-update release-notes card. When the app updates, the "Updated to Version X · Release notes" card in the sidebar footer now also carries a compact "Stay in the loop" subscribe form (reusing the existing form) with a "Follow us on" row for X, GitHub, and Discord — shown only when the user hasn't already subscribed or dismissed it, and for at most three distinct update versions. It never appears on its own (no update, no prompt) and won't re-nag on reopen. Dismissing closes the whole card and stops the prompt for good; subscribing from here or the Resources menu retires it. All state is device-local; web and CLI are unaffected.

0.24.0-beta.1

Patch Changes

  • Fix the "Download manually" link in OK Desktop's update notices. When an update fails to install (the "Update to X didn't install" card) or the app detects it hasn't received updates in a while, the manual-download link now points at the GitHub Releases page (https://github.com/inkeep/open-knowledge/releases) where the signed DMGs actually live, instead of a marketing URL that returned a 404.

0.24.0-beta.2

Patch Changes

  • The editor's inline Ask AI button now sends a grounded prompt to the docked terminal instead of the raw selected text. When you highlight a passage and click Ask AI with a terminal open, the running CLI receives the passage together with a reference to the document it came from (or a pointer to read the full passage via the OpenKnowledge MCP server when the selection is large), so the agent can place it in your knowledge base instead of getting an unattributed blob.

0.24.0-beta.3

Patch Changes

  • fix(open-knowledge): make ok init git-root promotion visible + add --content-dir

    When ok init runs in a sub-folder of a git repo, it scaffolds .ok/ at the
    git root and scopes the whole repo as content (one .ok/ per git repo). That
    promotion previously surfaced only as a single console.log line on stdout,
    which ok init 2>&1 | tail / | head silently dropped — so a large repo could
    get whole-repo-scoped without the user noticing.

    • The promotion is now disclosed as a styled warning on stderr at decision
      time, and repeated in the init summary directly next to the "Found N markdown
      files" preview, naming the sub-folder and how to narrow scope.
    • New ok init --content-dir <path> flag scopes content to <path> (resolved
      relative to the current directory, written to .ok/config.yml as
      content.dir). --content-dir . from a promoted sub-folder scopes the
      project to that folder. Paths outside the project root, missing paths, or
      files are rejected with a clear usage error (exit 64). Supplying the flag
      suppresses the whole-repo promotion warning (the scope choice was explicit).
    • New ok init --json flag prints a machine-readable summary to stdout
      (projectRoot, gitRootPromoted, promotedFromDir, contentDir,
      contentDirRequested, contentDirApplied, contentFileCount, didGitInit,
      mcpAction, editors[]) so scripts and agents read the promotion + scope
      signals as fields instead of scraping log text. Diagnostics stay on stderr;
      stdout carries only the JSON document.

    Behavior of the promotion itself is unchanged.

0.24.0-beta.4

Patch Changes

  • Stop OK Desktop's "Update to X didn't install" notice from firing spuriously and re-appearing on every launch. The boot-time failed-install detector now handles two cases it previously got wrong:

    1. Cross-channel state. The stable and beta builds share one settings file (same app id), so a version that one channel armed as its pending install could poison the other channel's boot check. A beta build would show "Update to 0.23.0 didn't install" for a stable version it can never install (cross-channel updates are blocked), and there was no way for it to clear, so the notice returned on every launch. That stale cross-channel record is now cleared silently.

    2. No retry bound. A genuinely stuck install (a persistently-failing installer, a pulled release) re-surfaced the notice on every boot forever. It is now shown at most 3 times per failed update, after which the record is dropped. The 7-day "updates paused" hint remains the backstop.

    Genuine same-channel install failures still surface as before, so a real failed update is not hidden.

0.24.0-beta.5

Minor Changes

  • Add ok migrate notion [dir] to clean up a Notion "Markdown & CSV" export in place. It normalizes internal links so they both render and resolve (decodes %20, handles targets with parentheses, and angle-wraps targets containing spaces), converts <aside> callouts to > [!note], lifts database row properties into YAML frontmatter, extracts inline base64 images to files, and renders each database CSV as a markdown table (keeping the per-row pages). Dry-run by default; pass --apply to write. Every transform is idempotent, and the command refuses non-Notion directories unless --force.

0.24.0-beta.6

Patch Changes

  • exec reads now surface more of what OpenKnowledge already tracks, in the human-readable listing an agent reads. ls shows a folder's available templates (name, description, scope), its description and tags, and direct-vs-recursive file counts with the most-recent date; cat shows the backlink and forward-link source paths (not just counts) and a coarse graph role (hub / connector / leaf / orphan); both render triage frontmatter (status, type) per file.

0.24.0-beta.7

Patch Changes

  • Add always-on desktop startup instrumentation. Every launch now emits one structured desktop.startup-timeline log line with bounded per-phase durations (app-ready → bootstrap → server spawn → lock-ready → window → load → shown, plus the server's HTTP-listen / seed-walk / index / ready timings and the renderer's page-list and first-content marks). The server exposes its boot timings on GET /api/server-info, and the file-watcher seed walk and index phases are now traced (ok.boot.seed-walk, ok.boot.indexes). When OpenTelemetry is enabled, the three processes (Electron main, server, renderer) join into a single correlated ok.app-startup trace via W3C traceparent propagation. This is instrumentation only; startup behavior and timing are unchanged.

0.24.0-beta.8

Patch Changes

  • Fix mouse-wheel scrolling in the desktop terminal for TUIs that hit-test mouse coordinates (opencode, bubbletea apps). The terminal's mouse-mode wheel reports were pinned to cell 1;1 — fine for claude/vim/less, which ignore the position, but coordinate-dispatching TUIs route the wheel to the component under the reported cell, and the top-left corner is never the scrollable region, so scrolling silently did nothing. Wheel reports now carry the pointer's actual cell (with a viewport-center fallback when the renderer hasn't measured yet), and SGR-pixels mode reports CSS-px coordinates. This also corrects scroll targeting in window-under-pointer TUIs: vim/neovim splits and tmux panes previously always scrolled the top-left window regardless of where the pointer was; they now scroll the hovered one, matching native terminals.

0.24.0-beta.9

Patch Changes

  • Refined the docked terminal's chat controls. Show or hide the terminal with an edge "Show terminal" tab that appears right where you closed it — on the right column or under the editor, depending on where it's docked — and the header's separate chat toggle is gone. The terminal's "new tab" control is now a split button: click it to open a new tab in your current CLI, or use the dropdown to switch CLI (your pick sticks, shared with the Ask AI composer) or open a plain "Terminal" tab (which sticks too, just for the terminal). New-chat now respects a CLI you picked but haven't installed instead of silently falling back, terminal tabs show their full title on hover, and opening the chat no longer collapses the document panel.

0.24.0-beta.10

Patch Changes

  • You can now work on several branches of a project at once, each in its own window. The project switcher in the sidebar footer groups your recent projects by repository: a project with open worktrees expands inline to show them (the current window's project is expanded by default), and typing in the search box matches projects, open worktrees, and the current project's branches. Opening a branch that has no worktree yet creates one on demand. "New worktree" lets you start a fresh branch or check out an existing one, and your worktrees also show up in the Cmd-K command palette. Worktrees are stored inside the project under .ok/worktrees/ and kept out of git status automatically, so each window stays fully isolated (its own editor and server) without touching your working copy.