Skip to content

webviews: base red: clear the four home-channels lint warnings - #20641

Merged
teamleaderleo merged 6 commits into
feat-cmux-nextfrom
cx-base-red-home-channels-fmt
Oct 14, 2026
Merged

teamleaderleo merged 6 commits into
feat-cmux-nextfrom
cx-base-red-home-channels-fmt

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

bun run check on feat-cmux-next fails with four lint warnings in webviews/src/pages/home-channels, so CI / web / react-apps-check is red on every feat PR. Lawrence's follow-ups (76e796a, 24fc162) already fixed the formatting, ui-rules and gallery coverage failures this PR first targeted. This PR now changes only these four:

  • The hidden file input gets a label from the existing attach.add string. No new strings.
  • The uploads memo is keyed on the open conversation's id (exhaustive-deps). It already recomputed only on open?.id.
  • Two oxlint-disable comments, each with a reason:
    • the attachment <video>: it plays the user's own file, which has no caption track;
    • the styled upload bar: it keeps role="progressbar".

Verification

On the Linux builder, at feat-cmux-next 7d041f1 plus this change:

  • bun run check exits 0 with "Found no warnings, lint errors, or type errors in 1330 files".
  • bun test test/ui-rules.test.ts test/gallery-coverage.test.ts src/pages/settings/categories.test.ts: 16 pass.

Without the change, bun run check fails with the four warnings.

Changelog

none

🤖 Generated with Claude Code

@cursor

cursor Bot commented Oct 14, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 2f859604-ad8f-4ba6-824d-29ae59e5033f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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 Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Gallery

Review in feed

8 states changed: pages.home-channels/thread-long, pages.home-channels/add-channel, pages.home-channels/attachments-composer, pages.home-channels/composer, pages.home-channels/pin, ... · 4 play checks failed

