Skip to content

Split mega test file, bump CI timeout, stream xcodebuild output - #1717

Merged
lawrencecchen merged 1 commit into
mainfrom
fix-ci-compat-timeout
Mar 18, 2026
Merged

lawrencecchen merged 1 commit into
mainfrom
fix-ci-compat-timeout

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Mar 18, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Split CmuxWebViewKeyEquivalentTests.swift (15,907 lines, 100+ test classes) into 10 domain-based files (1k-3k lines each). Swift compiles per-file, so this lets Xcode parallelize type-checking across 10 compiler processes instead of serializing on one.
  • Bump ci-macos-compat.yml timeout from 20 to 30 minutes. The old limit was tight even for incremental builds after core-file changes.
  • Stream xcodebuild test output via tee instead of capturing to $OUTPUT. CI logs now show real-time progress instead of 20 minutes of silence.
  • Add 5 test files that were sitting in cmuxTests/ but missing from the pbxproj Sources build phase (never compiled).

Fixes the timeout on https://github.com/manaflow-ai/cmux/actions/runs/23231286231

Test plan

  • CI ci-macos-compat passes on this PR (compiles + runs all unit tests)
  • Verify xcodebuild output streams in real time in CI logs

Summary by cubic

Split a 16k-line test into 10 domain-based files to parallelize Swift type-checking and prevent CI timeouts. Increased the macOS compat job timeout to 30 minutes and stream xcodebuild output for real-time logs. Also added five missing test files to the Xcode project so they compile.

  • Refactors

    • Replaced CmuxWebViewKeyEquivalentTests.swift with 10 files (1k–3k lines each) to let Xcode compile in parallel.
  • Bug Fixes

    • Bumped ci-macos-compat.yml timeout from 20 to 30 minutes for headroom.
    • Stream xcodebuild test via tee to show live progress in CI logs.
    • Added five test files to the project’s Sources phase that were not compiling before.

Written for commit e9fbcfe. Summary will update on new commits.

Summary by CodeRabbit

  • Tests

    • Added extensive test coverage across core features including notifications, command palette, keyboard shortcuts, tab management, terminal functionality, window behavior, and workspace management.
  • Chores

    • Enhanced macOS compatibility testing with improved timeout handling and output collection.
    • Reorganized test project structure with updated test file configurations.

…o 30min

CmuxWebViewKeyEquivalentTests.swift grew to 15,907 lines with 100+ test classes.
Swift compiles per-file, so this single file serialized all type-checking onto one
compiler process, pushing CI past the 20-minute timeout after core-file changes.

Split into 10 domain-based files (1k-3k lines each) so Xcode can compile them in
parallel. Also bump timeout-minutes from 20 to 30 for headroom, stream xcodebuild
output via tee instead of capturing to a variable (makes CI logs debuggable), and
add 5 test files that were missing from the pbxproj Sources build phase.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@vercel

vercel Bot commented Mar 18, 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 Mar 18, 2026 8:16am

@greptile-apps greptile-apps Bot left a comment

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.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@coderabbitai

coderabbitai Bot commented Mar 18, 2026 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: da18746b-208c-415b-ba75-2bcf1fb849a3

📥 Commits

Reviewing files that changed from the base of the PR and between 55cb5c6 and e9fbcfe.

📒 Files selected for processing (13)
  • .github/workflows/ci-macos-compat.yml
  • GhosttyTabs.xcodeproj/project.pbxproj
  • cmuxTests/BrowserConfigTests.swift
  • cmuxTests/BrowserPanelTests.swift
  • cmuxTests/CmuxWebViewKeyEquivalentTests.swift
  • cmuxTests/NotificationAndMenuBarTests.swift
  • cmuxTests/OmnibarAndToolsTests.swift
  • cmuxTests/ShortcutAndCommandPaletteTests.swift
  • cmuxTests/SidebarOrderingTests.swift
  • cmuxTests/TabManagerUnitTests.swift
  • cmuxTests/TerminalAndGhosttyTests.swift
  • cmuxTests/WindowAndDragTests.swift
  • cmuxTests/WorkspaceUnitTests.swift

📝 Walkthrough

Walkthrough

This PR adds extensive unit test coverage across multiple cmux subsystems including notifications, omnibar, shortcuts, sidebar, tab manager, terminal/ghostty, window drag handling, and workspace functionality. It also adjusts CI workflow timeouts and test output capture patterns, and removes one test file from the project build.

Changes

