Skip to content

test: run the shared matrix's headless cases on the daemon core (cx-gkyi1) - #20253

Merged
teamleaderleo merged 4 commits into
feat-cmux-nextfrom
leo/model-matrix-core-2
Oct 13, 2026
Merged

teamleaderleo merged 4 commits into
feat-cmux-nextfrom
leo/model-matrix-core-2

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

Runs the shared matrix's headless cases (Packages/macOS/CmuxNext/Tests/Matrix/cases.json, landed in #20195) on the daemon core in process: mux::tests::matrix::matrix_cases_hold_on_the_core. This is part 2 of cx-gkyi1, and op-ci-tiers adds it to the fast tier once it lands.

For each headless case the runner seeds a preset (single, tabs3, split2, deep, ws3, ws20) through Mux::new_for_test and applies the case's core steps. After each step it checks:

  • Moves and zoom: tabs are conserved (layout_invariants::transition_problems).
  • Creates and closes: no new reducer state violations (check_state), so no empty pane and no tab placed twice.
  • Expectations: each step's own expectations and the case's final ones hold (order, counts, selection, focus, zoom).

It has no clock, no sleeps, no window server and no daemon process. Every failure starts with MATRIX <id>:. The test skips when Packages/macOS/CmuxNext is missing, which happens in cmux-tui-only checkouts.

move_tab cases give the final index, as the app does. The runner converts it to the core's insert-before index with the same rule as TabMoveIndex.wireIndex. $new resolves to the newest object created, which is the one the app selects after a burst of creates.

Verification

  • Focused hosted run 38358702632 on 2ea4bce: lint (Linux) passed, and the matrix test passed on Linux and macOS (macOS: 1 passed in 1.05 s).
  • The first run (on bbd3dd6) failed 32 of 59 cases. All of them were runner mistakes: it checked conservation on creates and closes, used the wrong move_tab index meaning, and picked the wrong $new. None was a product bug.
  • Not run: the Windows cargo check. The file is #[cfg(test)]-only.

Changelog

none

🤖 Generated with Claude Code


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


Summary by cubic

Runs the shared matrix's headless cases (Packages/macOS/CmuxNext/Tests/Matrix/cases.json) on the daemon core in-process, so model behavior gets verified without a daemon process, clock, or window server.

  • Seeds each headless case's preset (single, tabs3, split2, deep, ws3, ws20) into a test Mux and applies the case's core steps through the topology operations the daemon serves.
  • Checks tab conservation on moves and zooms, and reducer state invariants on creates and closes; failures are prefixed with MATRIX <id>:.
  • move_tab steps give the final tab index, converted to the core's insert-before index; $new resolves to the newest created object.
  • Cases that would pass vacuously are rejected: each headless case needs core steps and paired step expectations, and a missing id, by, or zoom mode is an error.
  • The test skips when Packages/macOS/CmuxNext is absent, as in cmux-tui-only checkouts.

Written for commit 68070e9. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits October 12, 2026 23:45
…kyi1)

mux::tests::matrix reads Packages/macOS/CmuxNext/Tests/Matrix/cases.json,
seeds each headless case's preset on an in-process Mux, runs its core
steps through the topology operations the daemon serves (new workspace,
split, close pane, zoom, tab moves within and between panes and
workspaces, tab to new split or workspace), checks the daemon's own
layout transition rules after every step, then the case's expectations.
Failures name the case: "MATRIX <case id>: ...". A cmux-tui tree without
the app beside it (a published tree) has no case file and skips.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Creates and closes keep the per-state invariants; move_tab takes the final
index the app sends; $new is the newest object created.

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

cursor Bot commented Oct 13, 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.

@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 13, 2026 08:25 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Oct 13, 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: bcf694c8-6e84-46e9-85ea-966361234e80

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.

Headless cases need core steps and paired step expectations; a missing
id, by or zoom mode is an error; a pane moves to a new workspace tab by
tab through move-tab-to-workspace, as the app does.

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

This branch was previously deployed

2 inactive deployments
artifacts — 68070e94 Deployed Oct 13, 2026 by teamleaderleo via mark the published tree as daemon-tested #10548
cmux-tui-merge-tree — 68070e94 Deployed Oct 13, 2026 by teamleaderleo via publish the merge tree #408
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