Skip to content

base red: web lint hook fixture pins stand-in lint tools; bounded stream in the Chromium page fake - #34430

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix--web-lint-base-red
Nov 4, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
fix--web-lint-base-red

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes three base reds on feat-cmux-next. All the changes are test fixtures or test support.

1. cmux-next web lint / web lint (fast) and cmux-next guards / tooling-tests (the "web lint pre-push hook" step). #34237 (9b2b57f) made the installed cmux-next gate refuse a hook install with no lint-tools.lock, which is correct. The web lint test fixture never committed a lock, so 32 fixture pushes failed with "the installed hook is older than the checks this push needs ... (it has no lint-tools.lock)". The fixture now commits a lock that pins no-op stand-ins for ast-grep, SwiftFormat and SwiftLint, and points CMUX_LINT_TOOLS_DIR at them. The gate still runs, and nothing is downloaded. Before #34237, this fixture ran the gate's scanners and skipped the pinned tools. The stand-ins find nothing, so the result is the same. TuiBindingsTests reuses that setUp, so it gets the stand-ins too.

2. Main-thread concurrency. #34250 added an AsyncStream.makeStream() with the default unbounded buffer in CmuxNextPagesTestSupport/FakeChromiumHosting.swift:44. It now uses bufferingPolicy: .bufferingNewest(1). Nothing yields to that stream, so its behaviour is unchanged.

Verified: python3 tests/test_web_lint_prepush.py ran on the fleet with bun set up: 103 tests OK, down from 32 failures on base. scripts/cmux-next/check-concurrency.sh Packages/macOS/CmuxNext passes.

Agent session: agent session

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes three base reds on feat-cmux-next with test-only changes.

  • The web lint fixture now commits a lint-tools.lock pinning no-op stand-ins for ast-grep, SwiftFormat, and SwiftLint so the installed gate accepts pushes without downloading anything.
  • The hanging-request stream in FakeChromiumHosting now uses bufferingPolicy: .bufferingNewest(1) to pass the main-thread concurrency check; nothing yields to it, so behavior is unchanged.

Written for commit 6c2bae1. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits November 3, 2026 16:35
…xt gate

#34237 made the installed gate refuse an install with no lint-tools.lock.
The web lint fixture copied no lock, so all 32 fixture pushes failed with
"the installed hook is older than the checks this push needs". The fixture
now commits a lock pinning no-op stand-ins and puts them in
CMUX_LINT_TOOLS_DIR, so the gate runs and nothing is downloaded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
#34250 added an AsyncStream.makeStream() with the default unbounded buffer,
which the Main-thread concurrency check refuses. Nothing yields to it, so
.bufferingNewest(1) changes no behaviour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent opus medium): SHIP at 6c2bae1

Checked: the fixture lock matches read_lock's 6-field format; the stand-in paths match ensure_tool's target under CMUX_LINT_TOOLS_DIR for all four platform keys; no web lint test depends on the gate refusing or on the lock being absent; bufferingNewest(1) is a valid API and is already used on base.
Visual verdict: unchanged by this diff (no UI).
Follow-ups: none

@teamleaderleo
teamleaderleo merged commit ceb35d2 into feat-cmux-next Nov 4, 2026
61 of 74 checks passed
@teamleaderleo
teamleaderleo deleted the fix--web-lint-base-red branch November 4, 2026 00:39
@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 6c2bae1: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr34430 -f ref=fix--web-lint-base-red -f platform=macos -f backend_mode=local

Not verified: macOS jobs did not run: compile and app tests were skipped on 6c2bae1e3f; ci-status is green without them.

CI passes on 6c2bae1e3f (run 41748431274 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

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.

Shipped in:

This branch was successfully deployed

No deployments
ci-routing-agent — 6c2bae1e Deployed Nov 4, 2026 by teamleaderleo via wait for same-key tree publisher #108261
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant