Skip to content

Re-enable FileExplorerStore XCTest in CI - #5682

Merged
lawrencecchen merged 1 commit into
mainfrom
feat-reenable-file-explorer-store-test
Jun 9, 2026
Merged

lawrencecchen merged 1 commit into
mainfrom
feat-reenable-file-explorer-store-test

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Jun 9, 2026 •

Copy link
Copy Markdown
Contributor

Restores coverage for the last explicit XCTest method exclusion in .github/workflows/ci.yml.

Flaky path:

  • Workflow/job: CI / tests
  • Test: cmuxTests/FileExplorerStoreTests/testRemoteWorkspaceRootRequestResolvesSSHHomeInsteadOfKeepingLocalPath
  • Failure signature: unavailable in current CI because the method was excluded with -skip-testing:. The original quarantine came from app-host unit runner hangs and post-test XCTest cleanup issues.

Coverage preserved:

  • Removes the -skip-testing: exclusion from the Run unit tests xcodebuild invocation.
  • Adds a workflow guard that fails if ci.yml grows another -skip-testing: XCTest quarantine.
  • No skips, disables, or assertion weakening.

Before:

  • Attempts: current main CI runs execute the tests job, but this one method is excluded.
  • Reliability: 0 active attempts for this method while excluded.
  • Timing: recent main tests jobs with the exclusion: 42m13s, 24m04s, 25m05s, 21m18s, 22m10s from GitHub Actions run list.
  • Data source: .github/workflows/ci.yml, GitHub Actions CI run history.

After:

  • Attempts: pending hosted CI on this PR.
  • Reliability: pending hosted CI on this PR.
  • Timing: pending hosted CI on this PR.
  • Data source: pending hosted CI on this PR.

Local verification:

  • bash tests/test_ci_self_hosted_guard.sh
  • git diff --check

Related context:

No tagged reload: CI/workflow-only change.


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Note

Low Risk
Workflow-only change; main risk is CI flakiness or hangs if the previously quarantined app-host test still misbehaves on macOS runners.

Overview
Removes the -skip-testing: quarantine for FileExplorerStoreTests/testRemoteWorkspaceRootRequestResolvesSSHHomeInsteadOfKeepingLocalPath so that method runs again in the tests job’s full cmux-unit xcodebuild test invocation.

Adds check_no_ci_xctest_skips in test_ci_self_hosted_guard.sh (already run by workflow-guard-tests) so ci.yml cannot reintroduce per-method XCTest exclusions via -skip-testing:.

Reviewed by Cursor Bugbot for commit 0ea3e1f. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Re-enabled the excluded XCTest in CI by removing the -skip-testing: for cmuxTests/FileExplorerStoreTests/testRemoteWorkspaceRootRequestResolvesSSHHomeInsteadOfKeepingLocalPath. Added a guard in tests/test_ci_self_hosted_guard.sh that fails if .github/workflows/ci.yml contains any -skip-testing: entries.

Written for commit 0ea3e1f. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Tests
    • Re-enabled a previously excluded unit test in continuous integration.
    • Added a regression check to prevent unit test exclusions in CI configuration.

@vercel

vercel Bot commented Jun 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Jun 9, 2026 6:05am
cmux-staging Building Building Preview, Comment Jun 9, 2026 6:05am

@coderabbitai

coderabbitai Bot commented Jun 9, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 95884bbe-bb64-4260-b0d4-74ea546e860f

📥 Commits

Reviewing files that changed from the base of the PR and between 21b3a20 and 0ea3e1f.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • tests/test_ci_self_hosted_guard.sh
💤 Files with no reviewable changes (1)
  • .github/workflows/ci.yml

📝 Walkthrough

Walkthrough

The PR removes a specific XCTest method from the CI workflow's skip list, causing it to execute during unit tests. It simultaneously adds a regression guard script that prevents any -skip-testing entries from being reintroduced into the workflow configuration.

Changes

XCTest Skip Removal and Guard

