Skip to content

Use founders@cmux.com as the contact address everywhere - #15219

Merged
lawrencecchen merged 3 commits into
mainfrom
feat-founders-cmux-email
Sep 29, 2026
Merged

lawrencecchen merged 3 commits into
mainfrom
feat-founders-cmux-email

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Replaces every founders@manaflow.com (and one founders@manaflow.ai pricing link) with founders@cmux.com: macOS app feedback composer and pricing screen, CLI help, profiling submit helper, website pages and footer, EULA, terms, privacy policy in every locale, company information, enterprise and support contact API recipients, the BSL license files, README contact lines, and tests.

founders@cmux.com is live: Google's MX accepts it at RCPT time and rejects a made-up address on the same domain, and a test message was accepted on 2026-09-28. Senders are unchanged (they come from env config), and feedback@manaflow.com is out of scope. The Cloud VM motd keeps the old address until the next devbox image bake, because editing it invalidates every checked-in image.

Verification: web typecheck passes; web tests for company-information, enterprise-contact-route, support-contact-route, support-localization, seo, client-messages: 146 pass, 0 fail; tests/test_start_cmux_profiling.sh passes.

Changelog

Changed: the cmux contact address is now founders@cmux.com.

🤖 Generated with Claude Code


Summary by cubic

Switches the contact address from founders@manaflow.com (and one founders@manaflow.ai pricing link) to founders@cmux.com across the app, CLI, profiling helper, website, legal pages, enterprise and support contact routes, BSL license files, READMEs, and tests.

The new address is live and verified; senders are unchanged since they come from env config, and feedback@manaflow.com is out of scope. The Cloud VM motd keeps the old address until the next devbox image bake, since editing it invalidates every checked-in image. Also fixes the macOS feedback note UI test to match the shipped English string; the test expected an "A human will read this!" prefix that was never in the catalog, so it failed on main too.

Written for commit 8d647db. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Updates
    • Contact links and email addresses across the app, website, documentation, and translations now use founders@cmux.com.
    • Support and feedback messages, enterprise inquiries, feature requests, and licensing contacts reflect the updated address.
    • Privacy policy, terms, and other legal contact information have also been updated.

Replaces founders@manaflow.com (and one founders@manaflow.ai link) in the
app, CLI, profiling helper, website, legal pages, API contact routes, VM
motd, license files, and tests. founders@cmux.com is a live Google
Workspace address on cmux.com.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@cursor

cursor Bot commented Sep 28, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@lawrencecchen
lawrencecchen deployed to cloud-vm-image-checks September 28, 2026 08:02 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: b04e144e-3106-4f9b-bfff-ca7f0a6b412a

📥 Commits

Reviewing files that changed from the base of the PR and between 92c7c90 and 8d647db.

📒 Files selected for processing (1)
  • cmuxUITests/SidebarHelpMenuUITests.swift

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 2 remain after this review.


📝 Walkthrough

Walkthrough

The contact address changed from founders@manaflow.com to founders@cmux.com across application feedback, profiling, website contacts, legal content, localized messages, documentation, and licensing notices.

Changes

Contact Address Update

