Skip to content

Add cmux Fork launch post - #8144

Merged
lawrencecchen merged 2 commits into
mainfrom
feat-cmux-fork-blog
Jul 15, 2026
Merged

lawrencecchen merged 2 commits into
mainfrom
feat-cmux-fork-blog

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Jul 15, 2026 •

Copy link
Copy Markdown
Contributor

Adds an Introducing cmux Fork blog post with the supplied demo video.

Localizes the article and metadata across all 20 site languages. Compresses the 77 MB source video to 1.6 MB while preserving its 1680×1080 frame.

Verification:

  • bun run typecheck
  • targeted ESLint
  • SKIP_ENV_VALIDATION=1 bun run build
  • locale key audit across all 20 message catalogs

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Summary by cubic

Adds the “Introducing cmux Fork” launch post with a lightweight demo video, full SEO, and localization, now indexed in the blog and sitemap across all locales.

  • New Features
    • New post at /blog/cmux-fork with JSON‑LD schema, Open Graph, Twitter cards, and localized alternates; publish date: July 14, 2026.
    • Added to the blog index, sitemap (lastModified July 15, 2026), and readable-page registry.
    • Localized article content and SEO metadata across 20 languages, including updated German copy.
    • Demo video at /public/blog/cmux-fork.mp4, compressed from 77 MB to 1.6 MB while keeping 1680×1080 resolution.

Written for commit 99843db. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features
    • Added a new blog post introducing cmux Fork and Fork Conversation.
    • Describes how to branch conversations into splits, tabs, or new workspaces while keeping context, with multi-direction parallel exploration.
    • Includes localized post content and per-language SEO metadata for discoverability and share previews.
    • Adds rich page presentation (including structured blog schema) and a looping video preview.
    • Updated the blog route listing for readers and added the new URL to the sitemap.

@vercel

vercel Bot commented Jul 15, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Jul 15, 2026 1:54pm
cmux-staging Building Building Preview, Comment Jul 15, 2026 1:54pm

@coderabbitai

coderabbitai Bot commented Jul 15, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

cmux Fork blog publication