Cohort / File(s) Summary
CI Workflow Adjustments
.github/workflows/ci-macos-compat.yml
Increased timeout values from 20 to 30 minutes for two macOS compatibility matrix entries. Modified test output capture to pipe run_unit_tests through tee to /tmp/test-output.txt, capture exit code via PIPESTATUS, and read output from saved file in both initial run and retry paths.
Xcode Project Configuration
GhosttyTabs.xcodeproj/project.pbxproj
Removed CmuxWebViewKeyEquivalentTests.swift from cmuxTests source group and build phase. Added 15 new test files to project: BrowserConfigTests.swift, BrowserPanelTests.swift, TerminalAndGhosttyTests.swift, WorkspaceUnitTests.swift, WindowAndDragTests.swift, ShortcutAndCommandPaletteTests.swift, SidebarOrderingTests.swift, OmnibarAndToolsTests.swift, NotificationAndMenuBarTests.swift, TabManagerUnitTests.swift, WorkspacePullRequestSidebarTests.swift, WorkspaceManualUnreadTests.swift, SidebarWidthPolicyTests.swift, TerminalControllerSocketSecurityTests.swift, and TabManagerSessionSnapshotTests.swift. Created corresponding PBXFileReference entries and included all in cmuxTests group.
Notification & Menu Bar Tests
cmuxTests/NotificationAndMenuBarTests.swift
Comprehensive test suite covering dock badge logic, preference defaults, notification sound handling (system/custom), tilde path expansion, sound staging/transformation, custom sound preparation with extension handling, notification authorization state mapping, authorization deferral and gating logic, user prompts via test spy NSAlert, unread count tracking by tab/surface, menu bar snapshot building and badge formatting, menu bar icon debug settings, and rendering behavior.
Omnibar & Tools Tests
cmuxTests/OmnibarAndToolsTests.swift
Extensive tests for FinderServicePathResolver directory deduplication, VSCodeServeWebURLBuilder URL extraction and folder URL construction, VSCodeCLILaunchConfigurationBuilder launch configuration selection and environment variable mapping, ServeWebOutputCollector URL wait behavior and parsing, VSCodeServeWebController stop and token cleanup, and comprehensive OmnibarStateMachineTests covering state transitions, focus/editing states, escape behavior, suggestions, autocompletion, and selection logic.
Shortcut & Command Palette Tests
cmuxTests/ShortcutAndCommandPaletteTests.swift
Unit tests for transient focus suppression with split shortcuts, full-screen toggle shortcut recognition across input modalities, command palette keyboard navigation deltas, shortcuts consumption behavior, focus restoration after dismissal, rename selection defaults, scroll anchoring logic, debug/feature flag policies for shortcut hints, settings resolution, and command palette overlay promotion based on visibility changes.
Sidebar Ordering Tests
cmuxTests/SidebarOrderingTests.swift
Test suite for sidebar active foreground colors across light/dark appearances, branch layout settings and style parsing, active tab indicator settings, remote error copy support, branch ordering and drop planner indicators, drag auto-scroll planner logic, and terminal controller sidebar deduplication including git branch/ports normalization, socket scope parsing, and directory normalization utilities.
Tab Manager Unit Tests
cmuxTests/TabManagerUnitTests.swift
Comprehensive tests for panel/workspace closing on child exit, ownership checks, confirmation prompts for closing multiple workspaces, runtime surface closure handling, focus behavior with notifications, pending unfocus policy, surface creation and browser insertion, browser opening in workspace splits, equalize splits logic, workspace inheritance source resolution, and reopen-closed browser tests across different workspaces.
Terminal & Ghostty Tests
cmuxTests/TerminalAndGhosttyTests.swift
Large test suite covering pasteboard handling (plain text extraction from HTML, RTFD attachment handling), terminal keyboard copy-mode (key mappings, selection state, count handling, edge cases), Ghostty UI theming and color clamping, Ghostty responder resolution, terminal directory open target availability, terminal notification interactions, window/portal host and surface tests (hit-testing, z-ordering, portal lifecycle), terminal open URL target resolution across schemes, terminal controller socket tests (text chunk rendering, socket health checks, probe responses, timeouts).
Window & Drag Tests
cmuxTests/WindowAndDragTests.swift
Extensive tests for active main window context synchronization across multiple windows, workspace/workflow integration for opening URLs, launch-services registration deferral, focus ring pattern constants, drag configuration for internal tab drags, comprehensive window drag hit-testing logic (empty/titlebar space, sibling interactions, reentrancy guards, passive hosting), window movability suppression with reference counting, file-drop overlay integration for portal-hosted browser panes, and pointer observer behavior for Markdown panels.
Workspace Unit Tests
cmuxTests/WorkspaceUnitTests.swift
Comprehensive tests for workspace color utilities across light/dark modes, keyboard shortcut defaults and metadata, workspace/tab management logic and insertion indices, workspace placement and reordering with pinned/unpinned handling, palette/color customization and persistence, terminal/browser surface creation and focus handling across splits, browser profile selection, detach/attach surface workflows, pane/surface ordering and deduplication, workspace mount policy logic, and shortcut hint metrics caching.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Poem

