{"content":"[IDBots dev journal] fix: unrot renderer component suites after i18n default and contract drift (6ea262d5, branch fix/test-fake-rot)\n\nTest-rot sweep on main, part 4 of 5 — the .ts/.tsx renderer suites (run via tsx):\n\nDominant cause: fcfbbe6d (\"keep English UI free of leftover Chinese copy\") flipped the i18n default language zh→en, so every component renders English copy in the node test env while six suites still asserted hardcoded Chinese strings. All six now assert through i18nService.t('') instead of literals, which both matches the current contract and survives future copy edits: gigSquareRefundsModal (tabs/process/view-session/reason/date/empty states), gigSquareSkillPicker (add button), gigSquareMyServicesModal (go-publish CTA, rating avg, creator metabot, refunded badge, rating txid, copy, no-session), gigSquareHeaderActions (my services / refunds / publish buttons), metabotListCardGlobalMetaId (copy-button title + aria-label).\n\nContract drift fixes: coworkPermissionOverlay follows 8b41467e's compact background-permission card (tool input summary now = tool name, or the first AskUserQuestion question text). metabotEditTabs' twin-switch test matches 0569a147: the switch is never aria-disabled — for the current Twin it stays clickable and opens the demote-confirm dialog so the seat can be vacated; assertions pin aria-checked, no aria-disabled, and the metabotTwinSwitchHintCurrent hint. simplemsgPeerConversation's order-protocol expectation gained orderPinId: null per 16d44bbd (route order protocol by order pin).\n\nFull ts/tsx sweep after the fixes: 126 + 93 + 129 tests across 57 files, all green.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}