Releases: PolderLabs/openkan
Release list
v0.7.0 — unified task storage refactor
Full Changelog: v0.6.3...v0.7.0
v0.6.1 — atomic lock, project registry cleanup, fixture-smell detector
v0.6.1 — 2026-09-08
Added
ok project clean [--apply|--all|--dry-run]subcommand to prune stale or non-active entries from~/.config/openkan/projects.json(XDG-aware).
Changed
XDG_CONFIG_HOMEis honored when resolving the registry path so tests cannot pollute the user's global project list.kanban/server.ts:startOrAttachuses an atomic pidfile write (<pid>:<port>:<parent>) as the single-instance lock — the legacy lockfile+pidfile pair is gone.ok serve --mode=backgroundpreflights the pidfile before spawning the detached child so the second invocation fails fast (or takes over with--force) instead of silently spawning a child that collides with the live server.
Fixed
--forcenow reliably takes over a live server: the parent CLI SIGTERMs the existing PID, waits up to 3s, then SIGKILLs, before spawning its own detached child.- Test hygiene in
tests/serve-background-keepalive.test.mts: the--project=${tmpdir}flag is removed (the cwd already scopes the registry), and every spawn setsXDG_CONFIG_HOME=${tmpdir}so integration tests cannot leak into the user's~/.config/openkan/. - Process-leak cleanup: detached children and orphan CLI processes are SIGKILLed on
SIGINT/SIGTERM/beforeExitin bothtests/serve-background-keepalive.test.mtsandtests/ok-cli-task-reconcile.test.mts. Newtests/server-lockfile.test.mtscovers the atomic pidfile lock,--forcetakeover, stale-pidfile reclamation, and the<pid>:<port>:<parent>background-mode pidfile format.
Agent discipline
The OpenKan skill gains a 7-rule Agent discipline section (claim → heartbeat → update → complete-or-cancel; never create fixture-shaped tasks; tests must never write to the user's .ok/; sub-agents inherit the parent's discipline). A new tests/fixture-smell-detector.test.mts reads .ok/tasks/<id>.json first (canonical) so cancelled tasks are not flagged by their stale MDX mirror.
Install
```sh
npm install -g @polderlabs/openkan@0.6.1
ok version
```
Full changelog: https://github.com/PolderLabsVOF/openkan/blob/v0.6.1/CHANGELOG.md
v0.6.0 — board-sync, daemon-detach, tray diagnostics, chat UI cleanup
Highlights
Single-store / dual-API board sync
ok task add now POSTs to the local dashboard with the new tsk-* id as clientId so the task appears on the board at http://127.0.0.1:7777/ immediately. When the dashboard is offline, ok task add falls back to writing .ok/board.json directly; the boot-time reconciler promotes any pending offline entries onto the board on the next server start, idempotent by clientId. apiCreateTask accepts clientId and refuses to create duplicates when a board task already carries that id (new optional offlineMirrorId?: string field). ok task claim, ok task heartbeat, and ok task complete now PATCH the matching board task, not just the offline cache, so agent leases are visible to operators on the dashboard.
Daemon-detach fix
ok serve --mode=background (and ok start --mode=background) no longer leaves the CLI attached to the controlling terminal. The v0.5.1 fix only unref'd stdio, which kept the HTTP listener's event-loop handle alive and the terminal never returned. v0.6.0 spawns a detached child running --mode=foreground (which binds the port), waits for HTTP to respond, writes pid:port to the pidfile, prints the startup message, and exits 0. The detached child owns the HTTP listener; ok stop SIGTERMs the child PID. On Windows, windowsHide: true suppresses the detached child's console window.
Tray diagnostics
bin/tray.ts now captures the underlying error from every failure mode (node-systray import failure, constructor failure, early-exit failure) and surfaces it verbatim instead of collapsing to a generic "libappindicator missing on Linux" message. The fallback reporter in ok serve / ok start prints a platform-aware install hint: apt install libappindicator3-1 on Debian/Ubuntu, dnf install libappindicator-gtk3 on Fedora, a macOS Go-binary check on Darwin, and a reinstall hint when the bundled bin/assets/tray/ icons are missing. 16 test cases cover every failure mode end-to-end.
Chat top-bar cleanup
Chat top bar trimmed to a single 44px row: conversation title and a keyboard-accessible overflow menu (⋯). Project, Files, Plugins, Chat sessions, and Get desktop app live behind the menu (each wired to the existing openTab() routing). The legacy Project/Files/Plugins tab row is hidden via CSS rather than deleted so the overflow menu continues to work. No new npm dependencies. Keyboard flow: Tab reaches overflow trigger (aria-haspopup=true), Enter/Space opens, Tab/Shift+Tab cycles items, Escape returns focus.
Other changes
ok board delete <id>— new subcommand that callsDELETE /api/tasks/<id>. Replaces the previous need to issue rawDELETEHTTP calls when an operator needed to clean up an accidental duplicate.- SessionStart hint now reads: "OpenKan ready. Create work with
ok task add— visible on the board at the dashboard URL."
Verification
npm run typecheckclean.npm run check(sanity): 0 errors, 0 warnings.tests/tray-error-reporting.test.mts: 16/16 pass.tests/serve-background-keepalive.test.mts: 2/2 pass.tests/chat-tabs-row.test.mts: 8/8 pass.tests/ok-cli-task-reconcile.test.mts: server-up / server-down / reconciler idempotency / duplicate-POST / move coverage.- Pre-existing
tests/watcher.test.mtstiming flakes (~13 cases) and two outdated regex expectations intests/serve-cli.test.mjsare unchanged from v0.5.1 baseline; tracked separately.
Full diff: v0.5.1...v0.6.0
v0.5.4-beta.1
Automated beta release of @polderlabs/openkan@0.5.4-beta.1.
Commit: 105aec6
What's Changed
- fix(kanban): harden atomic write and session archive against Windows EPERM by @CertifiedVibeCoder in #3
- fix(kanban): recover from structured-but-broken board.json by @CertifiedVibeCoder in #5
Full Changelog: v0.5.2-beta.1...v0.5.4-beta.1
v0.5.3
Automated stable release of @polderlabs/openkan@0.5.3.
Commit: 2feeddd
What's Changed
- fix(kanban): harden atomic write and session archive against Windows EPERM by @CertifiedVibeCoder in #3
- chore(release): graduate beta to main by @CertifiedVibeCoder in #4
Full Changelog: v0.5.2...v0.5.3
v0.5.2
Automated stable release of @polderlabs/openkan@0.5.2.
Commit: 83a023c
What's Changed
- fix(cli): run ok and repair three Windows test/installer regressions by @CertifiedVibeCoder in #2
New Contributors
- @CertifiedVibeCoder made their first contribution in #2
Full Changelog: v0.5.1...v0.5.2
v0.5.2-beta.1
Automated beta release of @polderlabs/openkan@0.5.2-beta.1.
Commit: bb98025
What's Changed
- fix(cli): run ok and repair three Windows test/installer regressions by @CertifiedVibeCoder in #2
New Contributors
- @CertifiedVibeCoder made their first contribution in #2
Full Changelog: v0.5.1...v0.5.2-beta.1
v0.5.1
Automated stable release of @polderlabs/openkan@0.5.1.
Commit: 92e5ba0
Full Changelog: v0.5.0...v0.5.1
v0.5.0
Automated stable release of @polderlabs/openkan@0.5.0.
Commit: 2a74de0
Full Changelog: v0.4.8...v0.5.0
v0.4.9
Automated stable release of @polderlabs/openkan@0.4.9.
Commit: 11006b1
Full Changelog: v0.4.6...v0.4.9