Layer / File(s) Summary
Localized article content and SEO metadata
web/messages/*.json
Adds translated article content, publication details, release text, and metaTitle/metaDescription entries for cmuxFork.
Blog route metadata and article rendering
web/app/[locale]/(landing)/blog/cmux-fork/page.tsx
Adds localized metadata generation, canonical alternates, structured data, navigation, video, and translated article sections.
Blog index registration
web/app/[locale]/components/blog-posts.ts
Adds the cmux-fork post to the blog index with its key, title, date, and summary.
Readable-page and sitemap registration
web/app/lib/agent-page-paths.ts, web/app/sitemap.ts
Adds the blog route to agent-readable pages and the sitemap with publication metadata.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant CmuxForkPage
  participant next-intl
  participant BlogSchema
  Browser->>CmuxForkPage: Request localized blog page
  CmuxForkPage->>next-intl: Load cmuxFork translations
  CmuxForkPage->>BlogSchema: Render article structured data
  CmuxForkPage-->>Browser: Return translated article and metadata
Loading

Possibly related PRs

  • manaflow-ai/cmux#7247: Extends the same readable-page and sitemap indexing plumbing used by this route.

Suggested reviewers: austinywang

🚥 Pre-merge checks | ✅ 25
✅ Passed checks (25 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 Swift Actor Isolation ✅ Passed No Swift files are changed in this PR; only web TS/JSON files were modified, so the Swift actor-isolation check is not applicable.
Cmux Swift Blocking Runtime ✅ Passed The PR changes only TS/JSON files; no Swift code was added or modified, so the blocking-runtime rule does not apply.
Cmux Browser Automation Off-Main ✅ Passed The PR diff only changes blog, sitemap, translations, and the demo video; it doesn't touch browser automation files, socket routing, or policy tests.
Cmux Expensive Synchronous Load ✅ Passed No Swift files or Swift UI paths were changed; the diff only touches web/app and web/messages, so the expensive-sync-load rule is not applicable.
Cmux Cache Substitution Correctness ✅ Passed The diff only adds blog content, metadata, and sitemap/listing entries; it does not replace any authoritative persistence/history/snapshot read with a cache.
Cmux No Hacky Sleeps ✅ Passed PR changes only add blog content/SEO; inspected cmux-fork page, sitemap, and registries and found no setTimeout/sleep/polling or fixed waits.
Cmux Algorithmic Complexity ✅ Passed Diff adds static blog content and one fixed list entry; no nested scans, rescans, or hot-path algorithm changes were introduced.
Cmux Swift Concurrency ✅ Passed The PR only changes web TS/JSON files; no Swift code was added or modified, so the Swift concurrency rule is not applicable.
Cmux Swift @Concurrent ✅ Passed The full PR diff contains no .swift files, so the swift-concurrent-annotation rule is not applicable.
Cmux Swift Package Boundaries ✅ Passed No Swift files or package manifests changed; the diff is TS/JSON only, so the Swift package-boundary rule does not apply.
Cmux Swiftpm Lockfiles ✅ Passed PR diff only touches web app/page and message files; no SwiftPM/Xcode/.gitignore/workflow/dependency files changed, so the lockfile rule isn’t implicated.
Cmux Swift Logging ✅ Passed PASS: the diff only changes TS/JSON blog and sitemap files; no Swift files or logging statements were added or modified.
Cmux User-Facing Error Privacy ✅ Passed The diff only adds blog/article content and metadata; it doesn’t introduce user-facing errors, alerts, recovery copy, or sensitive implementation details.
Cmux Full Internationalization ✅ Passed The new blog page reads from next-intl, and all 20 locales in routing.ts have matching blog.posts.cmuxFork and blog.cmuxFork entries with no missing or empty fields.
Cmux Swiftui State Layout ✅ Passed PASS: PR diff contains only TS/JSON/video blog assets; no Swift/SwiftUI files or state/layout patterns were introduced.
Cmux Architecture Rethink ✅ Passed PASS: The full diff only touches web/ TS/JSON and a video asset; no Swift files or SwiftUI/AppKit architecture changes appear, so the rule is not applicable.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed This commit only changes web routing/sitemap and a German message file; no Swift window code or cmuxAuxiliaryWindowIdentifiers changes are present.
Cmux Source Artifacts ✅ Passed Changed paths are app source and a locale catalog; no local outputs, caches, temp dirs, or build artifacts were added.
Cmux No Test Or Debug Seam In Production Source ✅ Passed PR changes only web/JSON/video files; no Swift files under any production Sources/ path were touched, so the debug-seam rule is not applicable.
Cmux No Ambient Global State ✅ Passed No Swift files changed in the PR diff; only TS/JSON and an MP4 were modified, so the no-ambient-global-state Swift rule is not applicable.
Title check ✅ Passed The title is concise and accurately summarizes the main change: adding the cmux Fork launch post.
Description check ✅ Passed The description covers the summary and verification and references the demo video, but it omits the exact review-trigger block and checklist details.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-cmux-fork-blog

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.

@greptile-apps

greptile-apps Bot commented Jul 15, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds the "Introducing cmux Fork" launch blog post, including the page component, blog index entry, sitemap and agentReadablePages registration, a compressed demo video, and localized content across all 20 supported locales.

  • New blog post at /blog/cmux-fork with full JSON-LD schema, Open Graph, Twitter card metadata, and localized hreflang alternates; publish date 2026-07-14.
  • Registry updates — the route is correctly added to web/app/sitemap.ts, agentReadablePages in web/app/lib/agent-page-paths.ts, and the blogPosts array in blog-posts.ts so the listing page renders it.
  • Localization — all 20 web/messages/*.json catalogs receive matching blog.posts.cmuxFork content and blog.cmuxFork metadata keys consumed by useTranslations and getTranslations respectively.

Confidence Score: 5/5

Safe to merge — pure content addition with no logic changes to shared infrastructure.

All four required registries (sitemap, agentReadablePages, blogPosts array, and 20 locale message catalogs) are updated consistently. The page follows the established blog post pattern without introducing new shared logic. The compressed demo video is intentionally included as a product asset.

No files require special attention.

Important Files Changed

Filename Overview
web/app/[locale]/(landing)/blog/cmux-fork/page.tsx New blog page following established patterns; all i18n keys consumed via useTranslations/getTranslations, metadata fully populated, video served from public/.
web/app/[locale]/components/blog-posts.ts New cmuxFork entry added at the top of the blogPosts array with correct slug, key, date, and English fallback title/summary matching the established pattern.
web/app/lib/agent-page-paths.ts /blog/cmux-fork added to agentReadablePages; entry consistent with neighbouring blog paths and no locales restriction (post is fully translated into all 20 locales).
web/app/sitemap.ts /blog/cmux-fork sitemap entry added with correct lastModified, changeFrequency, and priority matching other blog posts.
web/messages/en.json All 11 blog.posts.cmuxFork keys and both blog.cmuxFork metadata keys are present and consumed by the page component.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[New blog post\n/blog/cmux-fork/page.tsx] --> B[blogPosts array\nblog-posts.ts]
    A --> C[sitemap.ts\n/blog/cmux-fork entry]
    A --> D[agentReadablePages\nagent-page-paths.ts]
    A --> E[20 locale message files\nweb/messages/*.json]
    B --> F[Blog index page\nrenders listing]
    C --> G[Google SEO\nhreflang alternates]
    D --> H[.md/.txt agent variants\nllms.txt listing]
    E --> I[blog.posts.cmuxFork\ncontent keys]
    E --> J[blog.cmuxFork\nmetadata keys]
    I --> A
    J --> A
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[New blog post\n/blog/cmux-fork/page.tsx] --> B[blogPosts array\nblog-posts.ts]
    A --> C[sitemap.ts\n/blog/cmux-fork entry]
    A --> D[agentReadablePages\nagent-page-paths.ts]
    A --> E[20 locale message files\nweb/messages/*.json]
    B --> F[Blog index page\nrenders listing]
    C --> G[Google SEO\nhreflang alternates]
    D --> H[.md/.txt agent variants\nllms.txt listing]
    E --> I[blog.posts.cmuxFork\ncontent keys]
    E --> J[blog.cmuxFork\nmetadata keys]
    I --> A
    J --> A
Loading

Reviews (2): Last reviewed commit: "Complete Fork post registries and German..." | Re-trigger Greptile

Comment thread web/app/[locale]/(landing)/blog/cmux-fork/page.tsx

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: efd0e61b36

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread web/app/[locale]/components/blog-posts.ts

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/messages/de.json`:
- Around line 437-449: Update the German translations in web/messages/de.json
lines 437-449 within the cmuxFork content block to consistently use formal
address, replacing informal pronouns and imperatives with “Sie/Ihnen” forms such
as “Sie können”, “Verzweigen Sie” and “Klicken Sie”. Also update
web/messages/de.json lines 614-617 in the SEO description to use the formal
imperative “Verzweigen Sie”; no other tone or content changes are needed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c431a016-1a1f-4ef0-8f05-f247e7b8358b

📥 Commits

Reviewing files that changed from the base of the PR and between f008967 and efd0e61.

⛔ Files ignored due to path filters (1)
  • web/public/blog/cmux-fork.mp4 is excluded by !**/*.mp4
