Commit graph

1325 commits

Author SHA1 Message Date
Lawrence Chen
cf75da8f8a
Internationalize website with next-intl for 19 languages (#1216)
* Add i18n framework with next-intl for 19 languages

Set up complete internationalization infrastructure:
- Install next-intl v4 with App Router support
- Create i18n config (routing, request, navigation)
- Add middleware for automatic locale detection from Accept-Language
- Restructure all routes under app/[locale]/
- Extract UI strings to messages/en.json
- Update all components to use useTranslations()
- Add language switcher dropdown in footer
- Support RTL for Arabic and Khmer
- Update sitemap with locale alternates
- Add generateStaticParams for all 19 locales

Languages: en, ja, zh-CN, zh-TW, ko, de, es, fr, it, da, pl, ru, bs, ar, no, pt-BR, th, tr, km

Locale detection: auto-detect from browser Accept-Language header,
with cookie persistence and locale prefix only for non-default (en).

* Add translations for de, fr, it, ja, zh-CN, zh-TW

* Add translations for ar, bs, da, es, km, no, pl, pt-BR, ru, th, tr

* Convert docs and legal pages to use useTranslations()

* Add i18n to keyboard shortcuts component

* Add i18n to wall-of-love, add missing blog posts to sitemap

* Add keyboard shortcuts and wallOfLove translations to all locales

* Update bun lockfile for next-intl dependency

* Fix t.rich() configPath: pass ReactNode not function for {var} interpolation

* Fix configPath: use rich text tag instead of plain interpolation for ReactNode

* Fix t.rich() interpolation: use rich text tags for all ReactNode placeholders

Changed {legacy}, {openShortcut}, {jumpShortcut} from plain variable
interpolation to <tag>content</tag> format so t.rich() gets proper
functions instead of values.

* Escape ICU curly braces in socketCallout rich text across all locales

* Fix i18n issues: Khmer RTL, zh-CN quality, locale-aware testimonials, hardcoded strings

- Fix Khmer (km) incorrectly marked as RTL (it's LTR, only Arabic is RTL)
- Fix zh-CN/zh-TW taglinePrefix to mention terminals and open source
- Add locale-aware testimonial translations: show original text, translate
  for non-matching locales, skip translation when locale matches original
- Translate hardcoded English table content in notifications page
- Add testimonial translations to all 19 locale files
- Remove unused setRequestLocale import and params from home page

* Address PR review comments: metadata localization, blog fixes, legal pages, accessibility

- Convert hardcoded metadata to generateMetadata with getTranslations on all docs, blog, community, and wall-of-love pages
- Fix blog canonical/OG URLs to be locale-aware
- Fix introducing-cmux .split(": ") by using separate label/desc translation keys
- Revert legal page titles to English (legal content stays English-only)
- Add focus-visible ring to language switcher for keyboard accessibility
- Preserve query string and hash when switching locale
- Convert site-footer to server component (remove unnecessary "use client")
- Remove .toLowerCase() on translated text in community page
- Add /docs/browser-automation and /wall-of-love to sitemap
- Fix keyboard-shortcuts jump link visibility with trimmed query
- Deduplicate blogSlugs by importing from blog-posts.ts
- Add typingCodingAgents/typingMultitasking translation keys to all locales
- Fix Spanish accent/tilde issues in es.json testimonials
- Fix nested <a> tag in homepage keyboard shortcuts feature
- Remove unused setRequestLocale import from homepage

* Convert remaining layout/index metadata to generateMetadata

- Root layout: locale-aware title, description, OG, and Twitter card metadata
- Docs layout: translated title template
- Blog layout: translated title template
- Blog index: locale-aware metadata

* Add translated metadata keys to all locales, fix docs redirect

- Add meta.title/description/ogDescription to all 18 non-English locales
- Add docs.layoutTitle, blog.layoutTitle/metaTitle/metaDescription to all locales
- Add blog post metadata (zenOfCmux, cmdShiftU, showHnLaunch, introducingCmux) to all locales
- Add community.metaTitle/metaDescription to all locales
- Fix docs index redirect to preserve locale prefix

* Add translated docs page metaTitle keys to all locales
2026-03-12 05:36:58 -07:00
Lawrence Chen
054b91f641
Fix Return on Cmd+Ctrl+W close confirmation (#1279)
* Add close-window return-key regression test

* Focus close-window confirmation button

* Keep Return on close-window alert

* Address review feedback
2026-03-12 05:25:14 -07:00
Lawrence Chen
df065790d5
Sync translated READMEs with English version (#1261)
Add Khmer (README.km.md) to all 17 other translations' language
selectors. Fix README.km.md: add translation disclaimer, download
badge in Install section, translate feature table headings/descriptions
and browser section note from English to Khmer.
2026-03-12 04:12:36 -07:00
Lawrence Chen
07dd39730a
Merge pull request #1260 from manaflow-ai/task-zprezto-double-enter-lines
Fix Pure-style zsh prompt redraws
2026-03-12 03:56:41 -07:00
Lawrence Chen
6258fbb482 tests: resolve zsh paths in redraw regressions 2026-03-12 03:50:53 -07:00
Lawrence Chen
4d04723600 build: pin GhosttyKit checksum for prompt redraw fix 2026-03-12 03:48:14 -07:00
Lawrence Chen
473b2a0d1c docs: clarify fork head and test env setup 2026-03-12 03:44:06 -07:00
Lawrence Chen
3c58e8c5ca ghostty: fix Pure-style multiline prompt redraws 2026-03-12 03:39:17 -07:00
Lawrence Chen
9b529a128b test: cover Pure-style zsh prompt redraws 2026-03-12 03:39:03 -07:00
Lawrence Chen
459a0289c1
Fix titlebar shortcut hint clipping (#1259)
* Add regression test for titlebar shortcut hint clipping

* Fix titlebar shortcut hint clipping
2026-03-12 03:27:10 -07:00
Lawrence Chen
64b37fc121
Add Cmd+T (New tab) to welcome screen shortcuts (#1258) 2026-03-12 03:19:35 -07:00
Lawrence Chen
402ce7f76c
Merge pull request #1243 from manaflow-ai/issue-1241-cmd-window-cycle-switches-back
Fix cmd+` window cycling bouncing back
2026-03-12 02:51:40 -07:00
Lawrence Chen
b7e7864ed4 Tighten Cmd+` regression coverage 2026-03-12 02:46:54 -07:00
Lawrence Chen
8d5a1f611d
Resync terminal portals after sidebar changes (#1253)
* Add regression test for portal ancestor shifts

* Resync terminal portals after sidebar changes

* Restore safeHelp view helper

* Fix portal geometry regression test harness
2026-03-12 02:46:30 -07:00
Lawrence Chen
292359f600
Merge pull request #1255 from manaflow-ai/task-cmux-version-hang-investigation
Fix cmux --version root walk
2026-03-12 02:45:56 -07:00
tiffanysun1
85f9ad6ee9 Polish version guard follow-ups 2026-03-12 02:35:23 -07:00
tiffanysun1
9bd22d5d98 Pick newest CLI binary in CI 2026-03-12 02:34:04 -07:00
tiffanysun1
f41a831778 Stop version lookup at root 2026-03-12 02:26:52 -07:00
Lawrence Chen
e9556ba5f4 Prevent background terminal focus retries from reordering windows 2026-03-12 02:20:10 -07:00
tiffanysun1
f50f70dc41 Run version memory guard in CI 2026-03-12 02:19:51 -07:00
Lawrence Chen
2db9bb4b86 Fix cmd+backtick window cycling 2026-03-12 01:53:59 -07:00
Lawrence Chen
1160c72420 Add cmd+backtick window cycle regression test 2026-03-12 01:47:44 -07:00
Austin Wang
74b0d893f4
Merge pull request #1240 from manaflow-ai/release/v0.62.0
Release v0.62.0
2026-03-12 01:28:29 -07:00
austinpower1258
26ca65b77d Release v0.62.0 2026-03-12 01:26:28 -07:00
Austin Wang
378a417471
Merge pull request #1230 from manaflow-ai/issue-1183-devtools-side-dock-guard
Prevent attached DevTools from re-entering unsafe side-dock layouts
2026-03-11 23:32:19 -07:00
austinpower1258
f429907d57 Match WKWebView test override signature on CI 2026-03-11 23:18:36 -07:00
Austin Wang
05ad8993b7
Merge pull request #1139 from manaflow-ai/issue-1138-sidebar-pr-badge-detection
Fix sidebar PR badge polling for idle shells
2026-03-11 23:17:06 -07:00
austinpower1258
f843ce2706 Hide unsafe side dock controls for attached devtools 2026-03-11 23:04:28 -07:00
Austin Wang
dc1f714e58
Merge pull request #1228 from manaflow-ai/issue-1225-browser-tab-switch-reload
Fix browser pane reloads on tab switch
2026-03-11 22:58:11 -07:00
austinpower1258
72e7a9de76 Adapt attached devtools to narrow panes 2026-03-11 22:56:39 -07:00
austinpower1258
c52bd24e85 Avoid browser portal hide lifecycle on tab switch 2026-03-11 22:52:29 -07:00
austinpower1258
df54af34cf Merge branch 'main' of https://github.com/manaflow-ai/cmux into issue-1183-devtools-resize-layout
# Conflicts:
#	cmuxTests/CmuxWebViewKeyEquivalentTests.swift
2026-03-11 22:16:07 -07:00
austinpower1258
7d5d4d718d wip 2026-03-11 22:13:45 -07:00
austinpower1258
968ccf094f Revert CI workflow changes from #1224
Roll back actions/checkout v6.0.2 to v4, restore oven-sh/setup-bun
action, and remove explicit ref parameter from compat workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 21:27:44 -07:00
Austin Wang
eef853c334
Merge pull request #1224 from manaflow-ai/issue-1223-cmd-d-browser-refresh
Fix browser pane refreshes on split and resize churn
2026-03-11 21:21:39 -07:00
austinpower1258
27e598ca5a Address CI blockers and review follow-ups 2026-03-11 21:13:25 -07:00
austinpower1258
7c29652971 Avoid browser portal refresh on geometry churn 2026-03-11 21:03:26 -07:00
austinpower1258
9ba495a750 Add regression tests for browser portal resize refresh 2026-03-11 21:03:22 -07:00
Lawrence Chen
89def5ed52
Prompt before closing window with Cmd+Ctrl+W (#1219)
* Add UI test for close-window confirmation

* Confirm before closing window

* Fix close-window confirmation tests
2026-03-11 20:37:37 -07:00
Lawrence Chen
0202081f05
Merge pull request #1220 from manaflow-ai/task-devtools-hide-toggle
Fix browser devtools hide toggle fallback
2026-03-11 20:25:09 -07:00
Lawrence Chen
7844226ded Fix browser devtools hide fallback 2026-03-11 20:18:46 -07:00
Lawrence Chen
46845f2a4f Add devtools hide regression test 2026-03-11 20:15:42 -07:00
Lawrence Chen
abf1deed8f Fix zsh prompt redraw markers 2026-03-11 19:19:25 -07:00
Lawrence Chen
a9f870c2ef Add zsh prompt redraw regression test 2026-03-11 19:19:02 -07:00
Austin Wang
6272f5082e
Merge pull request #1215 from manaflow-ai/issue-1208-browser-pane-stale-content
Fix stale browser pane content after drag splits
2026-03-11 19:17:45 -07:00
austinpower1258
8aafb68935 Fix browser pane drag/drop follow-ups 2026-03-11 19:16:17 -07:00
austinpower1258
1dbd1e5011 Merge branch 'main' of https://github.com/manaflow-ai/cmux into issue-1208-browser-pane-stale-content 2026-03-11 18:54:12 -07:00
austinpower1258
81618bf3cf Fix stale browser pane content after drag splits 2026-03-11 18:46:33 -07:00
Lawrence Chen
f71c2c144b
Adapt welcome screen colors for light mode (#1214)
* Adapt welcome screen colors for light mode

Detect macOS appearance and use a darker cyan-to-purple gradient
with sufficient contrast (WCAG AA 4.5:1+) on light backgrounds.
Replace dim ANSI attribute with explicit true-color for light mode,
since dim can reduce contrast further against light backgrounds.

* Keep original gradient colors, only adapt tagline and dim text

The cyan-to-purple gradient looks good in both modes. Only the
tagline gray and dim description text need darker values for
light backgrounds.
2026-03-11 18:38:34 -07:00
Lawrence Chen
320451e1f6
Merge pull request #1212 from manaflow-ai/task-browser-page-pushed-up
Fix bottom-docked DevTools page shift
2026-03-11 18:36:17 -07:00