Skip to content

fix(web): the standalone page lockup announces S2Code - #439

Merged
shuv1337 merged 2 commits into
mainfrom
t3/s2code-branding-copy
Nov 15, 2026
Merged

shuv1337 merged 2 commits into
mainfrom
t3/s2code-branding-copy

Conversation

@shuv1337

@shuv1337 shuv1337 commented Nov 15, 2026 •

Copy link
Copy Markdown
Owner

Problem

Three user-visible strings still named the upstream product, while the visible mark and the mobile brand title already say S2Code:

  1. The shared StandalonePageHeader lockup (pairing, agent sign-in, CLI auth, hosted prompt link and error pages) is exposed to assistive tech as role="img" with aria-label="T3 Code".
  2. The transcript credits send_to_user messages to "T3 Code" (SentMessageTimelineRow), next to an assistant heading that says S2Code.
  3. The queued-run card says "Sent by T3 Code", next to a user-message footer that says "Sent by S2Code".

Fix

Copy only; no behavior, layout, theme or logo change.

File Before After
apps/web/src/components/ui/standalone-page.tsx aria-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.tsx Sent by T3 Code Sent by S2Code
apps/web/src/components/chat/QueuedRunsControl.browser.test.tsx asserted copy Sent by T3 Code asserted copy Sent by S2Code

Unchanged: 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’s apps/mobile/src/components/BrandMark.tsx already titles the brand S2Code and has no "T3 Code" logo label. The separate mobile queued-message attribution in apps/mobile/src/features/threads/ThreadQueueControl.tsx:102 still 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's MESSAGE_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.
  • Commit hooks (fmt, lint, knip:check) pass.
  • No new tests: copy/static markup only, per the repo test rules.
  • Primary lead verified the logo accessible name and successful pairing into the real chat shell using an isolated development home. See the verification comment; no live user state was used.

Model/harness: opencode-go/deepseek-v4.1-flash in T3 Code (OpenCode harness).

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.
@shuv1337

Copy link
Copy Markdown
Owner Author

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.

@shuv1337

Copy link
Copy Markdown
Owner Author

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.

@shuv1337
shuv1337 merged commit 31bb90a into main Nov 15, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant