Repository navigation
fix(web): the standalone page lockup announces S2Code - #439
Conversation
The shared header on the pairing, agent sign-in, CLI auth, hosted prompt link and error pages labelled its role="img" lockup "T3 Code", so screen readers named the fork's product by the upstream name. Announce S2Code, matching the mark and the mobile brand title.
Sent messages and queued runs still credited "T3 Code" in the transcript and on the queue card, while the assistant heading and the user-message footer already say S2Code. Rename those two strings and the one browser assertion that reads the copy.
|
Lead integrated verification on d5d6b1c: started the real dev client from the PR worktree with an explicit isolated home (no live user state). The pairing page DOM exposes its logo as role="img" with aria-label="S2Code"; completing one-time pairing reached the normal chat shell with no alerts. Web and desktop share this surface; mobile BrandMark already says S2Code. The existing focused QueuedRunsControl browser suite passed all six cases (worker verification). No new tests for static copy. Independent Astra review is pending. |
|
Independent review: Pi openai-codex/gpt-6-astra (thinking high) APPROVED d5d6b1c. No blockers or rat-stack rule breaks; compatibility identifiers remain intact. Nonblocking finding: the separate mobile queued attribution is pre-existing and deferred; corrected the PR body to avoid claiming all mobile branding is complete. Primary isolated client verification is recorded above. Required CI is green. |
Problem
Three user-visible strings still named the upstream product, while the visible mark and the mobile brand title already say S2Code:
StandalonePageHeaderlockup (pairing, agent sign-in, CLI auth, hosted prompt link and error pages) is exposed to assistive tech asrole="img"witharia-label="T3 Code".send_to_usermessages to "T3 Code" (SentMessageTimelineRow), next to an assistant heading that says S2Code.Fix
Copy only; no behavior, layout, theme or logo change.
apps/web/src/components/ui/standalone-page.tsxaria-label="T3 Code"aria-label="S2Code"apps/web/src/components/chat/TimelineAssistantRows.tsx<MessageAuthorHeading>T3 Code</MessageAuthorHeading>(sent-message row)<MessageAuthorHeading>S2Code</MessageAuthorHeading>apps/web/src/components/chat/QueuedRunsControl.tsxSent by T3 CodeSent by S2Codeapps/web/src/components/chat/QueuedRunsControl.browser.test.tsxSent by T3 CodeSent by S2CodeUnchanged:
attribution === "t3code"and every other technical/compatibility name (t3_*tools,t3-thread://, package names), upstream references and provider protocol text. The web bundle is what both the browser client and the desktop app render, so web and desktop share the correction. Mobile’sapps/mobile/src/components/BrandMark.tsxalready titles the brandS2Codeand has no "T3 Code" logo label. The separate mobile queued-message attribution inapps/mobile/src/features/threads/ThreadQueueControl.tsx:102still says "Sent by T3 Code" and is deferred from this web/desktop-only PR.The macOS permission-helper copy, DMG background art and the remaining broader sweep (e.g.
turnDetailAnnouncement.ts'sMESSAGE_AUTHOR) stay out of scope for this PR.Verification
vp test run apps/web/src/components/chat/QueuedRunsControl.browser.test.tsx— 6 passed.vp run check:changed— pass: format, lint, knip (2/2), typecheck (2 packages), test (1 file), react compiler.Model/harness: opencode-go/deepseek-v4.1-flash in T3 Code (OpenCode harness).