diff --git a/.changeset/composer-selection-pill-row.md b/.changeset/composer-selection-pill-row.md deleted file mode 100644 index ceed15ad0..000000000 --- a/.changeset/composer-selection-pill-row.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge-app": patch ---- - -Ask AI composer: the captured-selection chip now shares one wrapping row with the file-context chips instead of stacking on its own line above them. The chips sit on the same row and only break to a second line when they overflow the available width. The selection chip now truncates a long file name (capped at 16rem) so its label no longer spills past the chip's border, and the expanded selection preview still drops to its own line beneath the chips. diff --git a/.changeset/desktop-parallel-dev-instances.md b/.changeset/desktop-parallel-dev-instances.md deleted file mode 100644 index 8a3f16aa8..000000000 --- a/.changeset/desktop-parallel-dev-instances.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge-desktop": patch ---- - -Dev: set `OK_INSTANCE=` to run multiple desktop dev instances in parallel. Electron keys its single-instance lock on the `userData` directory, so two `electron-vite dev` processes normally collide and the second quits. `OK_INSTANCE` relocates each launch's `userData` to a named sibling directory (`Open Knowledge ()`), giving every instance its own lock and its own isolated Chromium storage and recents. Honored only on unpackaged builds; packaged releases are unaffected. diff --git a/.changeset/folder-ask-ai-composer.md b/.changeset/folder-ask-ai-composer.md deleted file mode 100644 index daf76ceca..000000000 --- a/.changeset/folder-ask-ai-composer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge-app": minor ---- - -Add the bottom "Ask AI" composer to the folder overview page. Opening a folder now shows the same desktop composer that the editor has, docked below the file list and scoped to that folder: the folder is its top-row context chip and the dispatch lead, so a typed instruction hands off as "work on the `` folder" (with any extra `@`-mentions preserved). Picking a Terminal CLI, the rotating placeholder, agent stickiness, and ⌘L all behave exactly as in the editor. The folder is a removable chip — clearing it drops to project scope; the content-root overview dispatches as bare project scope. Internally this adds a `folder` compose-scope to the unified handoff prompt assembler so folder dispatches keep `@`-mention support (the directive `composeFolderPrompt` path carries none). diff --git a/.changeset/pre.json b/.changeset/pre.json index 20138435e..26e204d0c 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -3,13 +3,13 @@ "tag": "beta", "initialVersions": { "@inkeep/open-knowledge-docs": "0.0.1", - "@inkeep/open-knowledge-app": "0.18.0", - "@inkeep/open-knowledge": "0.18.0", - "@inkeep/open-knowledge-core": "0.18.0", - "@inkeep/open-knowledge-desktop": "0.18.0", - "@inkeep/md-conformance": "0.0.8", + "@inkeep/open-knowledge-app": "0.19.0", + "@inkeep/open-knowledge": "0.19.0", + "@inkeep/open-knowledge-core": "0.19.0", + "@inkeep/open-knowledge-desktop": "0.19.0", + "@inkeep/md-conformance": "0.0.9", "@inkeep/open-knowledge-plugin": "0.3.1", - "@inkeep/open-knowledge-server": "0.18.0" + "@inkeep/open-knowledge-server": "0.19.0" }, "changesets": [] } diff --git a/.changeset/rename-writes-destination-once.md b/.changeset/rename-writes-destination-once.md deleted file mode 100644 index 04a80bb59..000000000 --- a/.changeset/rename-writes-destination-once.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge": patch ---- - -Renaming a file no longer rewrites the destination when the move already placed the final bytes there. A managed rename moves the file and then writes the reconciled content; previously that second write was unconditional, so a rename that did not change the file's content still wrote the destination twice. The rename spine now skips the rewrite when the reconciled content already matches what is on disk, so a no-content-change rename writes the destination exactly once. Renames that rewrite wiki-link references still write the destination twice — the move places the old bytes, then the link rewrite overwrites them — because that second write is doing real work. diff --git a/.changeset/source-find-scroll.md b/.changeset/source-find-scroll.md deleted file mode 100644 index 85b667173..000000000 --- a/.changeset/source-find-scroll.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge-app": patch ---- - -Fix: in the Markdown source editor, Find (Cmd/Ctrl+F) now scrolls an off-screen match into view. Previously, searching for text below the fold selected the match but left the viewport unchanged, so the result stayed hidden. In full-page source mode the editor renders at content height and the page scroller is an ancestor element, where CodeMirror's default "scroll to match" (nearest) is a no-op; the source editor now forces a top-aligned scroll so found matches land just below the toolbar. diff --git a/.changeset/terminal-dock-default-height.md b/.changeset/terminal-dock-default-height.md deleted file mode 100644 index 9bdbc46fd..000000000 --- a/.changeset/terminal-dock-default-height.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge-app": patch ---- - -The integrated terminal now opens at about one third of the window height on first use, instead of a fixed 240px that was often too short to read a command's output without dragging the divider. The default is computed as a fraction of the window height (so it scales with window size) and still respects the existing 120px floor and 50vh ceiling. A height you set by dragging is remembered as before. diff --git a/.changeset/terminal-launch-prompt-load-read-stop.md b/.changeset/terminal-launch-prompt-load-read-stop.md deleted file mode 100644 index 48e7de269..000000000 --- a/.changeset/terminal-launch-prompt-load-read-stop.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@inkeep/open-knowledge-core": patch -"@inkeep/open-knowledge-app": patch ---- - -Tighten the docked-terminal launch prompt. Opening a file, folder, or project in the desktop terminal ("Open in terminal" / file-tree + empty-space context menus) now hands the agent a minimal directive: it states the agent is running in the Open Knowledge desktop app terminal, loads the OK runtime contract, reads the open file via the OK MCP server when one is focused, then stops — instead of the previous open-ended "Let's work on X" invitation. A bare launch that isn't on a focused file (a folder right-click, empty-space, or project) deliberately reduces to "state surface, load OK, then stop" — the prior folder-scoped "Let's work on the `folder`" directive is intentionally dropped in favor of that minimalism. Launches that carry explicit user intent (a typed "Open with AI" instruction, or the empty-state "Create with Claude CLI" brief) are unchanged — they keep threading that intent through. The web deep-link handoff is unaffected. diff --git a/.changeset/terminal-tab-rename.md b/.changeset/terminal-tab-rename.md deleted file mode 100644 index fc48b2c76..000000000 --- a/.changeset/terminal-tab-rename.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge": patch ---- - -Terminal tabs now show the title the running program sets. Programs name the terminal through the standard `OSC 0` / `OSC 2` escape sequences (`ESC ] 0 ; BEL`) — shells via `PROMPT_COMMAND`, `vim`, and the `claude` TUI all do this — and the docked terminal now picks that up and uses it as the tab label, the same way other terminals do. Each tab falls back to its positional `Terminal N` default until its program sets a title, reverts to that default if the program clears the title (e.g. on exit), and updates live as the title changes. This makes a strip of several shells (a few for a monorepo, a few Claude Code instances) navigable at a glance. Desktop only. diff --git a/.changeset/wiki-link-mention-ranking.md b/.changeset/wiki-link-mention-ranking.md deleted file mode 100644 index a4f37ae8e..000000000 --- a/.changeset/wiki-link-mention-ranking.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@inkeep/open-knowledge-app": patch ---- - -Improve `[[` wiki-link ("@mention") autocomplete ranking to surface the most relevant link targets first. The page you're editing and its link-graph neighbors (incoming and outgoing links) are now boosted, so opening the picker leads with the pages you're most likely to link to; docs under skill/tooling folders (`.agents`, `.claude`, `.cursor`) are deprioritized as knowledge-base noise (deprioritized, not hidden — a skill still appears when it's the best match). Both the WYSIWYG and the source-mode `[[` pickers re-rank in lockstep. Ranking for the command palette, full-text, and MCP search is unchanged. diff --git a/bun.lock b/bun.lock index 693905d70..bca615639 100644 --- a/bun.lock +++ b/bun.lock @@ -55,7 +55,7 @@ }, "packages/app": { "name": "@inkeep/open-knowledge-app", - "version": "0.18.0", + "version": "0.19.0", "dependencies": { "@codemirror/autocomplete": "^6.20.1", "@codemirror/commands": "^6.10.3", @@ -199,7 +199,7 @@ }, "packages/cli": { "name": "@inkeep/open-knowledge", - "version": "0.18.0", + "version": "0.19.0", "bin": { "open-knowledge": "dist/cli.mjs", "ok": "dist/cli.mjs", @@ -241,7 +241,7 @@ }, "packages/core": { "name": "@inkeep/open-knowledge-core", - "version": "0.18.0", + "version": "0.19.0", "dependencies": { "@handlewithcare/remark-prosemirror": "0.1.5", "@opentelemetry/api": "^1.9.0", @@ -317,7 +317,7 @@ }, "packages/desktop": { "name": "@inkeep/open-knowledge-desktop", - "version": "0.18.0", + "version": "0.19.0", "dependencies": { "@inkeep/open-knowledge": "workspace:*", "@inkeep/open-knowledge-core": "workspace:*", @@ -351,7 +351,7 @@ }, "packages/server": { "name": "@inkeep/open-knowledge-server", - "version": "0.18.0", + "version": "0.19.0", "dependencies": { "@hocuspocus/server": "4.0.0-rc.1", "@inkeep/open-knowledge-core": "workspace:*", diff --git a/packages/app/package.json b/packages/app/package.json index 688e9540b..bb4e988e7 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@inkeep/open-knowledge-app", - "version": "0.18.0", + "version": "0.19.0", "license": "GPL-3.0-or-later", "private": true, "type": "module", diff --git a/packages/cli/package.json b/packages/cli/package.json index 2881a0a97..683c84a47 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@inkeep/open-knowledge", - "version": "0.18.0", + "version": "0.19.0", "license": "GPL-3.0-or-later", "private": false, "type": "module", diff --git a/packages/core/package.json b/packages/core/package.json index 820132ef6..601469543 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@inkeep/open-knowledge-core", - "version": "0.18.0", + "version": "0.19.0", "license": "GPL-3.0-or-later", "private": true, "type": "module", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 895f880dd..e0fa0e0d8 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@inkeep/open-knowledge-desktop", "productName": "Open Knowledge", - "version": "0.18.0", + "version": "0.19.0", "license": "GPL-3.0-or-later", "private": true, "type": "module", diff --git a/packages/server/assets/skills/discovery/SKILL.md b/packages/server/assets/skills/discovery/SKILL.md index ec4ade17d..267b94d83 100644 --- a/packages/server/assets/skills/discovery/SKILL.md +++ b/packages/server/assets/skills/discovery/SKILL.md @@ -3,7 +3,7 @@ name: open-knowledge-discovery description: "Read when the user asks what Open Knowledge is, wants to install it on a repository, wants to share an Open Knowledge project with collaborators, or asks how `ok init` / `ok install-skill` / OK Desktop set up a project. Do NOT load to perform Open Knowledge reads/writes — the runtime guidance for editing markdown inside an initialized OK project ships as a separate project-local skill at `.claude/skills/open-knowledge/` whenever `ok init` runs. If the user appears to be editing markdown inside a `.ok/` project and this is the only OK skill loaded, advise them to re-run `ok init` to install the project-local skill." compatibility: "Any agent host — no MCP server required. Pure discovery + install guidance." metadata: - version: "0.18.0" + version: "0.19.0" author: "Inkeep" repository: "https://github.com/inkeep/open-knowledge" --- diff --git a/packages/server/assets/skills/project/SKILL.md b/packages/server/assets/skills/project/SKILL.md index 0cbb31949..b0d5b9fe9 100644 --- a/packages/server/assets/skills/project/SKILL.md +++ b/packages/server/assets/skills/project/SKILL.md @@ -3,7 +3,7 @@ name: open-knowledge description: "MUST invoke before reading or editing any `.md` / `.mdx` file, and before any `mcp__open-knowledge__*` tool call (`exec`, `search`, `write`, `edit`, and the rest). This skill is installed into the repository by `ok init`, so its presence alone means this is an Open Knowledge project — its runtime contract governs every markdown file here, with no need to probe for a `.ok/` directory. Authoritative agent-runtime contract for working inside this Open Knowledge project." compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server + code execution." metadata: - version: "0.18.0" + version: "0.19.0" author: "Inkeep" repository: "https://github.com/inkeep/open-knowledge" --- diff --git a/packages/server/package.json b/packages/server/package.json index 63851e60c..672034953 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@inkeep/open-knowledge-server", - "version": "0.18.0", + "version": "0.19.0", "license": "GPL-3.0-or-later", "private": true, "type": "module",