1. Replace manual OpenAI response parsing with createThreadReactor —
workspace extraction now uses the same ReAct loop as extract/summarizer,
with a zod schema and structured tool call
2. Remove non-null assertion on llmProvider, replaced with explicit guard
3. Add structured logging (LogFn) to extraction — failures, non-absolute
paths, and successful extractions all logged with tag V3KM8QWP
4. export const run = wf is correct: createWorkflow returns WorkflowFn
directly, old bundle-entry had stale .run access + unused 3rd arg
小橘 <xiaoju@shazhou.work>
Replace 50ms setTimeout with waitUntilPredicate polling for first role
completion before issuing kill. Same pattern used by pause/resume test.
小橘 <xiaoju@shazhou.work>