Tags: inkeep/open-knowledge
Tags
Invite OK Desktop users to subscribe to product updates from the… 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. GitOrigin-RevId: f98fed2d8f5679376ac79047968e38787b391e76
You can now work on several branches of a project at once, each in its… You can now work on several branches of a project at once, each in its own window. The project switcher in the sidebar footer (and the File menu) has a new Worktrees section: pick a branch to open its worktree in a new window — if it doesn't have one yet, OpenKnowledge creates it on demand — or choose "New worktree…" to start a fresh branch. 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. GitOrigin-RevId: 093eba067e2497015f4800bb3b17fa3995d4e6c3
Starting an AI chat in the docked terminal is now a first-class… Starting an AI chat in the docked terminal is now a first-class action. A single **Open chat / Close chat** button in the editor header reveals the terminal (collapsing the right document panel so the chat gets the full column) and starts your default CLI when no session is open, or hides it when it's showing. The terminal tab strip's **+** is now **New chat** (launches your default CLI, next to the last tab) alongside a separate **New terminal tab** button for a plain shell. Your **default CLI** is detected from what's installed — priority Claude → Codex → OpenCode → Cursor — and the one you pick anywhere sticks for next time; if none are installed it falls back to Claude with the existing install prompt. The "Ask AI" bubble and the file-tree / composer "Open in terminal" actions use the same default and also clear the document panel for the chat. Across the app, the **Terminal** option now leads the "Open with AI" menus ahead of Desktop. GitOrigin-RevId: c4b03c63913e4ec4c42dc36d3dd2d2a01c23ac99
Starting an AI chat in the docked terminal is now a first-class… Starting an AI chat in the docked terminal is now a first-class action. A single **Open chat / Close chat** button in the editor header reveals the terminal (collapsing the right document panel so the chat gets the full column) and starts your default CLI when no session is open, or hides it when it's showing. The terminal tab strip's **+** is now **New chat** (launches your default CLI, next to the last tab) alongside a separate **New terminal tab** button for a plain shell. Your **default CLI** is detected from what's installed — priority Claude → Codex → OpenCode → Cursor — and the one you pick anywhere sticks for next time; if none are installed it falls back to Claude with the existing install prompt. The "Ask AI" bubble and the file-tree / composer "Open in terminal" actions use the same default and also clear the document panel for the chat. Across the app, the **Terminal** option now leads the "Open with AI" menus ahead of Desktop. GitOrigin-RevId: c4b03c63913e4ec4c42dc36d3dd2d2a01c23ac99
Add a first-run onboarding card to OK Desktop. A dismissable checklist… Add a first-run onboarding card to OK Desktop. A dismissable checklist in the sidebar footer guides genuinely new users through three momentum steps — create a project (pre-checked), create the first file (⌘N), and ask AI (⌘L) — each showing its keyboard shortcut. Steps check off as the user actually performs them; on finishing all three the card celebrates in place with the OK blob mascot before animating away for good. It shows only for a fresh single-project desktop session and never returns once dismissed or completed (device-local). Web and CLI render nothing. Two docked-terminal fixes. Dropping a file onto the terminal now inserts its shell-escaped absolute path at the prompt (matching VS Code / Cursor / JetBrains), so you can drag a screenshot straight into a running `claude` session instead of the drop being ignored. And highlighting text and choosing "Ask AI" now sends the selection straight into the open terminal (or opens the Ask AI composer when no terminal is open) — consistent with the fact that there is no composer visible while the terminal is up. Launching a CLI (Create with…, Open in terminal) always opens a new terminal tab rather than reusing the one already running. GitOrigin-RevId: f0eeecbc6ad4493b2d5715532e905f66eb155e06
The docked terminal now opens as a right-side column by default,… The docked terminal now opens as a right-side column by default, sitting to the right of the document panel (editor, then document panel, then terminal). A dock button in the terminal's tab strip moves it between the right column and the bottom dock, and a collapse button hides it while keeping the running sessions alive. Your chosen dock position is remembered across sessions. Moving the terminal by dragging has been replaced by these buttons. GitOrigin-RevId: 18a68af7f5ea0a6cb00d475ee8866f45906094a1
Fix the Ask AI composer covering the last lines of a document. Two… Fix the Ask AI composer covering the last lines of a document. Two fixes: the bottom scroll inset now reserves room for the composer's gradient-fade band (not just the card), and in source/markdown mode the inset is no longer zeroed by CodeMirror's content-padding reset — so the final lines clear the field in both WYSIWYG and source mode instead of sitting under it. GitOrigin-RevId: d9cbcfa2439aa8068e78e25e25947c0d6f7ce71f
`ok seed --dry-run` now previews a pack in an uninitialized directory… `ok seed --dry-run` now previews a pack in an uninitialized directory instead of erroring with "Run `ok init` first". The prerequisite gate is skipped for dry-runs (whose purpose is to preview a pack before adopting it); real seeding still requires an initialized project. GitOrigin-RevId: 2f1d99e7be21a3ecb158c0c53f1953ceda18c897
Coalesce the redundant `GET /api/documents` requests fired on load.… Coalesce the redundant `GET /api/documents` requests fired on load. Several consumers independently fetch the same full listing — the page-list context (asset/folder/file paths), the empty-editor state (entry count for the onboarding branch), and the wiki-link suggestion source (referenced assets) — so on boot and on every file-change push the server ran the same `ready`-gated disk walk two or three times concurrently. These now share a single in-flight request and one JSON parse. It is single-flight, not a result cache: the slot is released as soon as the request settles, so consumers that refetch on a file-change push still get current data. The sidebar file tree keeps its own `depth=1` lazy fetch (a different URL) unchanged. GitOrigin-RevId: e6ac46966acca08cf896e3263d9b7bffdd2043d5
Coalesce the redundant `GET /api/documents` requests fired on load.… Coalesce the redundant `GET /api/documents` requests fired on load. Several consumers independently fetch the same full listing — the page-list context (asset/folder/file paths), the empty-editor state (entry count for the onboarding branch), and the wiki-link suggestion source (referenced assets) — so on boot and on every file-change push the server ran the same `ready`-gated disk walk two or three times concurrently. These now share a single in-flight request and one JSON parse. It is single-flight, not a result cache: the slot is released as soon as the request settles, so consumers that refetch on a file-change push still get current data. The sidebar file tree keeps its own `depth=1` lazy fetch (a different URL) unchanged. GitOrigin-RevId: e6ac46966acca08cf896e3263d9b7bffdd2043d5
PreviousNext