Skip to content

Fixes issue with browser on non-running localhost urls - #42

Merged
austinywang merged 1 commit into
mainfrom
cmux/browser-improve
Feb 17, 2026
Merged

austinywang merged 1 commit into
mainfrom
cmux/browser-improve

Conversation

@austinywang

@austinywang austinywang commented Feb 17, 2026 •

Copy link
Copy Markdown
Contributor
image

@cmux-agent

cmux-agent Bot commented Feb 17, 2026 •

Copy link
Copy Markdown
Contributor

Preview Videos and Screenshots

Open Workspace (1 hr expiry) · Open Dev Browser (1 hr expiry) · Open Diff Heatmap

Screenshot status is unknown for this run.


Generated by cmux preview system

@vercel

vercel Bot commented Feb 17, 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 Feb 17, 2026 0:23am
cmuxterm-docs Ready Ready Preview, Comment Feb 17, 2026 0:23am

@austinywang
austinywang merged commit 16e8329 into main Feb 17, 2026
6 checks passed
evyatarh95 added a commit to evyatarh95/cmux that referenced this pull request Mar 20, 2026
Update ghostty submodule to include RTL/BiDi rendering support for
Hebrew, Arabic, and other right-to-left scripts.

Features:
- Correct visual ordering of RTL characters (right-to-left display)
- Mixed RTL/LTR text on the same line (Hebrew + English)
- Right-alignment for RTL-base paragraphs
- Bracket mirroring: ()[]{}«» properly mirrored in RTL context
- Digits maintain LTR order in RTL text ("10" not "01")
- Number-related punctuation stays grouped (2.0, manaflow-ai#42, 50%, 10:30)
- Zero performance overhead for pure LTR content (fast early-exit)
- Cursor positioned correctly on RTL lines

Implementation approach:
- BiDi reordering at the renderer level (not terminal model)
- Simplified UAX#9 algorithm with European Number support
- Per-row analysis with visual-to-logical position mapping
- 46 unit tests for the BiDi module

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
bn-l pushed a commit to bn-l/cmux that referenced this pull request Apr 3, 2026
Fixes issue with browser on non-running localhost urls
Eridanus117 added a commit to Eridanus117/cmux that referenced this pull request Jul 2, 2026
`lineColumn(fromFragment:)` accepts fragments outside the `L<line>[:<column>]`
contract: a bare `manaflow-ai#42` (no `L` marker) becomes line 42, and a colon group with
a missing/invalid/nonpositive column (`L42:`, `L42:abc`, `L42:0`) silently
falls back to line-only. These tests pin fail-closed behavior and are red
against the current permissive parser.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Eridanus117 added a commit to Eridanus117/cmux that referenced this pull request Jul 2, 2026
Parse only the exact `L<line>[:<column>]` fragment contract that
`TerminalFileReference.fileURL` emits: require the `L` marker (so a bare
`manaflow-ai#42` anchor is not read as a line) and require a positive-integer column
when a colon group is present (so `L42:`, `L42:abc`, `L42:0` are rejected
rather than silently opening at line-only). Matches the repo's fail-closed
convention for open/dispatch routing. Turns the prior commit's tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
georgegebbett added a commit to georgegebbett/cmux that referenced this pull request Aug 5, 2026
Addresses review feedback on the PR link destination setting.

Both keys were registered in `SidebarSettingsFileMapping.booleanSettings`,
which `parseSidebarSection` reads with `jsonBool`. A string enum and a
string template both decoded to nil there, so `cmux.json` values were
accepted by the supported-path list and then silently dropped — only the
Settings UI worked. They are now parsed explicitly, validated against
`PullRequestLinkDestination` and `isValidURLTemplate`, and rejected with
`logInvalid` so a bad value is visible rather than ignored.

`SettingsNavigation.settingEntries` had no `pr-link-destination` entry, so
the cmux.json path mappings resolved to an anchor that did not exist and
Settings search could not navigate to the row.

`PullRequestLinkReference` now requires exactly four path segments and
rejects fragments. `manaflow-ai/pull/42/files` and `#issuecomment-…` address something
more specific than the pull request, and no rewrite carries that target to
another host, so they keep their original URL. This also matches what
`resolvedURL(for:)` already documented.

Localization is completed per `.github/review-bot-rules/full-internationalization.md`:
every new string-catalog key carries all 20 locales the catalog supports,
the settings prompt and the curated entry title/synonyms use localized
APIs instead of raw strings, and both schema properties gained a
`descriptionKey` with matching entries in all 20 `web/messages` files.
"GitHub" and "Custom" reuse the existing per-locale values from
`settings.browser.searchEngine.*` so the app keeps one term for each.

The schema and generated key reference now state that an empty *or invalid*
template falls back to the pull request's own page.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 4, 2026
…on palette color

Written by scripts/bump-cmux-cua-pin.sh cmux-cua-v0.8.3:
- CMUX_CUA_PINNED_SHA e07dc89e (the commit the tag points to)
- CMUX_CUA_RELEASE_TAG cmux-cua-v0.8.3
- CMUX_CUA_DARWIN_UNIVERSAL_UNSIGNED_SHA256 b399609f...9295, computed from
  cmux-cua-0.8.3-darwin-universal-unsigned.tar.gz, equal to checksums.txt
  and to the CI lead's value
- Packages/Shared/CmuxAgentCursor re-vendored at e07dc89e (tree d775ff71),
  now with AgentCursorPalette (cmux-cua #43).
Brings the lease v3 reducer (#42) and session colors (#43).

AgentCursorStack's default color is now sessionColor: the session's
AgentCursorPalette mid color, the same color the cmux-cua renderer draws.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 7, 2026
… inbox (red)

Two runs of the freeze-token test mailed fake RELEASE FREEZE: #42 into the
real lawrence-coordinator inbox. Under test, or with a local WINDOW file, a
token merge without GH_MERGE_GREEN_MAILBOX_DIR must refuse before merging and
never run ssh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 7, 2026
The freeze-token test ran with no mailbox override, so each run mailed a fake
RELEASE FREEZE: #42 to the real lawrence-coordinator inbox over ssh. Now:
- under GH_MERGE_GREEN_TEST, or with a local GH_MERGE_GREEN_WINDOW_FILE, a
  token merge without GH_MERGE_GREEN_MAILBOX_DIR refuses before merging, and
  the send site refuses again (fail closed);
- under GH_MERGE_GREEN_TEST the WINDOW is never read over ssh;
- the test module sets GH_MERGE_GREEN_TEST and a temp mailbox for every run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 9, 2026
…l for feat-cmux-next merges (#18378)

* test(gh-merge-green): a feat-cmux-next merge must refuse frozen paths (red)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(gh-merge-green): refuse feat-cmux-next merges into frozen paths

Before merging into feat-cmux-next, gh-merge-green reads the coordinator's
WINDOW (cmux-lawrence:~/agent-mailbox/WINDOW) and refuses a PR that changes a
path under any `FREEZE: <prefix> token=<t>` line. Only the freeze's holder
merges into it, with --freeze-token; --override never lifts a freeze. A WINDOW
that cannot be read refuses and says to check with the coordinator. Tests read
a local WINDOW through GH_MERGE_GREEN_WINDOW_FILE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(gh-merge-green): the merged head must pass the god-file check and vp check (red)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(gh-merge-green): check the merged head's god files and vp check before a feat-cmux-next merge

#18326 grew a type past the god-file limit while an unrelated lint red hid the
god-file step. Before a feat-cmux-next merge, gh-merge-green now merges the
PR head into the current base locally and runs, on that merged tree:
- the Swift god-file check (--only swift --base <base>) when the PR changes
  Packages/macOS/CmuxNext, using the base branch's copy of the script and
  baseline so a PR cannot loosen its own check;
- vp check in webviews/ (bun install --frozen-lockfile --ignore-scripts) when
  the PR changes webviews/.
A fork PR, a failed fetch, a moved head or a merge conflict refuses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(gh-merge-green): a vp check red already on the base must not block a web PR (red)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(gh-merge-green): a vp check red the base already has does not block a web PR

When the merged head fails vp check, gh-merge-green checks the base tree with
the same install and refuses only for files the base does not flag. A red
already on the base is printed as a note naming its files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(gh-merge-green): a WINDOW token merge must mail RELEASE with the landed SHA (red)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(gh-merge-green): mail RELEASE <AREA> with the landed SHA after a WINDOW token merge

--window-token TOKEN (repeatable) and --freeze-token name the WINDOW tokens a
merge lands under. Before merging, each must be current: an [AREA] section's
token: or a hold line's token= (PKG ...). Right after the merge gh-merge-green
reads the merge commit and writes a RELEASE <AREA>: #N landed <sha> mail to
cmux-lawrence:~/agent-mailbox/inbox/lawrence-coordinator (atomic tmp + mv).
If the mail fails, it exits non-zero and prints the text to send by hand.
Lawrence's coordinator had missed a manual RELEASE mail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(gh-merge-green): a test run must never mail the real coordinator inbox (red)

Two runs of the freeze-token test mailed fake RELEASE FREEZE: #42 into the
real lawrence-coordinator inbox. Under test, or with a local WINDOW file, a
token merge without GH_MERGE_GREEN_MAILBOX_DIR must refuse before merging and
never run ssh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(gh-merge-green): tests can never mail the real coordinator inbox

The freeze-token test ran with no mailbox override, so each run mailed a fake
RELEASE FREEZE: #42 to the real lawrence-coordinator inbox over ssh. Now:
- under GH_MERGE_GREEN_TEST, or with a local GH_MERGE_GREEN_WINDOW_FILE, a
  token merge without GH_MERGE_GREEN_MAILBOX_DIR refuses before merging, and
  the send site refuses again (fail closed);
- under GH_MERGE_GREEN_TEST the WINDOW is never read over ssh;
- the test module sets GH_MERGE_GREEN_TEST and a temp mailbox for every run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(gh-merge-green): a test helper crash the base also has is base-owned (red)

A swift test whose test helper dies on a signal names different in-flight
tests and crashed-thread frames each run, so the head's crash never
matched the base's and gh-merge-green refused it without --override.
Same signal on the base's latest verdict run means the base owns it; a
crash the base lacks, another signal, or a pre-crash red the base lacks
still blocks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(gh-merge-green): excuse a test helper crash the base also has

base_red_excuse.py reads the signal a test helper died on from SwiftPM's
"exited with unexpected signal code N" line or the hang sampler's
"the test helper died on signal N" error. Those crash lines and the
unfinished-test list are no longer compared, since they differ run to
run; instead the base's job must have died on the same signal. Failed
steps and any test red before the crash are still compared, and the
audit line names the signal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 10, 2026
rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 10, 2026
e63ec95 fix(build): drop the app import from the remote tmux CLI test (manaflow-ai#18945)
edfc09c Merge pull request manaflow-ai#18950 from manaflow-ai/codex/revert-coderouter-handoff
608722c Revert "Merge pull request manaflow-ai#10194 from manaflow-ai/task/coderouter-native-handoff"
5cca480 Merge pull request manaflow-ai#10194 from manaflow-ai/task/coderouter-native-handoff
c867c77 fix: preserve CodeRouter peer context through async loop
7bb42ac Merge origin/main into CodeRouter handoff
16ae2a6 feat: open CodeRouter guide as a pane
5f98c98 feat: open CodeRouter guide as a pane
c7dd9ea feat: add CodeRouter help guide
1f026c7 CodeRouter handoff: meet current CI and package conventions
e231560 Merge remote-tracking branch 'origin/main' into native-handoff-merge
0f273d5 Merge main into the CodeRouter native handoff
f60f20e Merge main and preserve CodeRouter and Cloud diagnostic strings
b193fb8 Merge current main and preserve CodeRouter handoff transport
cf6a2a4 Merge main into CodeRouter native handoff
39f48e8 Move CodeRouter launch contract into shared package
e6f9d38 Fix CodeRouter release and naked alias contracts
b0ce78a Harden CodeRouter dogfood and OAuth callbacks
94e0a6d Make CodeRouter probe timeout test deterministic
d06b73d Fix CodeRouter Linux clippy gate
db4a2ec Fix CodeRouter workflow runner policy
7edbfcd Merge remote-tracking branch 'origin/main' into task/coderouter-native-handoff
4131be6 Publish CodeRouter source and release workflows
a9f05c7 Add 'coderouter/' from commit '6f63614e36ddf91b457eb3c25d8430a7875c750d'
6f63614 Fix interactive login terminal lifecycle
09b1462 Add secure native CodeRouter handoff
130ff4e Add secure CodeRouter handoff v2
cebaf60 Fix CodeRouter release test coverage
757897c Harden handoff descriptor and origin trust
c98aac3 Set coordinated handoff exchange timeout
6a7b9ba Harden handoff expiry and credential isolation
da6f3b2 Require EOF for handoff frames
46d7273 Tighten handoff child environment
311d27a Disable redirects during handoff exchange
f4dde33 Reject closed-pipe handoff trailing bytes
672f5b0 Add hosted CodeRouter handoff client
e3b205d Harden CodeRouter handoff authorization boundaries
2bb80ab Add native CodeRouter handoff from cmux
6da3e94 Add credential-free capabilities contract (manaflow-ai#50)
4910fde Use coderouter in CLI help and errors (manaflow-ai#49)
169be31 Add privacy-safe CodeRouter CLI analytics (manaflow-ai#48)
64da26c Add durable CodeRouter organization switching (manaflow-ai#46)
3dae4f0 Align public package provenance metadata (manaflow-ai#44)
2799924 Fix stable clippy and cut 0.2.1 (manaflow-ai#42)
d0e1915 Prepare verified public CLI distribution (manaflow-ai#41)
e15c881 Record live annual Pro and Team validation (manaflow-ai#39)
efe2d10 Snapshot CLI fault guidance matrix (manaflow-ai#34)
e9a1bc0 Harden coderouter retries and diagnostics (manaflow-ai#32)
fd00e47 Support self-hosted servers and TUI cancellation (manaflow-ai#24)
ea6b259 Use Codex-compatible Pi serialization safely (manaflow-ai#22)
7d0aa73 Force cr opencode through routed models (manaflow-ai#21)
c4748bc Fix Pi model discovery and cache wording (manaflow-ai#20)
f75d9e7 Complete coderouter private beta CLI and runbooks (manaflow-ai#19)
ada2d5a Use the coderouter tagline consistently (manaflow-ai#14)
931a79b Use route tokens for fast lowercase coderouter status (manaflow-ai#13)
a589857 Show progress throughout remote operations (manaflow-ai#12)
0c60e61 Show delayed status spinner and Spark usage (manaflow-ai#11)
47d0755 Render CodeRouter status like Subrouter (manaflow-ai#10)
ad75b92 Use the official Codex OAuth callback ports (manaflow-ai#9)
197345c Match Codex OAuth percent encoding exactly (manaflow-ai#8)
bc1c8e8 Match the official Codex OAuth request (manaflow-ai#7)
e782840 Add an interactive enter-code login flow (manaflow-ai#6)
19a479a Keep timing diagnostics out of CodeRouter output (manaflow-ai#5)
9e73f49 Use Ratatui and route directly through Vercel (manaflow-ai#4)
e386396 Isolate CodeRouter auth and agent state (manaflow-ai#3)
828751b Make bare CodeRouter show quota usage (manaflow-ai#2)
70c631c Focus CodeRouter on hosted Codex subscriptions (manaflow-ai#1)

This branch was successfully deployed

2 active deployments
Preview – cmux — bd54d062 Deployed Feb 17, 2026 by vercel[bot]
Preview – cmuxterm-docs — bd54d062 Deployed Feb 17, 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