Layer / File(s) Summary
Remove test skip from CI workflow
.github/workflows/ci.yml
The FileExplorerStoreTests/testRemoteWorkspaceRootResolvesSSHHomeInsteadOfKeepingLocalPath test is removed from the xcodebuild -skip-testing exclusion list, enabling it to run in the macOS unit-test job.
Add and wire XCTest skip regression guard
tests/test_ci_self_hosted_guard.sh
A new check_no_ci_xctest_skips function scans the workflow file for -skip-testing: patterns and fails if any are found. The check is integrated into the main validation flow to enforce this constraint.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • manaflow-ai/cmux#4913: Also removes xcodebuild -skip-testing exclusions from CI workflow to enable specific XCTest suites.
  • manaflow-ai/cmux#4886: Unskips test methods in CI workflow and adds similar guards to prevent future XCTest skips.
  • manaflow-ai/cmux#4882: Removes -skip-testing arguments from the same CI workflow step to include previously excluded XCTest methods.

Poem

🐰 A test once hidden finds the light,
A guard stands watch to keep things right,
No skips shall slip past CI's keen eye,
The workflow runs true, none pass by! ✨


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Cmux Source Artifacts ❌ Error Commit adds .claude/scheduled_tasks.lock, a local tool lock file that violates the source-control-artifacts rule prohibiting local tool artifacts. Remove .claude/scheduled_tasks.lock from the commit or add the pattern to .gitignore to exclude local tool lock files.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The description covers what changed and why, but lacks testing details and doesn't follow the provided template structure fully. Add a Testing section confirming local verification steps (already mentioned) and clarify how to verify the fix once CI runs complete.
✅ Passed checks (18 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: re-enabling a previously excluded XCTest in CI by removing the skip-testing flag.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed PR contains only CI/workflow (.github/workflows/ci.yml) and test script (tests/test_ci_self_hosted_guard.sh) changes; no production Swift source code modifications present.
Cmux Swift Blocking Runtime ✅ Passed PR contains only CI workflow and test guard script changes with no production Swift code modifications; check applies to production Swift changes only.
Cmux Expensive Synchronous Load ✅ Passed PR contains only CI workflow changes (ci.yml and test_ci_self_hosted_guard.sh) with zero production Swift code modifications; expensive sync load check is inapplicable.
Cmux Cache Substitution Correctness ✅ Passed PR contains no production code changes; only modifies CI workflow and test scripts. Cache-substitution-correctness check applies only to production code.
Cmux No Hacky Sleeps ✅ Passed PR introduces no new sleeps, delays, or timing hacks. Changes are: removing a test skip flag from workflow (out of scope), and adding a test validation function with no timing code.
Cmux Algorithmic Complexity ✅ Passed PR contains no production code changes; only CI workflow config (.github/workflows/ci.yml) and test verification script. Per algorithmic complexity rules, test-only code is explicitly exempted.
Cmux Swift Concurrency ✅ Passed PR contains only CI workflow and bash test script changes; no Swift code modifications that would introduce legacy async patterns.
Cmux Swift @Concurrent ✅ Passed PR only modifies CI workflow files with zero Swift source code changes. Check is for Swift code modifications, not applicable to CI-only updates.
Cmux Swift File And Package Boundaries ✅ Passed No Swift files were modified in this PR; changes are CI/workflow-only (.github/workflows/ci.yml and tests/test_ci_self_hosted_guard.sh). The Swift file boundary check is not applicable.
Cmux Swift Logging ✅ Passed PR contains no production Swift code changes—only CI configuration and test infrastructure. Custom check applies only to production Swift logging violations, not CI/workflow files.
Cmux User-Facing Error Privacy ✅ Passed PR modifies CI/workflow files and test scripts, not production code. Error messages are developer-only CI validation, not user-facing. Per policy, CI tests and scripts are allowed.
Cmux Full Internationalization ✅ Passed PR modifies only CI workflow and test validation scripts, which are operational/developer-only files explicitly exempted from internationalization requirements per full-internationalization.md.
Cmux Swiftui State Layout ✅ Passed This PR only modifies CI workflow files (.github/workflows/ci.yml and tests/test_ci_self_hosted_guard.sh) with zero SwiftUI code changes, making the SwiftUI state layout check inapplicable.
Cmux Architecture Rethink ✅ Passed PR contains only CI/workflow changes (re-enabling a test and adding a guard); no Swift architectural violations present. The rule applies to Swift architecture issues, not CI configuration.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PR contains no Swift auxiliary window code changes. It only modifies CI workflow YAML and bash test scripts.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-reenable-file-explorer-store-test

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 and usage tips.

@greptile-apps

greptile-apps Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Re-enables the previously quarantined testRemoteWorkspaceRootRequestResolvesSSHHomeInsteadOfKeepingLocalPath XCTest method by removing its -skip-testing: exclusion from the Run unit tests step, and adds a workflow guard to the self-hosted CI guard script that prevents future ad-hoc exclusions of individual XCTest methods.

  • ci.yml: Drops the -skip-testing: flag so the test runs again under the existing 900 s timeout and xcodebuild_noninteractive.py wrapper; the PR notes the original quarantine reason (app-host post-test cleanup hangs) is not yet confirmed resolved, with CI results pending.
  • test_ci_self_hosted_guard.sh: Adds check_no_ci_xctest_skips using grep -nE '(^|[[:space:]])-skip-testing:' against ci.yml; the regex would also match YAML comment lines that document the removed exclusion, risking false-positive guard failures.

Confidence Score: 4/5

Safe to merge; both changes are CI-only with no production code impact, and the existing 900 s timeout provides a backstop if the re-enabled test hangs again.

The one-line removal in ci.yml is straightforward, and the guard script addition is a net improvement. The only real concern is the guard's grep pattern matching YAML comment lines that mention -skip-testing:, which could cause spurious failures if documentation comments are ever added to ci.yml.

tests/test_ci_self_hosted_guard.sh — the grep pattern in check_no_ci_xctest_skips warrants a second look for the comment false-positive edge case.

Important Files Changed

Filename Overview
.github/workflows/ci.yml Removes the single -skip-testing: exclusion for FileExplorerStoreTests; re-enables the quarantined test method with the existing 900 s timeout and noninteractive wrapper as safety nets.
tests/test_ci_self_hosted_guard.sh Adds check_no_ci_xctest_skips guard that scans ci.yml for -skip-testing: flags; guard pattern may produce false positives on YAML comment lines that document removed exclusions.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[CI: Run unit tests step] --> B[xcodebuild_noninteractive.py]
    B --> C[xcodebuild -scheme cmux-unit test]
    C --> D{FileExplorerStoreTests\ntestRemoteWorkspaceRoot...}
    D -->|Now included| E[Test executes on macOS runner]
    E --> F{Pass / Fail?}
    F -->|Pass| G[xcodebuild exits 0]
    F -->|Hang| H[Timeout loop 900 s]
    H --> I[kill -TERM / kill -KILL]
    I --> J[return 124]
    G --> K[CI job succeeds]
    subgraph Guard
        L[check_no_ci_xctest_skips] --> M{grep -nE -skip-testing: in ci.yml}
        M -->|Found| N[FAIL + exit 1]
        M -->|Not found| O[PASS]
    end
Loading

Reviews (1): Last reviewed commit: "Re-enable FileExplorerStore XCTest in CI" | Re-trigger Greptile

}

check_no_ci_xctest_skips() {
if grep -nE '(^|[[:space:]])-skip-testing:' "$CI_FILE"; then

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Guard regex matches YAML comments containing -skip-testing:

The pattern (^|[[:space:]])-skip-testing: will also fire on any YAML comment that mentions the flag, e.g. a line like # previously excluded with -skip-testing:.... If a developer ever adds such a comment for documentation purposes — a likely maintenance scenario given the PR description itself calls out the historical quarantine — the guard fails even though no actual xcodebuild exclusion exists. Consider piping through a second grep -v to drop comment-only lines before evaluating the match.

Suggested change
if grep -nE '(^|[[:space:]])-skip-testing:' "$CI_FILE"; then
if grep -nE '(^|[[:space:]])-skip-testing:' "$CI_FILE" | grep -qv '^[[:space:]]*#'; then

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@lawrencecchen
lawrencecchen merged commit 4113398 into main Jun 9, 2026
32 of 33 checks passed
@lawrencecchen
lawrencecchen deleted the feat-reenable-file-explorer-store-test branch June 9, 2026 06:50

This branch was successfully deployed

1 active deployment
Preview – cmux — 0ea3e1f6 Deployed Jun 9, 2026 by vercel[bot]
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