{"content":"test: align stale suite fixtures with the current component contracts (IDBots main, commit 72d2815c)\n\nFull-sweep fixes, part 3 (test-only; all verified green per suite before commit):\n\n1. workspaceRailStatic: the surface session-name item-4 contract counted the literal 'min-w-0 flex-1' x3; the enlarge-and-center Studio header order (18ee742a) reworked the lane to h-6 w-full min-w-0 flex-none with text-center on the two interactive mounts. Pins updated to the new geometry, invariant kept (all three mounts share the lane).\n\n2. coworkStreamDeltaProtocol / FlushCoalescing / GapHeal: the mock bridge lacked onStreamStageInteraction, so setupStreamListeners threw 'is not a function' and 19 streaming tests died with it. Stub added, mirroring preload's listener.\n\n3. emojiPickerComposer: the bot-browser Twemoji pin matched one historic single-line JSX literal; the panel's props grew (resolveLocalFilePath/onOpenLocalFile) and wrapped multi-line. Now pins the contract (exactly two MarkdownContent sites, each passing emojiImages).\n\n4. coworkDshIntegration: seeded the session record with assistantMode — bad5dfe3 retired the sourceChannel fallback in isAssistantModeOwnerChatSession, so the fixture session no longer qualified and the kernel got unknown tool owner_update.\n\n5. scripts/test_cognitive_phase2: fixture group_chat_messages lacked sender_global_metaid (real schema has it since the identity work) — tick failed with 'no such column'.\n\n6. scripts/test_cognitive_hook: passed the retired getSkillsPromptForIds hook; the orchestrator only honors getChatSkillsRoutingPrompt now, so the cowork skill-turn path never engaged. Fixture provides the routing hook.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}