Layer / File(s) Summary
Application feedback and profiling contacts
Packages/macOS/CmuxFeedback/..., Resources/Localizable.xcstrings, Resources/bin/submit-cmux-profile, Sources/App/MenuBarProfilingProfilePreview.swift, Sources/PricingPlansScreen.swift, CLI/cmux.swift, cmuxUITests/..., tests/test_start_cmux_profiling.sh
Application feedback messages, profiling destinations, and related test expectations now use founders@cmux.com.
Website contact destinations and messages
web/app/[locale]/(landing)/..., web/app/[locale]/components/site-footer.tsx, web/app/[locale]/pricing/page.tsx, web/app/[locale]/support/page.tsx, web/app/api/..., web/messages/*.json, web/tests/...
Website contact links, enterprise and support email recipients, localized contact messages, and related tests now use founders@cmux.com.
Legal pages and privacy policy localizations
web/app/[locale]/(legal)/..., web/app/[locale]/(legal)/privacy-policy/content/*.json
Legal-page contacts and privacy-policy contact addresses now use founders@cmux.com. The described privacy disclosures and retention terms remain unchanged.
Localized readmes and licensing notices
README*.md, LICENSE, web/LICENSE, cmux-tui/.../LICENSE, services/.../LICENSE, workers/.../LICENSE
Localized README contact links and licensing contact addresses now use founders@cmux.com.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: teamleaderleo

Merge Risk: ⚪ Minimal · up to 8d647

Application and website contact surfaces now use founders@cmux.com. The old address remains only in the devbox motd pending an image bake; no material merge-blocking risk is identified.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 8d647

The contact-channel change does not appear to add a new way to submit requests or change how the forms handle them. The remaining uncertainty is whether the new mailbox has the intended access and monitoring, and how requests sent to the older address will be handled during the transition.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The destination change affects information users submit through the public contact forms and requests they send to the published privacy address. Evidence of the new mailbox’s production access and handling is not available.

Trust Boundaries and Controls

  • observed — The inspected handlers retain schema validation, an email-deliverability check, and conditional firewall rate limiting before the outbound mail call. The recipient is a server-side constant rather than a submitted field.

Hardening Proposals

  • proposed — Before completing the cutover, confirm the new mailbox’s ownership, access, monitoring, and handling of privacy requests; maintain a monitored path for messages sent to the old VM-motd address until that image is replaced.

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
Cmux Full Internationalization ❌ Error The PR introduces several full-internationalization violations. FeedbackComposerBridge.swift:92,111 changes user-facing error text but returns English literals instead of `String(localized:defaultVa… Route the bridge and CLI user-facing text through localized APIs with stable keys. Add translated values for the three changed keys in Resources/Localizable.xcstrings for bs, da, it, km, nb, pl, pt-BR, ru, th, and tr. …
Docstring Coverage ⚠️ Warning Docstring coverage is 9.09% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 11 functions across 22 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (23 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the primary change: replacing the contact address with founders@cmux.com across the project.
Description check ✅ Passed The description explains the scope, user-visible result, testing performed, exclusions, and changelog entry. It provides testing details under “Verification” rather than a dedicated “Testing” heading …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS: The reviewed diff contains contact-address substitutions and one feedback UI test expectation update. It does not change Cloud terminal creation, persistent cmux-tui transport, manual renderer a…
Cmux Swift Actor Isolation ✅ Passed PASS: The Swift diff only replaces email string literals and updates one UI-test expectation. FeedbackComposerSettings remains the existing Sendable value struct with no isolation change. `Sidebar…
Cmux Swift Blocking Runtime ✅ Passed The pull request changes seven Swift files. The production Swift diffs only replace contact-address string literals in CLI output, feedback messages/settings, profiling preview, and pricing mailto han…
Cmux Browser Automation Off-Main ✅ Passed The check is not triggered. The authoritative PR diff changes 94 files, all for contact-address text, localization, and related tests. Sources/TerminalController.swift and `Packages/macOS/CmuxContro…
Cmux Expensive Synchronous Load ✅ Passed PASS: The reviewed Swift diff changes only contact-address string literals in CLI help, feedback UI/error text, feedback settings, profiling preview, and pricing mailto handling. It adds no `Restorabl…
Cmux Cache Substitution Correctness ✅ Passed PASS. The reviewed production Swift and TypeScript changes only replace contact-address literals and update one UI-test expectation. The diff does not replace an authoritative read with a cached or op…
Cmux No Hacky Sleeps ✅ Passed PASS — The pull request changes contact-address strings and matching test expectations. The changed TypeScript, shell, and runtime-script additions contain no fixed sleeps, timers, polling, delayed di…
Cmux Algorithmic Complexity ✅ Passed PASS: The reviewed range changes only contact-address string literals and matching test expectations. The executable patch is 325 additions and 325 deletions across 94 files; normalized production-cod…
Cmux Swift Concurrency ✅ Passed The pull request changes only contact-address string literals in seven Swift files, plus one UI-test expectation. The authoritative diff adds no Dispatch, Combine, completion-handler, async/await, act…
Cmux Swift @Concurrent ✅ Passed PASS: The Swift diff only replaces contact-address strings and updates one UI-test string. It adds or removes no @concurrent, nonisolated, async, @MainActor, Task, or await code. Existing …
Cmux Swift Package Boundaries ✅ Passed The reviewed Swift diff only changes contact-address string literals and a default email value. It does not introduce or expand domain, provider, protocol, persistence, or workstream logic. The feedba…
Cmux Swiftpm Lockfiles ✅ Passed The PR changes contact strings and one UI-test expectation only. The changed-file inventory contains no Package.swift, Package.resolved, .gitignore, Xcode project, workspace, or workflow changes. Pack…
Cmux Swift Logging ✅ Passed PASS. The changed Swift lines only replace the displayed contact address. The sole added print remains CLI user-facing output, which the rule allows. No debugPrint, dump, NSLog, ad hoc diagnos…
Cmux User-Facing Error Privacy ✅ Passed PASS — The production diff changes contact addresses and related recipients only. The concrete end-user paths are the macOS feedback UI/CLI, profiling helper, pricing links, website pages, and contact…
Cmux Swiftui State Layout ✅ Passed PASS. The Swift diff only changes contact-address string literals in SidebarFeedbackComposerSheet.swift and other non-state Swift files. It adds no ObservableObject, @Published, GeometryReader…
Cmux Architecture Rethink ✅ Passed The Swift diff contains only contact-string replacements in seven files, plus a UI-test expectation update. It adds no sleeps, delayed dispatch, polling, locks, observers, mutable state, side channels…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS. The authoritative Swift diff changes only contact-address string literals and one UI-test expectation. It adds or materially changes no NSWindow, NSPanel, NSWindowController, Window, or WindowGr…
Cmux Source Artifacts ✅ Passed All 94 changed paths are pre-existing files with modification-only status. The paths are source, scripts, tests, licenses, READMEs, and localization catalogs. No rule-listed artifact directory or arti…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS: The PR changes five production Swift files under Sources/, but every added line only changes the contact email literal. The diff adds no #if DEBUG or test-build guard, test/debug seam member…
Full details: Cmux Full Internationalization

Explanation

The PR introduces several full-internationalization violations. FeedbackComposerBridge.swift:92,111 changes user-facing error text but returns English literals instead of String(localized:defaultValue:); the bridge error type is explicitly user-facing. CLI/cmux.swift:41563 also changes user-facing command output without a localized source. The changed keys in Resources/Localizable.xcstrings (sidebar.help.feedback.endpointError, note, and successBody) have values for only ar,de,en,es,fr,ja,ko,uk,zh-Hans,zh-Hant, while the catalog already supports bs,da,it,km,nb,pl,pt-BR,ru,th,tr as well. The changed localized web routes also keep the new contact address in direct TSX literals, including visible EULA and Terms text and company metadata, instead of reading the address from locale-specific entries. The PR does update all 20 web/messages and privacy-policy locale files, and the package feedback catalog has complete coverage for its 10 locales, but those compliant changes do not correct the violations above.

Resolution

Route the bridge and CLI user-facing text through localized APIs with stable keys. Add translated values for the three changed keys in Resources/Localizable.xcstrings for bs, da, it, km, nb, pl, pt-BR, ru, th, and tr. Move the changed web contact address and visible legal/metadata contact values to locale-specific next-intl entries, add matching keys to every locale in web/messages/ (all 20 locales in web/i18n/routing.ts), and consume those keys from the affected route components.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Dogfood build of 8d647dbfb4c2ffd3043a63c0311681038c404be2

cmux DEV pr-15219-8d647dbf.app

The link opens this exact commit in the cmux dev menu bar app. The build starts on each push and the page waits until it is ready; a newer push replaces it. It signs in against production, so Cloud or backend changes still need a tagged build with a development backend.

The motd is part of the baked devbox sources, so editing it invalidates
every checked-in image. It moves to founders@cmux.com with the next bake.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@lawrencecchen
lawrencecchen enabled auto-merge (squash) September 28, 2026 08:48
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

CI failure attribution

CI failed on 8d647dbfb4 (run 36405299563 attempt 1): 1 unknown.

Job Verdict Why
ui-tests unknown no known signature; failed step: Wait for the UI test run

Not re-run automatically: ui-tests is not a machine failure.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's.

The English catalog value of sidebar.help.feedback.note has never
included the "A human will read this!" prefix that the test expected,
so testHelpMenuSendFeedbackOpensComposerSheet failed on main too.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@lawrencecchen
lawrencecchen merged commit 229a59b into main Sep 29, 2026
95 of 97 checks passed
@lawrencecchen
lawrencecchen deleted the feat-founders-cmux-email branch September 29, 2026 03:28
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for 8d647dbfb4, merged 2026-09-29 03:28:07 UTC

  • Not verified at merge: ci-status (failure), ui-tests (failure)
  • Verified: app-host unit tests, macOS compile admission, Web complexity, web-validation, backend, catalog-structure, CI fast guards, CI timing, CLI product tests, client, Cloudflare Durable Object relay, detect-ios-changes, and 30 more
  • Skipped by policy: ${{ matrix.language }} consumer, ${{ matrix.language }} package, admission-placement, agent-session-web-resources, browser, Claude wrapper regressions, deploy-development, diff-sidecar-check, ios-simulator, ios-simulator-build, mobile-core-package, react-apps-check, and 9 more
  • Full suite: runs on main after merge.

Labeled merged-unverified: if main breaks near this merge, look here first.

@github-actions github-actions Bot added the merged-unverified A judging check was not green at merge; see the merge receipt comment label Sep 29, 2026
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 29, 2026
ce40ebd Add browser file input uploads to the CLI (manaflow-ai#14550)
63a2f63 irx: journal every silent exit in the credential renewal pipeline (manaflow-ai#15443)
c9f535c Stop Computer Use activity from focusing the calling workspace (manaflow-ai#15311)
02f0ea1 Preserve iOS tab menu scroll during background updates (manaflow-ai#15486)
166e35c Slide the pane drop overlay between zones again (manaflow-ai#15447)
bdbf018 Unify right sidebar button corner radius (manaflow-ai#15150)
229a59b Use founders@cmux.com as the contact address everywhere (manaflow-ai#15219)
4c4b409 Deliver phone terminal input exactly once to the terminal it names (manaflow-ai#15432)
f671405 Fix My Devices restore retry and sidebar badge (manaflow-ai#15440)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-unverified A judging check was not green at merge; see the merge receipt comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant