v0.4.0 — Cowork delivers deep research end-to-end
Headline: Pairs with kinclaw v1.12.0 to make the deep-research workflow actually usable from Cowork tab. First successful end-to-end turn on 2026-05-06 produced a 241-line markdown report on 因信称义 with 11 working citations including 2 from local Guyon + Teresa-of-Avila corpora.
Highlights
Detached spawn UI
spawn_done SSE event handler renders the child agent's report as a "🔬 <soul> (job xxx) finished in Ns" assistant bubble inline in the chat surface. No re-prompt needed.
Source-of-truth soul handling
Supervisor priority flipped: dev repo's ~/Documents/Workspace/kinclaw/souls/ wins over ~/.localkin/souls/. Pairs with kinclaw 1.12's install.sh change which actively rm -rfs the legacy family-dir copy. Edit a soul, make kill && make run, effect is live.
KINCLAW_SOUL_DIRS + SEARXNG_ENDPOINT env injection
KinClawSupervisor now sets both env vars when spawning the kinclaw helper subprocess so .app-launched helpers see what shell-launched helpers see. SearXNG endpoint reads from Settings UI (@AppStorage kinclaw.backend.searxng) → process env override → hardcoded localhost:8080 default.
"New session" really means new
startNewSession() now POSTs /api/session/reset to kinclaw in Cowork mode. Previously only cleared client-side UI, server kept the prior turn's tape, mid-task tool-call loops bled into "你好".
TodoChecklistView decode fix
TodoItem.activeForm is now Optional with computed-property fallback to content. Pairs with kinclaw 1.12's optional-activeForm change. Without this Swift fix, Chinese todos (no continuous-tense form) degraded to generic blue tool-call pills.
Pairs with
- kinclaw v1.12.0 — detached spawn, session reset endpoint, SearXNG, soul cleanup
See CHANGELOG.md for the full breakdown.