Diff page and renders (the run's gallery-pr artifact)

State Before · after
pages.home-channels/thread-long (Apple System Colors Light, webkit)
pages.home-channels/add-channel (Apple System Colors, chromium)
pages.home-channels/attachments-composer (Apple System Colors, webkit)
pages.home-channels/composer (Apple System Colors, webkit)
pages.home-channels/pin (Apple System Colors, chromium)
pages.home-channels/pin-refused (Apple System Colors Light, chromium)

2 more on the diff page.

Live preview (follows this branch; start it with scripts/gallery-live.sh up <branch> from an hq checkout):

  • pages.home-channels/thread-long: /wt/cx-base-red-home-channels-fmt/?entry=pages.home-channels#/pages.home-channels/thread-long
  • pages.home-channels/add-channel: /wt/cx-base-red-home-channels-fmt/?entry=pages.home-channels#/pages.home-channels/add-channel
  • pages.home-channels/attachments-composer: /wt/cx-base-red-home-channels-fmt/?entry=pages.home-channels#/pages.home-channels/attachments-composer
  • pages.home-channels/composer: /wt/cx-base-red-home-channels-fmt/?entry=pages.home-channels#/pages.home-channels/composer
  • pages.home-channels/pin: /wt/cx-base-red-home-channels-fmt/?entry=pages.home-channels#/pages.home-channels/pin
  • pages.home-channels/pin-refused: /wt/cx-base-red-home-channels-fmt/?entry=pages.home-channels#/pages.home-channels/pin-refused
  • 1 more on the diff page

Play checks failed (0 px anchor movement, 0 layout shift, no frame over 33 ms unless the entry gives a reason):

  • pages.home-channels/pin-refused (Apple System Colors, chromium): step 2 click menuitem "Pin": layout shift 0.0554 (limit 0.05)
  • pages.home-channels/pin-refused (Apple System Colors Light, chromium): step 2 click menuitem "Pin": layout shift 0.0554 (limit 0.05)
  • pages.home-channels/emoji-return (Apple System Colors Light, chromium): step 2 type "rocket": layout shift 0.2037 (limit 0.05)
  • pages.home-channels/emoji-return (Apple System Colors Light, chromium): step 2 type "rocket": layout shift 0.0569 (limit 0.05)
  • pages.home-channels/emoji-return (Apple System Colors, chromium): step 2 type "rocket": layout shift 0.0569 (limit 0.05)
  • pages.home-channels/hover (Apple System Colors, chromium): step 1 hover .lg-main .hc-msg.head: 1 frame(s) over 33 ms (longest 70.4 ms)
  • 1 more on the diff page

29 nondeterministic states differed from a second render of the same head (a clock or fixture leak) and are not counted as changes.

163 unchanged · base 1746e00 · head 3793d79

@blacksmith-sh

This comment has been minimized.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

all web/size checks green

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Passes: CI passes on 3793d795ff.

CI passes on 3793d795ff (run 38584946789 attempt 2).

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; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards passes on 3793d795ff (https://github.com/manaflow-ai/cmux/actions/runs/38584946789). This covers only the fast guards, not CI: CI's result is the ci-status check, and the CI failure attribution comment names any failing test.

…ings

The channels attachment merges (cx-hnmbt.15/.16) left five home-channels
files unformatted and four lint warnings, which fail `bun run check` and the
react-apps-check job on every feat-cmux-next PR. Format them, label the
hidden file input with the existing attach.add string, key the uploads memo
on the open conversation's id, and note why the attachment video has no
caption track and the upload bar keeps role=progressbar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo force-pushed the cx-base-red-home-channels-fmt branch from 80ad090 to a55cac9 Compare October 14, 2026 14:07
The attachment merges also failed two ui-rules tests and gallery coverage.
The lightbox's arrow keys go through ui/KeyboardScope (a display: contents
wrapper, so the bar and stage stay the dialog's flex items) instead of a raw
onKeyDown, and the hidden file input drops tabIndex (a hidden input is not
focusable). The three new attachment components get allowlist lines until
their gallery entries land.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo teamleaderleo changed the title webviews: base red: format home-channels and clear its four lint warnings webviews: base red: home-channels format, lint, ui-rules and gallery coverage Oct 14, 2026
…red-check

# Conflicts:
#	webviews/src/pages/home-channels/AttachmentViews.tsx
#	webviews/src/pages/home-channels/HomeChannelsPage.tsx
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 14, 2026 14:53 — with GitHub Actions Inactive
teamleaderleo and others added 2 commits October 14, 2026 07:55
Lawrence's channels follow-ups (76e796a, 24fc162) fixed the
formatting, ui-rules and gallery coverage reds on base. This merge takes
base for all of that. What remains is the four lint warnings: the label on
the hidden file input, the uploads memo keyed on the open id, and the two
reasoned disables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The previous merge took its tree from an older base snapshot than its
second parent, so it reverted base's Swift changes. This tree is that parent
plus only the four home-channels lint fixes.

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

cursor Bot commented Oct 14, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@teamleaderleo teamleaderleo changed the title webviews: base red: home-channels format, lint, ui-rules and gallery coverage webviews: base red: clear the four home-channels lint warnings Oct 14, 2026
@blacksmith-sh

This comment has been minimized.

@teamleaderleo
teamleaderleo merged commit 8996714 into feat-cmux-next Oct 14, 2026
126 of 130 checks passed
@teamleaderleo
teamleaderleo deleted the cx-base-red-home-channels-fmt branch October 14, 2026 15:45
teamleaderleo added a commit that referenced this pull request Oct 14, 2026
teamleaderleo added a commit that referenced this pull request Oct 14, 2026
teamleaderleo added a commit that referenced this pull request Oct 14, 2026
…x-s7004) (#20537)

* cmux-next Home: vendor MessagesLab pin 7924f00 (main 104b27b): soft copies (cx-cfc6v)

Pin 7924f00 (cx-3cb soft-copies, code 13f9b47): a just-sent balloon stays
crisp in flight and after landing and goes soft at delivered/read/failed
(RowCell.crispEdge, MessagesWindowView.crispSends, at most 64 rows); long-text
tiles use the soft mask; thread copies use SoftBalloon.clip; RowCell
bitmapCleared. Home's context-menu highlight (Cmux/PaneMenu.swift
MenuHighlight) takes the soft mask on my text balloon, as Host.swift. All 20
cmux: patches apply unchanged (sync --check 7924f00 + 20 patches).

* test(next): Copy Agent Identifier copies a chat's acpmux session id (cx-s7004)

Red: no agentChat.copyIdentifier action yet.

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

* Home pin 7924f00 (review): a crisp send goes soft when its message is past sent in the new state, not only on its own status action (cx-cfc6v)

* feat(next): Copy Agent Identifier on a chat's tab, sidebar row, chat menu and palette (cx-s7004)

Copies the chat's acpmux session id, the id acpmux send and cmux agent
message take: the first slice of cross-session messaging. Left out of
the menus of other tabs and of a new chat with no session yet.

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

* test(next): Copy Agent Identifier on the workspace row that shows a chat's summary (cx-s7004)

Red: the workspace row's menu does not offer it yet.

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

* feat(next): Copy Agent Identifier on the workspace row that shows a chat's summary (cx-s7004)

The row copies the chat its summary line shows: the front tab's chat,
else the first started chat. Left out for a workspace with no chat.

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

* test(next): Copy Agent Identifier tests record the copy, not the general pasteboard (cx-s7004)

A headless fleet host cannot reach NSPasteboard.general, so the copy
read back nil there. The handler takes the write as a parameter
(default context.copy), as BrowserHitHandlers does.

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

* test(next): the workspace row copies the chat its summary shows (cx-s7004)

Red: in a workspace no window shows, the row copies the first chat
instead of the pane's selected one that its summary line shows.

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

* fix(next): the workspace row copies the chat its summary shows (cx-s7004)

SidebarMapping.rowChat is the one rule for the row's chat: the summary
line and Copy Agent Identifier both read it, by the window's tab
selection, else the pane's default tab.

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

* chore(next): PR autofix at 6beb643

- regenerated plans/cmux-next/action-surfaces.json
- regenerated plans/cmux-next/actions.md
- regenerated schemas/defaults/cmux-next.json

Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38545195473

* chore: regenerate action exports for Copy Agent Identifier

Fleet export-action-surfaces.sh on ff5ff47; the CI exports job was refused by its runner hook.

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

* chore(next): PR autofix at f226fc9

- regenerated plans/cmux-next/actions.md

Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38567836363

* WIP cloud attachments (cx-hnmbt.17)

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

* chore: regenerate action exports for Copy Agent Identifier

Fleet export-action-surfaces.sh on the merged head.

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

* rustfmt

* clippy

* rustfmt

* Review fixes: disk reads outside the store lock, chunks off the cloud pool, URL and header checks, no redirects, bounded range reads, lease-bound URLs and links, 404 not retried, served type allow list

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

* test(cmux-tui): an agent caller cannot control or raw-write a Chief (red, cx-ebm.60.9)

chief engine with a change, chief stop, raw operation chief.* writes and
raw command chief.* writes refuse an agent caller with the layer 1 shape.

* rustfmt

* fix(cmux-tui): chief engine/stop and raw chief.* writes refuse an agent caller (cx-ebm.60.9)

Layer 1 now covers every CLI path to a Chief write: cmux chief engine with
a change, cmux chief stop, and cmux raw operation|command naming a chief.*
operation other than the four reads. Same origin.forbidden / agent_caller /
marker shape; details.refused names the word or the operation. The test's
last assertion reads the person's update result at value.role (the raw
mutation answer shape).