📒 Files selected for processing (22)
  • web/app/[locale]/(landing)/blog/cmux-fork/page.tsx
  • web/app/[locale]/components/blog-posts.ts
  • web/messages/ar.json
  • web/messages/bs.json
  • web/messages/da.json
  • web/messages/de.json
  • web/messages/en.json
  • web/messages/es.json
  • web/messages/fr.json
  • web/messages/it.json
  • web/messages/ja.json
  • web/messages/km.json
  • web/messages/ko.json
  • web/messages/no.json
  • web/messages/pl.json
  • web/messages/pt-BR.json
  • web/messages/ru.json
  • web/messages/th.json
  • web/messages/tr.json
  • web/messages/uk.json
  • web/messages/zh-CN.json
  • web/messages/zh-TW.json

Comment thread web/messages/de.json
@cursor

cursor Bot commented Jul 15, 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 merged commit 496a1c4 into main Jul 15, 2026
24 of 26 checks passed
@lawrencecchen
lawrencecchen deleted the feat-cmux-fork-blog branch July 15, 2026 09:49
@lawrencecchen
lawrencecchen restored the feat-cmux-fork-blog branch July 18, 2026 10:24

This branch was successfully deployed

1 active deployment
Preview – cmux — 99843db6 Deployed Jul 15, 2026 by vercel[bot]
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