Skip to content

fix(interfaces): always-light public surfaces (chat, resume, file shares, unsubscribe, invite) with emcn components#5336

Merged
TheodoreSpeaks merged 4 commits into
stagingfrom
fix/deploy-chat-ui-light
Jul 1, 2026
Merged

fix(interfaces): always-light public surfaces (chat, resume, file shares, unsubscribe, invite) with emcn components#5336
TheodoreSpeaks merged 4 commits into
stagingfrom
fix/deploy-chat-ui-light

Conversation

@TheodoreSpeaks

@TheodoreSpeaks TheodoreSpeaks commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

No API endpoints changed — this is UI-only, across the public page routes:

/chat/:identifier (deployed chat)

  • Rendered dark for everyone: the overlay hard-coded a dark class and used the retired static-dark --landing-* tokens, overriding the ThemeProvider's forced-light. Now pins light + platform tokens — never follows the visitor theme
  • Header uses the platform inline SimWordmark (was the white sim-landing.svg asset)
  • Hand-rolled composer buttons, scroll-to-bottom, copy, error-state CTA → emcn Button; markdown renderer aligned to platform Chat conventions (token-based, light code blocks)

/resume/:workflowId/:executionId (human-in-the-loop resume)

  • Dropped the redundant landing marketing Navbar (the interfaces shell already provides the light logo chrome — nav was doubled)
  • All inline style={{}} converted to Tailwind + platform tokens; legacy @/components/ui Select → ChipSelect; form controls → ChipInput/ChipTextarea with proper error wiring

/f/:token (public file shares)

  • Auth gates (password / email OTP / SSO) were the old dark landing chrome (hard dark class, dark AuthBackground, marketing Navbar) — rebuilt on the light LogoShell + SupportFooter frame, same as the chat gates
  • File view forced light; theme-dependent double logo → SimWordmark

