Skip to content

v0.22.0

Choose a tag to compare

@inkeep-internal-ci inkeep-internal-ci released this 30 Jun 22:43
9889e6f

0.22.0

Stable promotion of beta v0.22.0-beta.4.

Aggregated changes since previous stable:

0.22.0-beta.0

Minor Changes

  • Add an in-app product-updates subscription. The Resources menu is regrouped into Resources, Community, and Product updates, and a new Subscribe action opens a reusable email form (shadcn + react-hook-form) that registers the address through the /api/subscribe endpoint. The GitHub row now shows the repo's live star count.

0.22.0-beta.1

Patch Changes

  • Stop showing auto-update notices in unpackaged dev builds. A dev desktop app never downloads or installs updates, so the boot-time "Update to X didn't install" banner, the staged-update relaunch banner, and the "what's new" toast were all noise driven by stale local state. They're now gated on the same signal that gates update checks (app.isPackaged), with the OK_UPDATER_FORCE_DEV escape hatch preserved for the manual update smoke.
    • @inkeep/open-knowledge@0.21.1-beta.0
    • @inkeep/open-knowledge-core@0.21.1-beta.0
    • @inkeep/open-knowledge-server@0.21.1-beta.0

0.22.0-beta.2

Patch Changes

  • Paint the sidebar file tree incrementally as the directory listing streams in, instead of withholding the whole level until the walk finishes. The GET /api/documents NDJSON walk is now applied to the tree per network chunk (additively, so folders not yet streamed are never pruned mid-stream), and the loading skeleton clears on the first batch. The authoritative prune + optimistic-merge reconcile still runs once as a single splice when the stream completes, so the final tree is unchanged. On a knowledge base with a large top-level directory the first rows appear sooner rather than after the entire level is enumerated.

  • Desktop: launching an agent CLI from the docked terminal ("Open in Claude/Codex/Cursor/OpenCode") no longer pollutes your shell history. The launch command used to be typed into an interactive shell, so every launch — prompt and all — was recorded in ~/.zsh_history, cluttering /Ctrl-R and writing document content in plaintext outside .ok/. The launch is now baked into the tab's shell spawn ($SHELL -l -i -c '<cmd>; exec $SHELL -l -i'): the command runs without going through the line editor (so it is never recorded), PATH is unchanged (the same login-interactive shell is used), and the tab drops into a fresh interactive shell when the agent exits — so your own later commands still record normally. Applies to all four CLIs.

0.22.0-beta.3

Patch Changes

  • Fix the Properties panel rejecting Obsidian-style empty tags: / aliases: frontmatter. Files that use Obsidian's default "no tags" shape (an empty tags: list whose only item is a blank - , or a bare tags: with no value) parse to YAML null, which the read schema previously rejected for the whole frontmatter block — so the panel showed nothing (or an error banner) and refused every edit, even to the file's other valid properties. The read path now coerces these empty shapes to empty values (tags:\n- reads as an empty list, a bare tags: as empty text), so the panel reads and edits these files normally. Files are not rewritten on disk until you actually edit a property.

0.22.0-beta.4

Patch Changes

  • 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.