0d3bbf4272
Three gaps left by T58's initial test coverage: * test_key_quote_truncation_at_200_chars — exercises the 200-char hard slice in _build_key_quotes_suffix so any future change to the truncation strategy (ellipsis, word boundary, etc) trips the test. * test_thread_detection_update_candidate_emits_thread_updated — pins the ``update`` action emission shape (thread_id, summary, last_referenced_scene_id). * test_thread_detection_close_candidate_emits_thread_closed — pins the ``close`` action emission shape (thread_id, closed_at). No production change; pure coverage add.