/unsubscribe + /invite/:id

  • Fixed invisible text: headings used --landing-text (#ececec) inside the light AuthShell — white-on-white. Swapped to platform tokens
  • Legacy white-on-white AUTH_SUBMIT_BTN CTAs → AuthSubmitButton (same emcn Chip as login/signup); secondary actions as bordered neutral chips

Cross-cutting

  • ThemeProvider forced-light list now includes /f/ and /unsubscribe
  • Chat SSO gate (ee/sso) CTAs migrated off the legacy class too
  • Deleted dead code: AuthBackground + auth-background-svg (zero consumers) and the AUTH_SUBMIT_BTN/AUTH_PRIMARY_CTA_BASE class strings

Type of Change

  • Bug fix

Testing

Verified in the browser against a local deployed chat, a real /f/:token share (view + password gate), /unsubscribe, and the resume page — all render light with readable text regardless of system theme. bun run lint:check, bun run type-check, bun run check:api-validation:strict, and the interfaces vitest suite pass. No --landing-* tokens or dark: variants remain on these surfaces.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Jul 1, 2026 11:04pm

Request Review

@cursor

cursor Bot commented Jul 1, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Visual and component-library refactors across chat, resume, and auth shells; resume submission logic is unchanged aside from equivalent form controls.

Overview
Deployed chat and voice overlays now force light and use platform tokens (--bg, --text-primary, --surface-*) instead of a hard-coded dark class and retired --landing-* variables, so they stay light even when the visitor’s theme differs.

Chat UI is aligned to the design system: composer and message actions use emcn Button variants, the header uses SimWordmark, and markdown/code blocks use token-based styling (dashed links, light surfaces) rather than gray/dark Tailwind pairs.

Paused execution (resume) drops the extra landing Navbar and inline styles in favor of layout inside the interfaces shell; form fields move to ChipInput / ChipSelect / ChipTextarea with validation error wiring on editable fields.

Auth-adjacent surfaces remove the decorative AuthBackground stack; public file gates use LogoShell, and password/OTP/SSO/invite/unsubscribe flows standardize on AuthSubmitButton (and secondary Chip where needed) instead of AUTH_SUBMIT_BTN class strings.

ThemeProvider extends forced-light routing to /f/ and /unsubscribe.

Reviewed by Cursor Bugbot for commit d579343. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a66f4f2. Configure here.

@greptile-apps

greptile-apps Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes a bug where the deployed chat overlay was hardcoded with a dark CSS class and --landing-* static-dark tokens, overriding the ThemeProvider's forced-light on /chat and /resume for all visitors. The fix pins the overlay to light and migrates every --landing-* token reference to platform tokens (--bg, --text-primary, --surface-*, etc.).

  • Chat/voice-interface/resume overlay fix: replaced dark class and --landing-* tokens with light class and platform tokens across chat.tsx, voice-interface.tsx, and all child components; also swaps the white sim-landing.svg wordmark for SimWordmark (inline SVG, var(--text-body) fill).
  • Auth surface cleanup: deletes the dark AuthBackground/AuthBackgroundSVG components, deprecates AUTH_SUBMIT_BTN/AUTH_PRIMARY_CTA_BASE class strings in favor of the canonical AuthSubmitButton Chip component, and updates all auth-adjacent pages (/f/, /invite, /unsubscribe, SSO) to use platform tokens through the existing LogoShell/AuthShell wrappers (both already pin light).
  • Resume page refactor: replaces legacy @/components/ui Select/Input/Textarea and the removed Navbar with emcn ChipSelect/ChipInput/ChipTextarea, and converts all inline style={{}} to Tailwind utility classes.

Confidence Score: 5/5

Safe to merge — the change corrects a real rendering bug with no functional regressions in the changed paths.

The hard-coded dark class removal is a direct, well-scoped fix whose token migration is consistent across all 26 files. The deleted AuthBackground/AUTH_SUBMIT_BTN/AUTH_PRIMARY_CTA_BASE artifacts have been replaced by canonical AuthShell/LogoShell/AuthSubmitButton components that already pin light at the component level. No API contracts, data models, or server routes were modified.

No files require special attention.

Important Files Changed

Filename Overview
apps/sim/app/(interfaces)/chat/[identifier]/chat.tsx Core bug fix: replaces the hard-coded dark class with light and migrates from --landing-bg/--landing-text to --bg/--text-primary.
apps/sim/app/(interfaces)/chat/components/input/input.tsx Replaces hand-rolled <button> elements with emcn Button (quiet/primary/ghost variants); migrates all --landing-* tokens to platform tokens.
apps/sim/app/(interfaces)/chat/components/message/components/markdown-renderer.tsx Migrates all Tailwind gray-palette and dark: variants to platform tokens; code blocks switch from dark-background to --surface-4/--surface-5.
apps/sim/app/(interfaces)/chat/components/voice-interface/voice-interface.tsx Fixes the dark overlay bug (same pattern as chat.tsx); swaps @/components/ui/button import for emcn Button; drops size prop in favour of p-0 class.
apps/sim/app/(interfaces)/resume/[workflowId]/[executionId]/resume-page-client.tsx Large refactor: drops legacy Select/Input/Textarea/Navbar; uses emcn ChipSelect/ChipInput/ChipTextarea; converts all inline style={} to Tailwind classes.
apps/sim/app/_shell/providers/theme-provider.tsx Adds /f/ and /unsubscribe to the forced-light-mode path list, belt-and-suspenders for pages whose shells already pin light at the component level.
apps/sim/app/f/[token]/public-file-auth-shell.tsx Replaces the dark AuthBackground+Navbar shell with LogoShell (which pins light and uses platform tokens); removes all --landing-* references.
apps/sim/app/(auth)/components/auth-background-svg.tsx Deleted: dark-only decorative SVG backgrounds that were only needed by the removed AuthBackground component.
apps/sim/app/(auth)/components/auth-button-classes.ts Removes AUTH_PRIMARY_CTA_BASE and AUTH_SUBMIT_BTN string constants (now replaced by the AuthSubmitButton component); keeps AUTH_TEXT_LINK.
apps/sim/app/invite/components/status-card.tsx Migrates from --landing-* tokens and AUTH_PRIMARY_CTA_BASE to platform tokens and AuthSubmitButton/Chip emcn components.
apps/sim/app/unsubscribe/unsubscribe.tsx Migrates all --landing-* token references to platform tokens; replaces AUTH_SUBMIT_BTN buttons with AuthSubmitButton and secondary actions with Chip.
apps/sim/app/(interfaces)/chat/components/header/header.tsx Swaps sim-landing.svg <Image> for inline SimWordmark SVG; migrates --landing-* tokens; removes unused primaryColor variable.

Reviews (4): Last reviewed commit: "fix(interfaces): light mode for file-sha..." | Re-trigger Greptile

Comment thread apps/sim/app/(interfaces)/chat/components/input/input.tsx
@TheodoreSpeaks

Copy link
Copy Markdown
Collaborator Author

@greptile review

@TheodoreSpeaks

Copy link
Copy Markdown
Collaborator Author

@greptile review

@TheodoreSpeaks

Copy link
Copy Markdown
Collaborator Author

@greptile review

@TheodoreSpeaks TheodoreSpeaks changed the title fix(interfaces): pin deployed chat + resume to light mode, emcn-only components fix(interfaces): always-light public surfaces (chat, resume, file shares, unsubscribe, invite) with emcn components Jul 1, 2026
@TheodoreSpeaks TheodoreSpeaks merged commit 62acc9c into staging Jul 1, 2026
18 checks passed
@waleedlatif1 waleedlatif1 deleted the fix/deploy-chat-ui-light branch July 2, 2026 05:51
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