Patch Changes
-
When the server refuses a document's realtime connection, it now writes a timestamped line to the diagnostic log saying why. Previously those refusals went only to an untimestamped stderr file, so a bug report from a workspace where every document had gone unreachable carried no record of the refusal that caused it and the cause could only be guessed at. The new line names the reason plus the claimed and current value that disagreed, which is what turns that guess into an answer. Nothing about which connections are accepted or refused changed.
-
Fix documents that never load on a workspace whose git branch is not
main.The server accepted WebSocket connections before it had read HEAD, so during the
boot window it compared every client's branch claim against amainplaceholder
and rejected the connection as a branch mismatch. The rejection recycled the
client's providers, which re-armed the same load budget against a server still in
the same window, and every document in the workspace timed out. The branch check
now waits for the server to resolve its real branch before it decides anything,
and only for that — it does not wait for the rest of startup, so opening a large
workspace is no slower than before. If the branch cannot be established quickly
the connection is admitted rather than judged against a guess. -
A crash you were never told about no longer stays that way. Previously a single unanswered crash prompt muted every later crash for the rest of the session — one report arrived from a window that had blinked and reloaded twice in 52 minutes with no explanation, because the second crash was silenced by a prompt from the first that nobody had answered. An unanswered invitation now only mutes crashes that belong to the same incident; a later, independent crash supersedes it and asks you about the crash that just happened. The handover is logged, so a silence is legible after the fact instead of looking like nothing occurred.
Reporting a bug yourself now offers the crash dump the app is already holding. The opt-in used to appear only when a crash prompt opened the dialog for you, so the report filed moments after an unprompted crash — the one most likely to carry the answer — shipped without the dump sitting on disk the whole time. The row now appears whenever there is a dump to attach, left unchecked so the unredactable memory rides along only if you choose it.
-
OpenKnowledge no longer asks you to report crashes that never happened. Chromium writes a minidump whenever its GPU watchdog thinks a thread has stalled, even when the process recovers and keeps running, and the app had no way to tell that snapshot apart from a real crash. The result was a prompt at the next launch saying the previous session ended uncleanly, for a session that quit normally, recurring at every launch until you filed a report to make it stop. The app now reads the dump's own exception record and recognizes a captured-but-never-faulted snapshot for what it is.
The same fix closes a sharper problem. When a report dialog offers to attach a crash dump, it was resolving the newest dump on disk without checking which crash was being reported, so a watchdog snapshot written after a genuine crash could be attached to a report about that earlier crash, shipping the wrong process's memory under a notice describing a different failure. Dump resolution now steps over snapshots and reaches the dump that actually belongs to the crash being reported.
Real crashes are unaffected, deliberately so. The check keys on a value a real crash cannot carry and compares it exactly, never as a range, because the neighbouring code for an Objective-C exception differs by a single digit and marks a genuine fatal crash. Anything the app cannot read with confidence, including a dump truncated by the very fault that produced it, still prompts and still offers its dump. The behavior currently ships on macOS; Windows and Linux keep exactly today's behavior until their equivalent marker is measured against a real dump on those platforms.
Downloads
| Platform | Architecture | Download |
|---|---|---|
| macOS | Apple Silicon | OpenKnowledge-arm64.dmg |
| Windows | x64 | OpenKnowledge-Setup-x64.exe |
| Windows | arm64 | OpenKnowledge-Setup-arm64.exe |
| Debian / Ubuntu | x64 | OpenKnowledge-amd64.deb |
| Debian / Ubuntu | arm64 | OpenKnowledge-arm64.deb |
| Fedora / RHEL | x64 | OpenKnowledge-x86_64.rpm |
| Fedora / RHEL | arm64 | OpenKnowledge-aarch64.rpm |