Skip to content

v0.39.5

@tim-inkeep tim-inkeep tagged this 23 Jul 20:34
* fix(ok): reconcile must not delete symlinks to skills it doesn't own

The boot-time skill reconcile removed any editor-dir symlink whose name
had no .ok/skills source, without checking whether the link resolved.
Repos that check in editor-dir links to their own skill store (like this
monorepo's public/open-knowledge symlink farm) lost every link on each
server boot, independent of the managed-skills opt-in. Links resolving
outside .ok/skills are now foreign: never removed, never re-pointed.
Dangling links and links into .ok/skills stay reconcile-managed.

* test(ok): tolerate strip-only stripTypeScriptTypes on Node 26

Node 26 rejects mode 'transform' with ERR_INVALID_ARG_VALUE, which made
the Bun.Transpiler facade throw on every call and broke pre-push on
machines with Homebrew node 26. Fall back to 'strip': annotations still
erase and invalid syntax still throws, which is all the one real caller
(pi-extension source validation) relies on. Node 24/CI behavior is
unchanged; the facade test asserts enum lowering only where transform
mode exists.

* chore(ok): log unreadable symlinks in the foreign-link gate

Review suggestion: the bare catch silently routed an unreadable link to
the heal/orphan path, which may delete it. A warn ties that outcome to
its cause, matching the module's other failure logs.

GitOrigin-RevId: 708daa5cff7d8554fc124c0dd1fe615fe9db3acd
Assets 2
Loading