v0.16.0
0.16.0
Stable promotion of beta v0.16.0-beta.12.
Aggregated changes since previous stable:
0.16.0-beta.0
Minor Changes
- Add an OKF-conformant starter pack:
ok seed --pack okf(also shown byok seed --list-packs) scaffolds a small knowledge base that is conformant with Google's Open Knowledge Format (OKF) v0.1 from the first commit — every non-reserved doc carries a non-emptytype, plus a frontmatter-free lowercaseindex.md(§6 navigation) andlog.md(§7 change history). Pure pre-populated content: the native frontmatter schema stays open-shaped and nothing is enforced or linted. Ships a guidance-only OKF conventions skill like every other pack.
0.16.0-beta.1
Patch Changes
-
The empty-state create surface can now launch the
claudeCLI in a docked terminal. Alongside the existing app agents, the agent-picker dropdown now offers a Terminal → Claude option. Selecting it switches the primary button to Create with Claude CLI; clicking Create then opens the docked terminal with the same create-scope prompt built from your typed brief — bringing the new-file empty state to parity with the editor's "Open with AI" menu (desktop only; absent on the web host).The Open-in-Agent menus ("Open/Edit with AI", the file-tree right-click submenu, and the sidebar empty-space submenu) and the empty-state agent picker are now organized into labeled Desktop (app launches) and Terminal (CLI launch) sections, so the two launch modes are visually distinct. The CLI row's visible label is now "Claude" (its accessible name remains "Claude CLI"). Section labels render only for non-empty sections, and existing launch behavior is unchanged.
0.16.0-beta.2
Patch Changes
- Fix a round-trip fidelity bug for documents that use indented MDX-JSX container components (
<Steps>,<Tabs>, and similar nested components). Editing one of these documents no longer risks silent indentation rewrites, content reordering, or duplication: the editor's bridge now recognizes the serializer's container formatting as equivalent to the authored source, so the document settles to a stable state in a single pass and what you typed is what gets stored.
0.16.0-beta.3
Minor Changes
-
The docked terminal now supports multiple concurrent sessions as tabs. Run an agent in one tab while you run
git, a build, or a second shell in another — no more waiting for one session to free up or alt-tabbing to an external terminal.- A tab strip in the dock header lists open sessions with a
+New Terminal affordance, a per-tab close (×), and an active indicator. Each tab is its own login shell at the project root. - Sessions are fully isolated: a flood or a crash in one tab pauses or restarts only that tab — output stays byte-exact with no cross-tab interleave, and backpressure is accounted per session.
- Tab lifecycle follows the VS Code / Zed model: closing the active tab activates a neighbor, closing the last tab collapses the dock and returns focus to the editor, and hiding the dock (⌘J) keeps every session alive (hide is not kill).
- "Open in terminal" always opens a fresh tab and runs
claudethere once — it never interrupts a tab you're already using. - The Terminal menu's New/Kill Terminal and a ⌘-number tab-switch shortcut operate on tabs; the tab strip is keyboard- and screen-reader-navigable (tablist roles, arrow-key movement, focus-on-close).
- Each session keeps 10,000 lines of scrollback.
Under the hood, all of a window's sessions are multiplexed through one terminal host process (matching VS Code's shared-host model), so per-window memory stays flat regardless of tab count. The security posture is unchanged: terminals remain human-only and default-on, and no new IPC surface is added. Split panes and per-tab shell/cwd selection are deliberately not included yet.
- A tab strip in the dock header lists open sessions with a
0.16.0-beta.4
Patch Changes
- Opening an existing Open Knowledge project now guarantees the project-local Open Knowledge skill is installed — not just on fresh project setup. Previously, projects onboarded before the project-skill installer existed had Open Knowledge MCP wiring but no skill, and reopening them never healed the gap (the project-open reclaim was refresh-only). Now, when a managed project is opened (OK Desktop) or
ok startruns, any editor whose project MCP config carries the Open Knowledge marker (# ok-mcp-v1) gets itsSKILL.mdcreated if missing — so a restored session loads the skill, with no manual folder moves. Non–Open Knowledge folders and editors that aren't wired for this project are left untouched, and the project-skill write now runs behind the same symlink-escape guard asok init.
0.16.0-beta.5
Patch Changes
-
Give share-link recipients on Linux and Intel Macs a working way in, and make
ok clonefail helpfully on private repos.The share-link splash now always shows a copyable CLI block —
npm install -g @inkeep/open-knowledgefollowed byok clone <owner/repo> -b <branch>— alongside the macOS desktop options. After the page loads it adapts to the visitor's OS: Linux promotes the CLI and hides the desktop-only buttons, Windows shows a clear "Open Knowledge isn't supported on Windows yet" notice (keeping the View on GitHub link), and macOS keeps the desktop app primary with the CLI tucked behind a "Have an Intel Mac? Open with the CLI" disclosure. The clone command always pins the shared branch with-b, and a post-clone breadcrumb tells the recipient which file or folder to open once the clone lands them at the repo root.ok clonenow explains how to recover from an authentication failure instead of printing a raw git error. When you're not signed in, it printsok auth loginand the exactok clonecommand to re-run afterward. A 403 names the signed-in account that may lack access, and a scope problem points at the missingrepoOAuth scope.
0.16.0-beta.6
Patch Changes
- Improve Cmd+K/omnibar search findability. Markdown files are now matchable by their full displayed name including the extension (typing
STORY.mdfinds the page namedSTORY, matching how non-markdown files and the file tree already work). And a query that matches many same-named folders or files (e.g.evidence,index) no longer fills the entire result list with one kind — folders and files are each capped (default 3) so content pages get the remaining slots; full-text search is uncapped.
0.16.0-beta.7
Patch Changes
- Every
ok seedstarter pack now stamps a semantictypeinto the frontmatter of the documents its templates create, so a project scaffolded from any pack is conformant with Google's Open Knowledge Format (OKF v0.1) from the first document. Theknowledge-base,software-lifecycle,plain-notes, andwriting-pipelinepacks gain context-appropriate types (for examplesource,proposal,note,idea); theworldbuildingandentity-vaultpacks already carried them. A conformance test now guards every pack's templates against the OKF non-empty-typerule.
0.16.0-beta.8
Patch Changes
- Desktop: detect and surface a failed auto-update install. When a "Relaunch now" (or quit-to-install) update is committed but the app boots back on the old version — e.g. macOS Squirrel's post-quit install never ran — the next launch now shows a clear "Update to vX didn't install" notice with Retry and Download manually actions, instead of failing silently. Previously this clean-quit failure left no signal: the in-session error and no-quit watchdog only fire while the process is alive, and the pending-install record was cleared before quit. Detection uses a prerelease-aware version compare so same-version beta bumps (e.g. beta.1 → beta.3) are no longer misread as a successful install.
0.16.0-beta.9
Patch Changes
-
Fix docked-terminal behavior in OK Desktop and add Shift+Enter newline support.
- The docked terminal is available in every view and survives navigation. It now opens from folder, asset, and large-file views (previously it only mounted on the document editor and empty state, so "Open with AI → Claude" or ⌘J did nothing there). A single terminal is docked in the editor column — beside the doc/properties panel, which keeps its full height — and the session stays alive across tab switches, view-kind changes, and tab closes, instead of resetting each time.
- The terminal can be resized much taller. Drag it up to 95% of the dock height for long CLI sessions (it was capped at 50%).
- Shift+Tab stays in the terminal. It previously moved focus out of the terminal instead of reaching the running CLI (e.g. the Claude TUI's mode toggle); the keystroke now reaches the PTY.
- Shift+Enter inserts a newline instead of submitting, matching how Ghostty and Cursor map the chord.
0.16.0-beta.10
Patch Changes
- Rank the Cmd+K omnibar name-first. An exact filename match now leads the results even when many files share that basename and have stronger body-text scores — the file you typed is no longer buried below same-named siblings or pushed past the fetch limit. The omnibar still searches content, but a strong content match only reorders within a name-match tier rather than outranking the name itself; the deliberate "by meaning" search keeps content-relevance ranking. A query that matches many folders or name-only files (
evidence,index) no longer fills the whole list with one kind — folders and files are bounded so content pages fill the rest.
0.16.0-beta.11
Patch Changes
- The empty-state create composer's starter-brief suggestion chips now sit in a centered row below the input card instead of crowding the footer next to the Create button. The footer keeps only the Create split button (pinned right), giving the textarea and its primary action a cleaner, less cluttered layout. Clicking a chip still prefills the brief (no auto-create), unchanged.
0.16.0-beta.12
Patch Changes
-
Stop the command palette from showing a false "Search failed." right after a project opens.
When you opened a project and searched immediately, the body-text search could fire before the workspace had finished loading and lose the race with the palette's request timeout, surfacing "Search failed." even though nothing was wrong. The palette now waits for the page list to finish its initial load before running the server search, and shows a "Preparing search" status in that window instead. Once the page list is ready the search runs automatically, and file- and folder-name matching is available as soon as the list has loaded.