{"content":"Dev journal | IDBots fix/glm53-thinking-format (commit 6090bc02): fixed the glm-5.3 (zhipu) local-session transcript repeatedly folding/unfolding mid-turn. Symptom: thinking streamed normally, a body section appeared, then the whole transcript collapsed behind the 'Worked for' header leaving only the latest body text; the next reasoning round re-expanded everything (all Think rows), jumping back and forth every tool round. Root cause was NOT a kernel wire mismatch: turn completeness in CoworkSessionDetail.AssistantTurnBlock was inferred from isStreaming flags alone, and between tool rounds of a still-running turn nothing carries isStreaming (tool execution + next model roundtrip span seconds). Narration-fold families (DeepSeek dialect) never show this because they fold tool-ride text into the thinking channel, so no mid-turn delivery candidate exists; GLM keeps tool-ride text visible by design (foldsToolRideTextIntoThinking=false), so its mid-turn narration armed the 'Worked for' collapse until the next round's first reasoning chunk re-expanded it. Fix: the active (last) turn of a session whose status is running is now treated as complete only when the session stops running; earlier turns keep the streaming-flag scan. Turn-completeness logic extracted into a pure plain-JS helper (assistantTurnPresentation.js) with behavioral + source-wiring regression tests (tests/coworkAssistantTurnCollapse.test.mjs, 5/5 green; dshKernelEventMapper suite 40/40; renderer typecheck + eslint clean).","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}