* CmuxNext tests: use AgentTabStore build: label in SpareNewTabChatOpensTabsTests

677f1e1 renamed the AgentTabStore init label from tag: to build:.
This test still used tag:, so the CmuxNext test target did not compile.

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

* ci: keep cmux-tui dogfood builds and daemon tests off the nightly Blacksmith label (#20661)

* test: cmux-tui macOS routes never take the nightly label

Evaluates the dogfood build, the cmux_next_ daemon tests and the artifact
build legs' runner expressions against the repository variables for every
owner, event, ref and attempt. Fails on the current routes: each reaches
vars.MACOS_RUNNER_PR (blacksmith-12vcpu-macos-26), the label the nightly app
build needs.

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

* ci: keep cmux-tui macOS jobs off the nightly Blacksmith label

The dogfood build in cmux-tui.yml now takes Blacksmith macOS 15 on every
attempt instead of vars.MACOS_RUNNER_PR (blacksmith-12vcpu-macos-26, the
label the nightly app build needs). It still never takes the side label,
where it queued until the run was cancelled (#20612).

cmux-tui-artifacts.yml's cmux_next_ daemon tests stay on the owned side
label on every attempt of a trusted event, a cmux-tui-pin-* push and a
cmux-tui-artifacts-retry re-run included; a re-run used to fall through to
vars.MACOS_RUNNER_PR. The build legs' re-run route is Blacksmith macOS 15.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* ci: cmux NIGHTLY-identity notarization resumes instead of resubmitting (cx-x7hwx)

hq-a3 decision 2026-10-14: Apple holds submissions for hours, and every
retry re-signed the copy and threw the earlier submission away.
- The job waits 20 min, as cmux NEXT (#20518). A submission still in Apple's
  queue is kept as the artifacts cmux-nightly-identity-pending-meta and
  -bundle (signed DMG, app, notary state, build) and is not a failure.
- legacy-identity-target continues the newest pending submission first while
  its build is newer than the old feed and it is under 6 hours old; only then
  does the newest cmux NEXT build get a new submission.
- Continue mode asks Apple once about that exact DMG
  (notarize-nightly-dmg.sh CMUX_NOTARY_CONTINUE_STATE, as the cmux NEXT
  recovery does): Accepted -> staple, the same spctl/smoke/metadata checks,
  publish; Invalid/Rejected -> retire it and count a failure; In Progress ->
  keep it.
- Only real failures count: the issue comment is now "Build N failed:", so
  timeout comments (issue #20668) never stop a build's retries.
- The temporary 150-min wait variable (cx-vvnnv) is gone; the job limit is 60 min.
notarize-nightly-dmg.sh's continuation is used rather than cmux-browser's
notary-submit-wait.py: it already resumes by state file and runs the same
staple/spctl/smoke/metadata checks.

* ci: cmux NIGHTLY-identity continues only its own nightly-next runs' submissions; real failures only (cx-x7hwx)

Review P1: the pending lookup accepted an artifact of any run, including a
fork's pull request; only this repository's nightly.yml runs on nightly-next
count now, checked again before the download. P2s: an error before Apple
answers about a continued submission is a warning, not a counted failure; a
submission Apple answered for is retired even when a later check failed; the
job limit is 75 min.

* chore(next): PR autofix at 987629c

- regenerated Packages/macOS/CmuxNext/ci-target-graph.json

Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38589457408

* fix(cmux-tui): review fixes for the agent-caller Chief control refusal (cx-ebm.60.9)

Also refused for an agent caller: cmux chief shutdown, the chat's /model,
/effort and Ctrl+C (a note, no call), and the app actions home.newChief,
home.archiveChief and home.stopChief by id or CLI name, before any
connection. The refusal names cmux raw operation <op>. The test proves the
refusal comes before any connection (no socket: same refusal, not exit 3),
asserts the daemon's own answer for the reads, and covers chief.engine.get
and chief.profile.avatar.get.

* webviews: base red: clear the four home-channels lint warnings (#20641)

* webviews: base red: format home-channels and clear its four lint warnings

The channels attachment merges (cx-hnmbt.15/.16) left five home-channels
files unformatted and four lint warnings, which fail `bun run check` and the
react-apps-check job on every feat-cmux-next PR. Format them, label the
hidden file input with the existing attach.add string, key the uploads memo
on the open conversation's id, and note why the attachment video has no
caption track and the upload bar keeps role=progressbar.

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

* webviews: base red: home-channels ui-rules and gallery coverage

The attachment merges also failed two ui-rules tests and gallery coverage.
The lightbox's arrow keys go through ui/KeyboardScope (a display: contents
wrapper, so the bar and stage stay the dialog's flex items) instead of a raw
onKeyDown, and the hidden file input drops tabIndex (a hidden input is not
focusable). The three new attachment components get allowlist lines until
their gallery entries land.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore: regenerate action exports for Copy Agent Identifier

Fleet export-action-surfaces.sh on the merged head.

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

---------

Co-authored-by: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: cmux-autofix[bot] <cmux-autofix[bot]@users.noreply.github.com>
Co-authored-by: safe-push <safe-push@cmux.local>
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