Releases: inkeep/open-knowledge
Release list
v0.36.0-beta.1
Delta since previous beta (v0.36.0-beta.0) — 1 new changeset.
Patch Changes
- Link previews now load for content-heavy pages like GitHub and Wikipedia: the fetcher streams to the end of instead of rejecting once the page body exceeds the 512 KB cap.
v0.36.0-beta.0
Delta since previous beta (v0.35.1-beta.10) — 1 new changeset.
Minor Changes
-
Settings now tells you where a plugin's changes are stored and lets you search across the whole dialog.
Plugin panels carry a scope badge: markdownlint shows a "Project" badge (its rules are committed to config.yml and shared with your team) and Themes shows a "User" badge (personal to your device). Hover either badge for a one-line explanation of where the change is saved.
A search box is pinned at the top of the settings sidebar. Type to find any section, any Preferences/Theme setting, or any markdownlint rule by name, id, or alias, then jump straight to it: a section result switches panels, a setting result scrolls to and briefly highlights the field, and a markdownlint rule result opens the markdownlint panel already filtered to that rule. markdownlint rules only appear in search while the plugin is enabled. The search box stays put while the section list scrolls beneath it.
v0.35.1-beta.10
Delta since previous beta (v0.35.1-beta.9) — 1 new changeset.
Patch Changes
- Server-side diagnostics (file watcher, observer bridge, content filter, shadow repo, persistence, rename log, and the rest of the server package) now route through the structured pino logger instead of raw
console.*. Warnings and errors still print in theok startterminal, and every diagnostic now also lands in.ok/local/logs/server-current.jsonl— the file bug-report bundles collect — so watcher drop decisions, symlink-escape refusals, and bridge recovery paths are diagnosable from a bug report even when the server runs detached under the desktop app, where console output goes nowhere persistent.
v0.35.1-beta.9
Delta since previous beta (v0.35.1-beta.8) — 1 new changeset.
Patch Changes
- Opening a JSON markdownlint config file (
.markdownlint.json/.markdownlint.jsonc) now offers a toggle between a Source view and a Rules view. Source is the raw, read-only file (comments,extends, and formatting intact); Rules is the same searchable rule browser as Settings — flip rules on or off and edit their options, with changes written back to the file through the format-preserving writer (comments,extends, and trailing commas are preserved). Rule editing targets the project's root config, so a nested or not-yet-created config opens in Source with the Rules option disabled and an explanation. Your Source/Rules choice is remembered per user, separately from the markdown editor's own mode.
v0.35.1-beta.8
Delta since previous beta (v0.35.1-beta.7) — 1 new changeset.
Patch Changes
- Version-history recording is dramatically cheaper on large knowledge bases and slow (mounted/network) volumes. The background history snapshot now reuses a persistent git index so unchanged files are no longer re-read and re-hashed on every save cycle (up to ~11x faster tree builds on a 10k-file KB); switching git branches with many open documents batches its bookkeeping into a few git calls instead of four per document (a 100-document switch drops from ~15s to well under a second); and agent writes coalesce into the normal debounced history commit instead of forcing a full commit per write, while history reads still always reflect every completed write.
v0.35.1-beta.7
Delta since previous beta (v0.35.1-beta.6) — 2 new changesets.
Patch Changes
-
Fixed a bug where deleting a template left the app unclickable until reload. The template row's actions menu opened a modal confirmation dialog while itself being a modal menu, stacking two
pointer-events: nonebody locks; the post-delete refresh then unmounted the still-open dialog before Radix could unwind the lock, freezing every button (including "New" and "New template"). The menu is now non-modal, matching the file tree and project switcher. -
OK Desktop can now open a single markdown file without setting up a project. The single-file editing session that
ok <file>already provides is now reachable from the app itself: File → Open file… (⇧⌘O), the Cmd+K palette, and the Project Navigator, each opening a native.md/.mdxpicker. Loose files also open via Finder's Open With → OpenKnowledge. These flows open the file in a temporary session and never write a.okfolder into its directory, so previewing one file no longer risks turning its parent folder into a project. A picked file that already lives inside a project opens that project instead.
v0.35.1-beta.6
Delta since previous beta (v0.35.1-beta.5) — 4 new changesets.
Patch Changes
-
Bug-report bundles now capture why the server died and what the MCP server was doing. A fatal server crash (uncaught exception or unhandled rejection) writes a synchronous
last-server-crash.jsonrecord — timestamp, error name/message/stack, pid, uptime — under.ok/local/plus a final fatal line in the server log, both collected intook bug-reportandok diagnose bundleoutput; previously a hard crash lost the async log sink's tail and bundles could only say "server not running". The global MCP stdio server's[mcp]stderr diagnostics are now also mirrored to~/.ok/logs/mcp.<date>.log(pruned at each startup by a 7-day age window and an aggregate size cap), so bundles include the agent-ingress diagnostics that previously landed only in the MCP host's own log folder. -
The
execMCP tool's post-command mutation safety sweep is now scoped to the paths the command can actually touch (its own path operands), instead of statting up to 1000 files across the whole knowledge base twice on every call. Path-scoped commands likecat notes/a.mdorgrep -rn oauth articles/now sweep only those paths, making exec noticeably cheaper on large knowledge bases. When the sweep does cover the whole tree (barels,find, recursivegrepwith no directory) and the corpus exceeds the 1000-file scan cap, the response now carries an explicit warning that mutation detection was partial, instead of silently presenting a capped sweep as full coverage. -
The sidebar's page directory no longer storms the server during bulk agent writes. File-change pushes now coalesce into a single trailing refetch (~300 ms window) instead of refiring the full page-list and document-list walk on every push, so an agent writing many files per second no longer triggers ~10 full corpus refetches and index rebuilds per second. The initial load and manual refreshes stay immediate.
-
New operational metrics for cloud/server operators (all zero-overhead when telemetry is disabled): event-loop delay percentiles (
ok.server.event_loop.delay_ms), CPU utilization (ok.server.cpu.utilization), extended memory sections (external,array_buffers) onok.server.memory.usage_megabytes, a loaded-documents gauge (ok.server.docs.loaded), and write-spine queue depths (ok.persistence.queue.depth,ok.bridge.drain_backlog). Error responses now stamp their correlation UUID on the active trace span (ok.error.instance) so a client-reported error can be joined against its trace. The standardOTEL_TRACES_SAMPLER/OTEL_TRACES_SAMPLER_ARGsampling contract is now pinned by tests and documented, including its interaction with the local bug-bundle span sink.
v0.35.1-beta.5
Delta since previous beta (v0.35.1-beta.4) — 1 new changeset.
Patch Changes
- Diagnostics bundles now capture more of what matters for content-loss triage. The full bundle stages the shadow repo's recovery-checkpoint refs (
state/checkpoint-refs.txt— ref name, date, and content-free subject per checkpoint) and a newstate/agent-effects.jsonsnapshot of the per-document agent activity ring buffers, served by a new loopback-onlyGET /api/metrics/agent-effectsendpoint that summarizes agent writes as character counts (never raw text). Doc names in the new artifacts are anonymized by the existing--redactpass, which now also hashes the agent-presence bundle'scurrentDocpath so a redactedstate/agent-presence.jsonno longer leaks the document a person was editing. The web client's log forwarder also stops losing entries silently: drops from buffer overflow or failed uploads are counted and recorded as an explicitdroppedSinceLastFlushgap marker in the server log on the next delivered batch, and a failed recovery-checkpoint write now also emits a structured server-log line with doc and branch context.
v0.35.1-beta.4
Delta since previous beta (v0.35.1-beta.3) — 1 new changeset.
Patch Changes
- Add "Import as template" to the File Tree context menu. Right-click a markdown file to copy it into the folder's
.ok/templates/, with the option to keep the original or convert it (delete the source). Backed by a newPOST /api/template/importendpoint that carries over the source frontmatter.
v0.35.1-beta.3
Delta since previous beta (v0.35.1-beta.2) — 1 new changeset.
Patch Changes
- Added OpenClaw and Hermes as "Open with AI" terminal launch targets in OK Desktop, alongside the existing agent CLIs. OpenClaw opens its interactive TUI seeded with the composed prompt via
openclaw chat --message '<prompt>'. Hermes has no starting-prompt argument (its only prompt-carrying modes run once and exit), so OK launcheshermes chatand, once Hermes signals its input is ready, delivers the prompt as a bracketed-paste write — bracketed paste keeps a multi-line prompt intact and inert to the TUI's key handling, then submits it. The paste waits for Hermes' readiness signal (with a timeout fallback) rather than a fixed delay, so it lands cleanly on slow and fast boots alike. Both were already supported as MCP servers; this adds the one-click terminal handoff.