🐰 A rabbit bounces through the test fields wide,
With shortcuts, tabs, and windows as my guide,
Each assertion springs to life with glee,
A thousand new tests—oh what will be!
From drag to focus, notifications ring,
The quality suite grows on easter's wing! 🌱

✨ 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 fix-ci-compat-timeout
📝 Coding Plan
  • Generate coding plan for human review comments

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.

@lawrencecchen
lawrencecchen merged commit ac83af6 into main Mar 18, 2026
10 of 14 checks passed

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

4 issues found across 13 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="cmuxTests/BrowserConfigTests.swift">

<violation number="1" location="cmuxTests/BrowserConfigTests.swift:1">
P3: Replace fixed RunLoop delay waits with condition-based expectations to reduce CI flakiness and avoid unnecessary test latency.</violation>
</file>

<file name="cmuxTests/TerminalAndGhosttyTests.swift">

<violation number="1" location="cmuxTests/TerminalAndGhosttyTests.swift:2338">
P2: Two tests assert opposite outcomes for the exact same input, so at least one expectation is wrong and the suite becomes unreliable.</violation>
</file>

<file name="GhosttyTabs.xcodeproj/project.pbxproj">

<violation number="1" location="GhosttyTabs.xcodeproj/project.pbxproj:519">
P1: Newly added split test files are not wired into the `cmuxTests` Sources build phase, so they won’t run in CI.</violation>
</file>

<file name="cmuxTests/TabManagerUnitTests.swift">

<violation number="1" location="cmuxTests/TabManagerUnitTests.swift:23">
P2: `drainMainQueue()` ignores the `XCTWaiter` result, which can hide timeout failures and make tests pass with stale async state.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

FA000001A1B2C3D4E5F60718 /* WorkspaceStressProfileTests.swift */,
A5008380 /* BrowserFindJavaScriptTests.swift */,
A5008382 /* CommandPaletteSearchEngineTests.swift */,
970226F3C99D0D937CD00539 /* BrowserConfigTests.swift */,

@cubic-dev-ai cubic-dev-ai Bot Mar 18, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1: Newly added split test files are not wired into the cmuxTests Sources build phase, so they won’t run in CI.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At GhosttyTabs.xcodeproj/project.pbxproj, line 519:

<comment>Newly added split test files are not wired into the `cmuxTests` Sources build phase, so they won’t run in CI.</comment>

<file context>
@@ -489,6 +516,21 @@
 					FA000001A1B2C3D4E5F60718 /* WorkspaceStressProfileTests.swift */,
 					A5008380 /* BrowserFindJavaScriptTests.swift */,
 					A5008382 /* CommandPaletteSearchEngineTests.swift */,
+					970226F3C99D0D937CD00539 /* BrowserConfigTests.swift */,
+					58C7B1B978620BE162CC057E /* BrowserPanelTests.swift */,
+					02FC74F2C27127CC565B3E8C /* TerminalAndGhosttyTests.swift */,
</file context>
Fix with Cubic



