Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
94b8718
test: require e2e display runner default
Jun 26, 2026
a81404c
fix: stabilize browser omnibar e2e lane
Jun 26, 2026
1958156
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
Jun 26, 2026
3f57e44
test: clean up omnibar ci followups
Jun 27, 2026
7d5dd25
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
Jun 27, 2026
5d93ab8
test: harden omnibar ui focus fallback
Jun 27, 2026
85a5878
test: wait for omnibar setup before ci regressions
Jun 27, 2026
5317ff4
test: assert inline backspace before escape cleanup
Jun 27, 2026
37cedd0
test: send inline backspace to omnibar field
Jun 27, 2026
fa3ecb2
test: route omnibar backspace through socket shortcut
Jun 27, 2026
b9ce90a
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
Jun 27, 2026
9bde8b1
test: resolve omnibar socket path in ui test
Jun 27, 2026
302aa04
test: use native socket client for omnibar shortcut
Jun 27, 2026
5fc4ba8
test: remove omnibar shortcut settle sleep
Jun 27, 2026
1832385
test: avoid omnibar socket shortcut dependency
Jun 27, 2026
0c34b81
test: reveal omnibar buffer after inline backspace
Jun 27, 2026
106cdc1
fix: handle omnibar command backspace at inline boundary
Jun 27, 2026
91ea9af
test: send omnibar backspace through appkit command
Jun 27, 2026
7c16d2e
test: drive omnibar backspace through control socket
Jun 27, 2026
1f90594
test: harden omnibar socket shortcut transport
Jun 27, 2026
3fd6871
test: cover omnibar mid-prefix backspace command
Jun 27, 2026
ae7f65a
test: avoid omnibar socket dependency in ui backspace
Jun 27, 2026
220f2b0
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
Jun 27, 2026
84e6e25
test: resolve omnibar ui key event pid
Jun 27, 2026
ad583c5
ci: run browser ui regressions before display churn
Jun 27, 2026
e44632f
test: drive omnibar backspace through xcuitest
Jun 27, 2026
20e5d73
test: use socket shortcut for omnibar backspace
Jun 27, 2026
332e0b0
test: use shared netcat socket helper
Jun 27, 2026
b14e10b
test: tolerate omnibar ui background launch
Jun 27, 2026
fd638d7
test: require accessible omnibar ui window
Jun 27, 2026
829a7dd
Merge origin/main into issue-5934-e2e-browseromnibarsuggestionsuitest…
austinywang Jul 2, 2026
ada890b
test: widen socket timeout for omnibar backspace dispatch
austinywang Jul 2, 2026
c08421f
ci: document display-runner invariant for browser UI regressions
austinywang Jul 2, 2026
d4b64a1
test: drive omnibar backspace via XCUITest key event
austinywang Jul 2, 2026
68990ee
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
austinywang Jul 2, 2026
41b7839
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
austinywang Jul 2, 2026
df09e14
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
austinywang Jul 3, 2026
c143082
test: assert omnibar backspace before escape cleanup
austinywang Jul 3, 2026
a102393
test: require foreground app for omnibar key events
austinywang Jul 3, 2026
feea0a0
ci: fail closed to display runner for browser regressions
austinywang Jul 3, 2026
5baf98f
test: move omnibar inline deletion coverage to Swift Testing
austinywang Jul 4, 2026
f3d9425
Merge remote-tracking branch 'origin/main' into issue-5934-e2e-browse…
austinywang Jul 4, 2026
d40bafb
chore: update Swift file length budget after merge
austinywang Jul 4, 2026
d0fed01
ci: resolve omnibar regression closeout failures
austinywang Jul 4, 2026
28b25d6
test: stabilize omnibar inline backspace regression
austinywang Jul 4, 2026
dd8e1ea
test: use socket shortcut for omnibar backspace
austinywang Jul 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/swift-file-length-budget.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
12296 Sources/GhosttyTerminalView.swift
11669 Sources/Panels/BrowserPanel.swift
9497 cmuxTests/CLINotifyProcessIntegrationRegressionTests.swift
8032 Sources/Panels/BrowserPanelView.swift
8031 Sources/Panels/BrowserPanelView.swift
8016 CLI/cmux_open.swift
7743 Packages/iOS/CmuxMobileShell/Sources/CmuxMobileShell/MobileShellComposite.swift
7405 cmuxTests/WorkspaceUnitTests.swift
Expand All @@ -24,8 +24,8 @@
4483 Sources/cmuxApp.swift
4482 Sources/Panels/FilePreviewPanel.swift
4367 cmuxTests/BrowserPanelTests.swift
4283 Packages/iOS/CmuxMobileTerminal/Sources/CmuxMobileTerminal/GhosttySurfaceView.swift
4121 Sources/BrowserWindowPortal.swift
3964 Packages/iOS/CmuxMobileTerminal/Sources/CmuxMobileTerminal/GhosttySurfaceView.swift
3934 Sources/Feed/FeedPanelView.swift
3926 cmuxTests/TabManagerUnitTests.swift
3896 cmuxTests/WindowAndDragTests.swift
Expand Down Expand Up @@ -112,6 +112,7 @@
871 cmuxTests/ClaudeHookSurfaceResolutionSwiftTests.swift
868 Sources/Panels/BrowserScreenshotSnapshotter.swift
864 Packages/Shared/CmuxAgentChat/Sources/CmuxAgentChat/Store/ChatConversationStore.swift
862 cmuxUITests/BrowserOmnibarSuggestionsUITests.swift
859 Packages/macOS/CmuxControlSocket/Sources/CmuxControlSocket/Coordinator/Workspace/ControlCommandCoordinator+Workspace.swift
847 cmuxTests/AgentSessionAutoResumeSettingsTests.swift
845 cmuxTests/SSHStartupSignalLifecycleTests.swift
Expand All @@ -125,7 +126,6 @@
802 Sources/TerminalController+ControlPaneContext.swift
797 Sources/ClosedItemHistory.swift
782 CLI/CMUXCLI+AgentHookDefinitions.swift
779 cmuxUITests/BrowserOmnibarSuggestionsUITests.swift
773 Sources/App/MenuBarExtraController.swift
769 Packages/macOS/CmuxTerminal/Sources/CmuxTerminal/Surface/TerminalSurface+Input.swift
768 cmuxUITests/BrowserFixtureInteractionUITests.swift
Expand Down
143 changes: 45 additions & 98 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1396,14 +1396,14 @@ jobs:
ui-regressions:
needs: changes
if: ${{ needs.changes.outputs.macos == 'true' }}
runs-on: ${{ vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15' }}
runs-on: ${{ startsWith(vars.MACOS_RUNNER_DISPLAY, 'depot-') && vars.MACOS_RUNNER_DISPLAY || 'depot-macos-latest' }}
# Cold builds after project/package changes can spend more than 25 minutes
# in build-for-testing before the UI regression script starts.
timeout-minutes: 45
steps:
- name: Validate display runner identity
env:
REQUESTED_RUNNER: ${{ vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15' }}
REQUESTED_RUNNER: ${{ startsWith(vars.MACOS_RUNNER_DISPLAY, 'depot-') && vars.MACOS_RUNNER_DISPLAY || 'depot-macos-latest' }}
RUNNER_CONTEXT_NAME: ${{ runner.name }}
run: |
set -euo pipefail
Expand All @@ -1422,7 +1422,8 @@ jobs:
esac
;;
*)
echo "Display runner is not Depot; skipping Depot identity guard"
echo "::error::ui-regressions requires a display-capable Depot runner. Set MACOS_RUNNER_DISPLAY to depot-macos-latest or depot-macos-14."
exit 1
;;
esac

Expand Down Expand Up @@ -1538,6 +1539,47 @@ jobs:
echo "::warning::Passwordless sudo unavailable; XCTest will use its default automation-mode setup"
fi

# The browser UI regressions below (this step and the browser find step)
# intentionally rely on the runner's native WindowServer display and do
# NOT self-provision a virtual display. This job is pinned to a display
# runner via repo variable MACOS_RUNNER_DISPLAY (defaulting to
# depot-macos-latest), and the "Validate display runner identity" step above
# fails the job if the requested runner is not a Depot display runner or if a
# requested depot-* label resolves outside Depot. On that display runner browser
# XCUITest windows are accessible without a virtual display, which is why this
# lane replaced the persistent virtual display it used before. The later
# "display resolution churn" step still creates its own scoped virtual
# display because that test specifically exercises display add/remove
# churn, not because these browser steps need one.
- name: Run browser omnibar suggestions UI regressions
run: |
set -euo pipefail
SOURCE_PACKAGES_DIR="$PWD/.ci-source-packages"

xcodebuild -project cmux.xcodeproj -scheme cmux -configuration Debug \
-derivedDataPath "$CMUX_DERIVED_DATA_PATH" \
-clonedSourcePackagesDirPath "$SOURCE_PACKAGES_DIR" \
-disableAutomaticPackageResolution \
-destination "platform=macOS" \
-maximum-test-execution-time-allowance 180 \
-only-testing:cmuxUITests/BrowserOmnibarSuggestionsUITests/testInlineAutocompleteBackspaceDeletesTypedPrefixCharacter \
-only-testing:cmuxUITests/BrowserOmnibarSuggestionsUITests/testOmnibarEscapeAndClickOutsideBehaveLikeChrome \
test-without-building

- name: Run browser find focus UI regression
run: |
set -euo pipefail
SOURCE_PACKAGES_DIR="$PWD/.ci-source-packages"

xcodebuild -project cmux.xcodeproj -scheme cmux -configuration Debug \
-derivedDataPath "$CMUX_DERIVED_DATA_PATH" \
-clonedSourcePackagesDirPath "$SOURCE_PACKAGES_DIR" \
-disableAutomaticPackageResolution \
-destination "platform=macOS" \
-maximum-test-execution-time-allowance 180 \
-only-testing:cmuxUITests/BrowserPaneNavigationKeybindUITests/testCmdFOpensBrowserFindAfterCmdDCmdLNavigation \
test-without-building

- name: Run display resolution churn UI regression
run: |
set -euo pipefail
Expand Down Expand Up @@ -1794,101 +1836,6 @@ jobs:
sleep 3
done

- name: Create persistent virtual display
run: |
set -euo pipefail
LOCK_ENV="$(scripts/ci/virtual-display-lock.sh acquire)"
eval "$LOCK_ENV"
export CMUX_VDISPLAY_LOCK_DIR CMUX_VDISPLAY_LOCK_TOKEN
{
echo "CMUX_VDISPLAY_LOCK_DIR=$CMUX_VDISPLAY_LOCK_DIR"
echo "CMUX_VDISPLAY_LOCK_TOKEN=$CMUX_VDISPLAY_LOCK_TOKEN"
} >> "$GITHUB_ENV"

HELPER_PATH="$RUNNER_TEMP/create-virtual-display-persistent"
clang -framework Foundation -framework CoreGraphics \
-o "$HELPER_PATH" scripts/create-virtual-display.m

VDISPLAY_READY="$RUNNER_TEMP/cmux-vdisplay-persistent.ready"
VDISPLAY_ID_PATH="$RUNNER_TEMP/cmux-vdisplay-persistent.id"
VDISPLAY_LOG="$RUNNER_TEMP/cmux-vdisplay-persistent.log"
rm -f "$VDISPLAY_READY" "$VDISPLAY_ID_PATH" "$VDISPLAY_LOG"

# Now that we hold the lock, reap any leaked display helper so a
# CGVirtualDisplay orphaned by a crashed/cancelled job cannot block
# this create on persistent self-hosted runners.
scripts/ci/virtual-display-lock.sh reap-strays || true

"$HELPER_PATH" \
--modes "1920x1080" \
--ready-path "$VDISPLAY_READY" \
--display-id-path "$VDISPLAY_ID_PATH" \
>"$VDISPLAY_LOG" 2>&1 &
VDISPLAY_PERSISTENT_PID=$!
scripts/ci/virtual-display-lock.sh set-owner "$VDISPLAY_PERSISTENT_PID"

{
echo "VDISPLAY_PERSISTENT_PID=$VDISPLAY_PERSISTENT_PID"
echo "VDISPLAY_PERSISTENT_HELPER_PATH=$HELPER_PATH"
echo "VDISPLAY_PERSISTENT_READY=$VDISPLAY_READY"
echo "VDISPLAY_PERSISTENT_ID_PATH=$VDISPLAY_ID_PATH"
echo "VDISPLAY_PERSISTENT_LOG=$VDISPLAY_LOG"
} >> "$GITHUB_ENV"

echo "Waiting for persistent virtual display..."
for _ in $(seq 1 100); do
if [ -s "$VDISPLAY_READY" ] && [ -s "$VDISPLAY_ID_PATH" ]; then
break
fi
if ! kill -0 "$VDISPLAY_PERSISTENT_PID" 2>/dev/null; then
echo "Persistent virtual display helper exited before readiness" >&2
cat "$VDISPLAY_LOG" >&2 || true
exit 1
fi
sleep 0.1
done

if [ ! -s "$VDISPLAY_READY" ] || [ ! -s "$VDISPLAY_ID_PATH" ]; then
echo "ERROR: Persistent virtual display not ready after 10s" >&2
cat "$VDISPLAY_LOG" >&2 || true
exit 1
fi

echo "Persistent virtual display ready: ID=$(tr -d '\n' < "$VDISPLAY_ID_PATH")"
cat "$VDISPLAY_LOG"

- name: Run browser find focus UI regression
run: |
set -euo pipefail
SOURCE_PACKAGES_DIR="$PWD/.ci-source-packages"
if [ -n "${VDISPLAY_PERSISTENT_PID:-}" ] && ! kill -0 "$VDISPLAY_PERSISTENT_PID" 2>/dev/null; then
echo "Persistent virtual display exited before browser find UI regression" >&2
cat "${VDISPLAY_PERSISTENT_LOG:-/dev/null}" >&2 || true
exit 1
fi

xcodebuild -project cmux.xcodeproj -scheme cmux -configuration Debug \
-derivedDataPath "$CMUX_DERIVED_DATA_PATH" \
-clonedSourcePackagesDirPath "$SOURCE_PACKAGES_DIR" \
-disableAutomaticPackageResolution \
-destination "platform=macOS" \
-maximum-test-execution-time-allowance 180 \
-only-testing:cmuxUITests/BrowserPaneNavigationKeybindUITests/testCmdFOpensBrowserFindAfterCmdDCmdLNavigation \
test-without-building

- name: Cleanup persistent virtual display
if: always()
run: |
if [ -n "${VDISPLAY_PERSISTENT_PID:-}" ]; then
kill "$VDISPLAY_PERSISTENT_PID" >/dev/null 2>&1 || true
for _ in $(seq 1 50); do
kill -0 "$VDISPLAY_PERSISTENT_PID" >/dev/null 2>&1 || break
sleep 0.1
done
fi
scripts/ci/virtual-display-lock.sh release || true
rm -f "${VDISPLAY_PERSISTENT_HELPER_PATH:-}" "${VDISPLAY_PERSISTENT_READY:-}" "${VDISPLAY_PERSISTENT_ID_PATH:-}" "${VDISPLAY_PERSISTENT_LOG:-}"

ci-status:
needs:
- changes
Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: E2E test with video recording
run-name: ${{ inputs.test_filter }} on ${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_15 || 'blacksmith-6vcpu-macos-15') || inputs.runner }} @ ${{ inputs.ref || github.ref_name }}
run-name: ${{ inputs.test_filter }} on ${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15') || inputs.runner }} @ ${{ inputs.ref || github.ref_name }}

on:
workflow_dispatch:
Expand All @@ -25,7 +25,7 @@ on:
default: true
type: boolean
runner:
description: "Runner OS (auto follows the MACOS_RUNNER_15 repo variable, default Blacksmith; pick warp-/depot-macos-* to override)"
description: "Runner OS (auto follows the MACOS_RUNNER_DISPLAY repo variable, default Blacksmith; pick blacksmith-/depot-macos-* to override)"
required: false
default: "auto"
type: choice
Expand All @@ -34,25 +34,24 @@ on:
- blacksmith-6vcpu-macos-15
- blacksmith-6vcpu-macos-26
- blacksmith-6vcpu-macos-latest
- warp-macos-15-arm64-6x
- depot-macos-latest
- depot-macos-14

concurrency:
group: e2e-${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_15 || 'blacksmith-6vcpu-macos-15') || inputs.runner }}-${{ inputs.ref || github.ref_name }}-${{ inputs.test_filter }}
group: e2e-${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15') || inputs.runner }}-${{ inputs.ref || github.ref_name }}-${{ inputs.test_filter }}
cancel-in-progress: true

jobs:
e2e:
runs-on: ${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_15 || 'blacksmith-6vcpu-macos-15') || inputs.runner }}
runs-on: ${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15') || inputs.runner }}
timeout-minutes: ${{ fromJSON(inputs.job_timeout || '20') }}
env:
TEST_REF: ${{ inputs.ref || github.ref }}
steps:
- name: Validate Depot runner identity
if: ${{ startsWith((!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_15 || 'blacksmith-6vcpu-macos-15') || inputs.runner, 'depot-macos-') }}
if: ${{ startsWith((!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15') || inputs.runner, 'depot-macos-') }}
env:
REQUESTED_RUNNER: ${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_15 || 'blacksmith-6vcpu-macos-15') || inputs.runner }}
REQUESTED_RUNNER: ${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15') || inputs.runner }}
RUNNER_CONTEXT_NAME: ${{ runner.name }}
run: |
set -euo pipefail
Expand Down Expand Up @@ -228,8 +227,8 @@ jobs:
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: .ci-source-packages
key: spm-${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_15 || 'blacksmith-6vcpu-macos-15') || inputs.runner }}-${{ hashFiles('cmux.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
restore-keys: spm-${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_15 || 'blacksmith-6vcpu-macos-15') || inputs.runner }}-
key: spm-${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15') || inputs.runner }}-${{ hashFiles('cmux.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
restore-keys: spm-${{ (!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_DISPLAY || 'blacksmith-6vcpu-macos-15') || inputs.runner }}-

- name: Sanitize Swift package cache
run: python3 scripts/ci/sanitize-xcode-source-packages-cache.py .ci-source-packages
Expand Down
9 changes: 4 additions & 5 deletions Sources/Panels/BrowserPanelView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4602,7 +4602,7 @@ struct OmnibarTextFieldRepresentable: NSViewRepresentable {
}
return false
case #selector(NSResponder.deleteBackward(_:)):
if suffixSelectionMatchesInline(textView, inline: parent.inlineCompletion) {
if inlineCompletionSelectionIsActive(textView, inline: parent.inlineCompletion) {
parent.onDeleteBackwardWithInlineSelection()
#if DEBUG
handled = true
Expand Down Expand Up @@ -4732,7 +4732,7 @@ struct OmnibarTextFieldRepresentable: NSViewRepresentable {
}

private func inlineCompletionSelectionIsActive(_ editor: NSTextView?, inline: OmnibarInlineCompletion?) -> Bool {
suffixSelectionMatchesInline(editor, inline: inline) || selectionIsTypedPrefixBoundary(editor, inline: inline)
suffixSelectionMatchesInline(editor, inline: inline) || selectionIsInlineBoundary(editor, inline: inline)
}

private func suffixSelectionMatchesInline(_ editor: NSTextView?, inline: OmnibarInlineCompletion?) -> Bool {
Expand All @@ -4741,11 +4741,10 @@ struct OmnibarTextFieldRepresentable: NSViewRepresentable {
return NSEqualRanges(selected, inline.suffixRange)
}

private func selectionIsTypedPrefixBoundary(_ editor: NSTextView?, inline: OmnibarInlineCompletion?) -> Bool {
private func selectionIsInlineBoundary(_ editor: NSTextView?, inline: OmnibarInlineCompletion?) -> Bool {
guard let editor, let inline else { return false }
let selected = editor.selectedRange()
let typedCount = inline.typedText.utf16.count
return selected.location == typedCount && selected.length == 0
return selected.length == 0 && (selected.location == inline.typedText.utf16.count || selected.location == inline.displayText.utf16.count)
}

func handleKeyEvent(_ event: NSEvent, editor: NSTextView?) -> Bool {
Expand Down
4 changes: 4 additions & 0 deletions cmux.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -747,6 +747,7 @@
645645000000000000000002 /* NumberedShortcutSwapTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645645000000000000000001 /* NumberedShortcutSwapTests.swift */; };
C67540090000000000000001 /* OmnibarAddressButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C67540090000000000000002 /* OmnibarAddressButtonStyle.swift */; };
4378399A7C0245EF8186F306 /* OmnibarAndToolsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09C007F42697761B5F1A2AB /* OmnibarAndToolsTests.swift */; };
38D796AA2AC59B9AAAFAEDA0 /* OmnibarInlineDeletionSwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E257EB00CC79F65462047D39 /* OmnibarInlineDeletionSwiftTests.swift */; };
9637C6D3170F4BE1A7EF6243 /* OmnibarSubmitDecisionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48D6AE11906A4DF3BEB8CDFE /* OmnibarSubmitDecisionTests.swift */; };
0A0F00550000000000000001 /* OmpSupportTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0F00550000000000000002 /* OmpSupportTests.swift */; };
D1BEF00002A1B2C3D4E5F719 /* open in Copy CLI */ = {isa = PBXBuildFile; fileRef = D1BEF00001A1B2C3D4E5F719 /* open */; };
Expand Down Expand Up @@ -2061,6 +2062,7 @@
645645000000000000000001 /* NumberedShortcutSwapTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumberedShortcutSwapTests.swift; sourceTree = "<group>"; };
C67540090000000000000002 /* OmnibarAddressButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/OmnibarAddressButtonStyle.swift; sourceTree = "<group>"; };
B09C007F42697761B5F1A2AB /* OmnibarAndToolsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmnibarAndToolsTests.swift; sourceTree = "<group>"; };
E257EB00CC79F65462047D39 /* OmnibarInlineDeletionSwiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmnibarInlineDeletionSwiftTests.swift; sourceTree = "<group>"; };
48D6AE11906A4DF3BEB8CDFE /* OmnibarSubmitDecisionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmnibarSubmitDecisionTests.swift; sourceTree = "<group>"; };
0A0F00550000000000000002 /* OmpSupportTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OmpSupportTests.swift; sourceTree = "<group>"; };
D1BEF00001A1B2C3D4E5F719 /* open */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = Resources/bin/open; sourceTree = SOURCE_ROOT; };
Expand Down Expand Up @@ -3919,6 +3921,7 @@
86544CEFA1CA33CA9225FB6E /* MobileWorkspaceListFidelityTests.swift */,
645645000000000000000001 /* NumberedShortcutSwapTests.swift */,
B09C007F42697761B5F1A2AB /* OmnibarAndToolsTests.swift */,
E257EB00CC79F65462047D39 /* OmnibarInlineDeletionSwiftTests.swift */,
D2C075029771815DD5DA1332 /* NotificationAndMenuBarTests.swift */,
C0DE70520000000000000001 /* MenuBarProfilingLauncherTests.swift */,
596100000000000000000002 /* NativeNotificationFallbackCommandTests.swift */,
Expand Down Expand Up @@ -5552,6 +5555,7 @@
4E5F60720000000000000001 /* NotificationSoundSettingsTests.swift in Sources */,
645645000000000000000002 /* NumberedShortcutSwapTests.swift in Sources */,
4378399A7C0245EF8186F306 /* OmnibarAndToolsTests.swift in Sources */,
38D796AA2AC59B9AAAFAEDA0 /* OmnibarInlineDeletionSwiftTests.swift in Sources */,
9637C6D3170F4BE1A7EF6243 /* OmnibarSubmitDecisionTests.swift in Sources */,
0A0F00550000000000000001 /* OmpSupportTests.swift in Sources */,
A5E01203A1B2C3D4E5F60718 /* OpenCodeHookRegressionTests.swift in Sources */,
Expand Down
Loading
Loading