Skip to content

feat: add a static UI iteration mirror - #17852

Closed
azooz2003-bit wants to merge 1 commit into
feat/terminal-image-paste-previewfrom
feat/ui-iteration-mirror
Closed

azooz2003-bit wants to merge 1 commit into
feat/terminal-image-paste-previewfrom
feat/ui-iteration-mirror

Conversation

@azooz2003-bit

@azooz2003-bit azooz2003-bit commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

What changed

CI already drives cmux with JSON dogfood tours and captures screenshots, accessibility trees, and step logs, but reviewing those artifacts still requires opening individual files. This adds a static cmux UI mirror: e2e-frames.py now emits index.html and mirror.json beside every extracted run.

The mirror has a searchable test list, per-action timeline, large screenshot viewer, keyboard navigation, contact sheets, failures, accessibility trees/logs, and inline text attachments. It also renders GIF/MP4/MOV clips inline, so it is ready for the recording-step work in #15320. It works from file:// with no server, package install, or app build. The ui-frames CI artifact now links from the job summary and includes the mirror automatically.

This is stacked on #15834, so a pushed app build plus a new JSON dogfood tour can produce a reviewable frontend iteration artifact without recompiling on a developer machine.

Changelog

  • Added: a static UI mirror for reviewing cmux interaction screenshots and evidence.

Validation

  • python3 tests/test_ui_mirror.py
  • python3 tests/test_ci_e2e_compilation_cache.py
  • python3 tests/test_run_e2e.py
  • Python AST parsing for the changed scripts
  • git diff --check

No Xcode, Swift compiler, app build, app launch, or restart was run for this PR.


Migrated from #15853 after correcting the PR author identity. The head branch and commit history are preserved.


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


Summary by cubic

Adds a static UI mirror so cmux E2E runs can be reviewed in a browser without opening individual screenshot, log, or attachment files. e2e-frames.py now emits index.html and mirror.json beside every extracted run, and the CI job summary links the mirror artifact directly.

New Features

  • ui-mirror.py generates a local-first, dependency-free HTML app with a searchable test list, step timeline, large screenshot viewer, contact sheets, failures, and inline text attachments (works from file:// with no server or build).
  • Mirror supports inline GIF/MP4/MOV clips, ready for the upcoming recording-step work.

Migration

  • The ui-frames CI artifact now includes the mirror automatically; no developer-machine recompile or app build is needed for review.

Written for commit 2fdefe5. Summary will update on new commits.

Review in cubic Turn on auto-fix

@coderabbitai

coderabbitai Bot commented Oct 6, 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: a22ca13b-e9c6-4aa8-aa03-563b27338d89

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
  • Autopilot · 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 6, 2026

Copy link
Copy Markdown
Contributor

Probably yours: Fast static checks failed: a static check failed, FAILED feature-flags (1.42s).

CI failed on 2fdefe5369 (run 37524791606 attempt 1): 1 code, 1 unknown.

Job Verdict Why
Fast static checks code a static check failed
guards / workflow-guard-tests / preflight unknown no known signature; failed step: Validate Python test execution registry
Matched log lines
Fast static checks: FAILED feature-flags (1.42s)

Not re-run automatically: Fast static checks, guards / workflow-guard-tests / preflight are not machine failures.

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.

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.

2 participants