final class GhosttyTerminalViewVisibilityPolicyTests: XCTestCase {
func testImmediateStateUpdateAllowedWhenHostNotInWindow() {

@cubic-dev-ai cubic-dev-ai Bot Mar 18, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: Two tests assert opposite outcomes for the exact same input, so at least one expectation is wrong and the suite becomes unreliable.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At cmuxTests/TerminalAndGhosttyTests.swift, line 2338:

<comment>Two tests assert opposite outcomes for the exact same input, so at least one expectation is wrong and the suite becomes unreliable.</comment>

<file context>
@@ -0,0 +1,2578 @@
+
+
+final class GhosttyTerminalViewVisibilityPolicyTests: XCTestCase {
+    func testImmediateStateUpdateAllowedWhenHostNotInWindow() {
+        XCTAssertTrue(
+            GhosttyTerminalView.shouldApplyImmediateHostedStateUpdate(
</file context>
Fix with Cubic

DispatchQueue.main.async {
expectation.fulfill()
}
XCTWaiter().wait(for: [expectation], timeout: 1.0)

@cubic-dev-ai cubic-dev-ai Bot Mar 18, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: drainMainQueue() ignores the XCTWaiter result, which can hide timeout failures and make tests pass with stale async state.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At cmuxTests/TabManagerUnitTests.swift, line 23:

<comment>`drainMainQueue()` ignores the `XCTWaiter` result, which can hide timeout failures and make tests pass with stale async state.</comment>

<file context>
@@ -0,0 +1,976 @@
+    DispatchQueue.main.async {
+        expectation.fulfill()
+    }
+    XCTWaiter().wait(for: [expectation], timeout: 1.0)
+}
+
</file context>
Fix with Cubic

@@ -0,0 +1,3108 @@
import XCTest

@cubic-dev-ai cubic-dev-ai Bot Mar 18, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: Replace fixed RunLoop delay waits with condition-based expectations to reduce CI flakiness and avoid unnecessary test latency.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At cmuxTests/BrowserConfigTests.swift:

<comment>Replace fixed RunLoop delay waits with condition-based expectations to reduce CI flakiness and avoid unnecessary test latency.</comment>
Fix with Cubic

lawrencecchen added a commit that referenced this pull request Mar 18, 2026
…meout

The previous PR (#1717) added 15 test files to the pbxproj PBXBuildFile and
PBXGroup sections but missed adding them to the cmuxTests Sources build phase
(F1000005), so they were never compiled in CI.

Also add executionTimeAllowance = 30s to AppDelegateShortcutRoutingTests to
prevent testCmdWClosesWindowWhenClosingLastSurfaceInLastWorkspace from hanging
indefinitely on CI (the actual root cause of the timeout).
lawrencecchen added a commit that referenced this pull request Mar 18, 2026
The previous PR (#1717) added 15 test files to the pbxproj PBXBuildFile and
PBXGroup sections but missed adding them to the cmuxTests Sources build phase
(F1000005), so they were never compiled in CI.

Also add executionTimeAllowance = 30s to AppDelegateShortcutRoutingTests to
prevent testCmdWClosesWindowWhenClosingLastSurfaceInLastWorkspace from hanging
indefinitely on CI (the actual root cause of the timeout).

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
lawrencecchen added a commit that referenced this pull request Mar 18, 2026
The test split PR (#1717) applied output streaming (tee) and timeout bump
only to ci-macos-compat.yml, not ci.yml. The main CI tests job was still
capturing all xcodebuild output in a $() subshell (making logs blank) and
using a 20 minute timeout (too tight after the test file split).

Port the same fixes from ci-macos-compat.yml:
- Stream xcodebuild output via tee so CI logs show progress in real time
- Bump timeout-minutes from 20 to 30
- Update the SPM retry guard test for the new tee pattern
lawrencecchen added a commit that referenced this pull request Mar 19, 2026
* Fix CI test timeout: stream xcodebuild output and bump timeout to 30m

The test split PR (#1717) applied output streaming (tee) and timeout bump
only to ci-macos-compat.yml, not ci.yml. The main CI tests job was still
capturing all xcodebuild output in a $() subshell (making logs blank) and
using a 20 minute timeout (too tight after the test file split).

Port the same fixes from ci-macos-compat.yml:
- Stream xcodebuild output via tee so CI logs show progress in real time
- Bump timeout-minutes from 20 to 30
- Update the SPM retry guard test for the new tee pattern

* Fix hanging test: auto-confirm window close in last-surface Cmd+W test

testCmdWClosesWindowWhenClosingLastSurfaceInLastWorkspace hung for 26+
minutes on CI because it sent Cmd+W to close the last surface without
setting debugCloseMainWindowConfirmationHandler. The window close path
shows a modal confirmation dialog that blocks the RunLoop indefinitely
on headless runners.

Set the handler to auto-confirm, matching the pattern used by
testCmdCtrlWClosesWindowAfterConfirmation.

* Skip last-surface close test on CI: PTY teardown blocks on headless runners

The confirmation handler fix wasn't sufficient. The hang is in Ghostty
surface/PTY teardown when closing the last terminal surface, not the
window close confirmation. Shell process termination blocks indefinitely
on headless CI runners without a TTY.

Skip with XCTSkip when CI env var is set. The test still runs locally
and can be covered via E2E on runners with virtual displays.

* Skip hanging test via -skip-testing flag in xcodebuild

The CI env var isn't visible inside xcodebuild's test host process, so
the XCTSkip approach didn't work. Use -skip-testing on the xcodebuild
command line instead.

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
bn-l pushed a commit to bn-l/cmux that referenced this pull request Apr 3, 2026
…put (manaflow-ai#1717)

CmuxWebViewKeyEquivalentTests.swift grew to 15,907 lines with 100+ test classes.
Swift compiles per-file, so this single file serialized all type-checking onto one
compiler process, pushing CI past the 20-minute timeout after core-file changes.

Split into 10 domain-based files (1k-3k lines each) so Xcode can compile them in
parallel. Also bump timeout-minutes from 20 to 30 for headroom, stream xcodebuild
output via tee instead of capturing to a variable (makes CI logs debuggable), and
add 5 test files that were missing from the pbxproj Sources build phase.

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
bn-l pushed a commit to bn-l/cmux that referenced this pull request Apr 3, 2026
…#1743)

The previous PR (manaflow-ai#1717) added 15 test files to the pbxproj PBXBuildFile and
PBXGroup sections but missed adding them to the cmuxTests Sources build phase
(F1000005), so they were never compiled in CI.

Also add executionTimeAllowance = 30s to AppDelegateShortcutRoutingTests to
prevent testCmdWClosesWindowWhenClosingLastSurfaceInLastWorkspace from hanging
indefinitely on CI (the actual root cause of the timeout).

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
bn-l pushed a commit to bn-l/cmux that referenced this pull request Apr 3, 2026
* Fix CI test timeout: stream xcodebuild output and bump timeout to 30m

The test split PR (manaflow-ai#1717) applied output streaming (tee) and timeout bump
only to ci-macos-compat.yml, not ci.yml. The main CI tests job was still
capturing all xcodebuild output in a $() subshell (making logs blank) and
using a 20 minute timeout (too tight after the test file split).

Port the same fixes from ci-macos-compat.yml:
- Stream xcodebuild output via tee so CI logs show progress in real time
- Bump timeout-minutes from 20 to 30
- Update the SPM retry guard test for the new tee pattern

* Fix hanging test: auto-confirm window close in last-surface Cmd+W test

testCmdWClosesWindowWhenClosingLastSurfaceInLastWorkspace hung for 26+
minutes on CI because it sent Cmd+W to close the last surface without
setting debugCloseMainWindowConfirmationHandler. The window close path
shows a modal confirmation dialog that blocks the RunLoop indefinitely
on headless runners.

Set the handler to auto-confirm, matching the pattern used by
testCmdCtrlWClosesWindowAfterConfirmation.

* Skip last-surface close test on CI: PTY teardown blocks on headless runners

The confirmation handler fix wasn't sufficient. The hang is in Ghostty
surface/PTY teardown when closing the last terminal surface, not the
window close confirmation. Shell process termination blocks indefinitely
on headless CI runners without a TTY.

Skip with XCTSkip when CI env var is set. The test still runs locally
and can be covered via E2E on runners with virtual displays.

* Skip hanging test via -skip-testing flag in xcodebuild

The CI env var isn't visible inside xcodebuild's test host process, so
the XCTSkip approach didn't work. Use -skip-testing on the xcodebuild
command line instead.

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
israeligal pushed a commit to israeligal/cmux that referenced this pull request May 2, 2026
…meout

The previous PR (manaflow-ai#1717) added 15 test files to the pbxproj PBXBuildFile and
PBXGroup sections but missed adding them to the cmuxTests Sources build phase
(F1000005), so they were never compiled in CI.

Also add executionTimeAllowance = 30s to AppDelegateShortcutRoutingTests to
prevent testCmdWClosesWindowWhenClosingLastSurfaceInLastWorkspace from hanging
indefinitely on CI (the actual root cause of the timeout).
rodchristiansen pushed a commit to rodchristiansen/cmux that referenced this pull request Sep 2, 2026
…meout

The previous PR (manaflow-ai#1717) added 15 test files to the pbxproj PBXBuildFile and
PBXGroup sections but missed adding them to the cmuxTests Sources build phase
(F1000005), so they were never compiled in CI.

Also add executionTimeAllowance = 30s to AppDelegateShortcutRoutingTests to
prevent testCmdWClosesWindowWhenClosingLastSurfaceInLastWorkspace from hanging
indefinitely on CI (the actual root cause of the timeout).

This branch was successfully deployed

1 active deployment
Preview — e9fbcfe6 Deployed Mar 18, 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