Repository navigation
cmux NEXT: a chat's file changes open on the right at every width; no branch error outside a repository - #29672
Conversation
…ws no branch error Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
… folder outside a repository shows no branch error The in-page changes view (a folder outside a repository, or a turn that wrote outside it) sat beside the transcript only in a pane 1160px wide or more and covered the chat below that. It now sits on the right at every width. Its status read treats not_a_repository as no Commit/Push, not a failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a Passes: CI passes on CI passes on Written by web and size checks: green Shipped in:
|
|
Owned by an agent session · session |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (codex gpt-6-astra high, next-review): SHIP at 3d5f7fa SHIP at 3d5f7fa Visual verdict: The 16 supplied after/before gallery pairs are pixel-identical and contain no changes-panel state, so the new split is not visually exercised.
Follow-ups:
|
|
Awareness note from an agent lane that does not own this PR; it is not a review or a request to take the PR over. Carried in #29904: this PR's commits unchanged, plus a base merge that resolves the styles.css conflict with #29618. That conflict blocked this PR from landing. This PR stays open for its owner to close. |
… no branch error outside a repository (#29904) * test: the changes view opens right of the chat; a non-repo folder shows no branch error Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64 * cmux NEXT: the changes view opens right of the chat at every width; a folder outside a repository shows no branch error The in-page changes view (a folder outside a repository, or a turn that wrote outside it) sat beside the transcript only in a pane 1160px wide or more and covered the chat below that. It now sits on the right at every width. Its status read treats not_a_repository as no Commit/Push, not a failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64 * style: format Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64 * test: the edited card's diff opens on the right on a narrow pane too Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64 * agent pane changes: the file tree gives way by the panel's width, not only the window's Beside the transcript the in-page changes view can be ~320px of a 640px pane; the 250px tree hid only by viewport width, leaving the diff ~70px. The panel is now a named inline-size container and the tree (and file headers' folder) hide when the panel itself is 620px or narrower. Review (codex gpt-6.1-sol xhigh) BLOCK at 70b1865. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-5fdf0c7ee997e9834656 * changes view: a folder outside a repository is checked again on each scope load and Refresh Review (codex gpt-6.1-sol xhigh) BLOCK at 905340a: with no-repository latched, Commit and Push (and the status Refresh) stayed hidden after a git init until the view was reopened. useGitWrite gains recheck(), which rereads git.status only while the folder was found outside a repository. The chat's changes view calls it on each scope load (a scope switch, Refresh), the diff page on its Refresh. The error stays suppressed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-5fdf0c7ee997e9834656 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Awareness note from an agent lane that does not own this PR; it is not a review or a request to take the PR over. Landed as #29904 (this PR's commits plus a base merge resolving styles.css). |
# Conflicts: # webviews/src/agent-session/acpmux/changes/useGitWrite.ts # webviews/src/agent-session/acpmux/styles.css # webviews/test/agent-pane-changes-placement.test.tsx
|
Found 7 test failures on Blacksmith runners: Failures
|
A newer verdict blocks c7f5a27 (no independent SHIP at the head).
|
Review (codex gpt-6-astra high, next-review): SHIP at c7f5a27 SHIP at c7f5a27 Visual verdict: no images; Leo tries the build
Focused Bun tests could not run because Bun is unavailable in the review box. Follow-ups:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-10-31, on a screenshot of a chat's file-changes review drawn over the middle of the chat: "AND WHY THE FING DOES IT STILL NOT FING OPEN TO THE RIGHT". His placement rule from the same day: "just open it on the existing. you only need the rightmost bottom auto split when there's a terminal that gets opened when there's already a browser, and vice versa". In short, the changes open on the right, never over the chat.
Why it still floated
A chat's View changes has two paths (
openDiffinApp.tsx):diffBesideopens the folder's git diff in its own native pane right of the chat (Lawrence, 2026-10-13: "when i click diff viewer it opens in new pane to right"). That path works only when the chat folder is a repository and every file the turn wrote is inside it.~/Projects, which is not a repository, and the turn wrote to~/.claude/.../memory/*.md.The in-page view went beside the transcript only when the pane was at least 1160px wide (
@container (min-width:1160px)inheader/header.css, from #17556, "as in the Codex app"). In a narrower pane,styles.csshid the transcript and the chat header (visibility:hidden), and the panel (position:absolute; inset:0) covered the chat. Earlier right-side work (#28989 and #28044 on lower-right placement, #29080 on MCPopenplacement) changed only the native pane path, so it never reached this fallback. That is why the bug "still" showed.Changes
header/header.css: the in-page changes view sits right of the transcript at every width. The chat keeps 44% of the pane, and at least 320px when the pane is 640px or wider (--acpmux-review-chat). No container or media query decides this any more.styles.css: opening changes no longer hides the transcript or the chat header.git.status). For a folder outside a repository, the session host answersoperation.failedwithdetails.extra.code: not_a_repository, anduseGitWritetreated that as a failed read. NowisNoRepository(inchanges/gitWrite.ts) marks that answer as "no repository". The view then offers no Commit or Push and shows no error. Other failures (timeouts, git errors) still show the banner with Refresh. The native diff page uses the same hook and now behaves the same way.Test
webviews/test/agent-pane-changes-placement.test.tsx:.acpmux-reviewing>.acpmux-diff-panelrule sits at the top level, inside no@containeror@media, and places the panel at--acpmux-review-chat. The transcript gets the matching right margin..acpmux-reviewing>.acpmux-scrollor.acpmux-header.isNoRepositoryacceptsnot_a_repositoryand rejects timeouts and git failures.useGitWritewith anot_a_repositorystatus:statusFailedfalse andavailablefalse. With a timeout: stillstatusFailed.Command:
cmux-ci test -- bash -c 'cd webviews && bun test test/agent-pane-changes-placement.test.tsx test/diff-viewer-git.test.tsx test/changes-status.test.ts && bun run check'Observed / Not run
vp lintand the type check were clean.vp fmtflagged 2 files; b56ca15 formats them, andvp fmt --checknow passes.isNoRepositorydoes not exist there, and the CSS assertions describe rules the base does not have. I did not run it separately on the fleet.Risk: normal. Webview-only (CSS plus one hook). The in-page view now shares the pane with the chat in a narrow pane instead of covering it.
Changelog
Fixed: A chat's file changes open on the right, beside the chat, at every pane width, and a chat in a folder that is not a git repository no longer shows "The branch state could not be read."
Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the chat's file changes view so it always opens on the right, beside the transcript, instead of covering the chat in panes under 1160px wide. Also stops chats in folders that are not git repositories from showing a "The branch state could not be read" error.
not_a_repositorystatus read no longer counts as a failure: the view hides Commit and Push and shows no error, while timeouts and git errors still show the banner with Refresh.Written for commit 1a98382. Summary will update on new commits.