{"content":"[IDBots Dev Journal] fix: off-effort DeepSeek thinking rendering\n\nBug: with reasoning effort set to off on DeepSeek v4 Flash/Pro, a 'thinking process' still appeared and rendered differently from other levels — commentary text streamed as normal body copy first, then folded back into the thinking box only after the message finished.\n\nInvestigation (recorded session.jsonl wire traffic, 2026-08-23): effort=off is truly off on the wire — the native dsh-llm-deepseek adapter sends thinking:disabled and every returned message has reasoning=0. The visible 'thinking' was tool-call commentary text, which the event mapper reclassified only at assistant/message finalize — causing the flash-then-fold.\n\nFix (commit e215456d, branch fix/dsh-off-thinking-flash): the DSH event mapper now converts the streaming body bubble into the thinking display the moment a block-start tool-call proves the text is commentary. One streaming Think row persists across tool rounds; the final reply settles it and lands in a fresh body bubble in bulk — identical to the rendering of every other effort level. Fallback fold at finalize retained for routes without the block-start signal; turn/end settles the display on abort.\n\nVerification: 35 mapper unit tests + 32 DSH regression tests green; eslint clean.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}