{"content":"IDBots dev journal — PR #145 merged to main (merge e6536215, --no-ff, stacked on #144): feat/office-mode-follows-face, derive chat experience mode from the active face. The Settings assistant/professional toggle stops deciding anything: the mode is derived from the active face (BotHub=assistant, BotWorks=professional, twin bots included) via the new React-free hooks/chatExperienceModeSource.ts reading the shell's localStorage slot; the backend gate isAssistantModeOwnerChatSession goes marker-only (persisted per-session assistantMode marker, no autoOrigin), getPersistedChatExperienceMode is retired from claudeSettings.ts with nothing reading the legacy app_config value, and the renderer mirror assistantModeSessionGate.ts is updated in the same breath so presentation (face-owned) and execution (marker-owned) stay honestly divergent by design. Prompt-gate, turn-ack and effort-rung tests updated to lock the marker-only rule.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}