Skip to content

Revert "Fix launch compatibility on macOS 14 and 15"#787

Merged
FuJacob merged 1 commit into
mainfrom
revert-785-codex/fix-macos-14-launch-compat
Jul 11, 2026
Merged

Revert "Fix launch compatibility on macOS 14 and 15"#787
FuJacob merged 1 commit into
mainfrom
revert-785-codex/fix-macos-14-launch-compat

Conversation

@FuJacob

@FuJacob FuJacob commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Reverts #785

Greptile Summary

This PR reverts the macOS compatibility fix and moves the app back to SwiftUI-owned menu-bar presentation. The main changes are:

  • Restores the SwiftUI App entry point and MenuBarExtra(.window) scene.
  • Removes the AppKit MenuBarController status-item implementation.
  • Adds SwiftUI menu-bar label and popover dismissal helpers.
  • Deletes the macOS compatibility workflow and verification script.
  • Removes release-time compatibility metadata validation.

Confidence Score: 4/5

The macOS 14/15 launch path can crash before the app delegate can recover.

  • The restored MenuBarExtra(.window) path is the same baseline launch path the reverted AppKit implementation avoided.
  • The smoke-test flag now falls through into normal app startup and can hang compatibility checks.
  • Resetting preferences can leave the menu-bar icon hidden because the visibility key survives reset.

Cotabby/App/Core/CotabbyApp.swift, Cotabby/App/Core/AppDelegate.swift, Cotabby/Support/SuggestionSettingsStore.swift

Important Files Changed

Filename Overview
Cotabby/App/Core/CotabbyApp.swift Restores the SwiftUI app entry point and MenuBarExtra(.window) scene, reintroducing the macOS baseline launch risk.
Cotabby/App/Core/AppDelegate.swift Removes AppKit menu-bar ownership and the compatibility smoke-test exit path.
Cotabby/Services/UI/MenuBarController.swift Deletes the AppKit NSStatusItem and NSPopover controller used for menu-bar lifecycle ownership.
Cotabby/UI/MenuBarPopoverDismisser.swift Adds a SwiftUI/AppKit bridge for dismissing the menu popover before opening settings.
Cotabby/UI/MenuBarStatusLabelView.swift Adds the SwiftUI status label for the menu-bar icon, pause state, and word count.
Cotabby/Support/SuggestionSettingsStore.swift Exposes the menu-bar visibility defaults key for scene insertion and keeps reset behavior unchanged.
.github/workflows/release.yml Removes release-time macOS compatibility verification.
.github/workflows/macos-compatibility.yml Deletes the cross-version macOS build-and-launch workflow.
scripts/verify_macos_compatibility.py Deletes the script that checked deployment metadata, binary slices, bundled Mach-O minimum versions, and weak linking.

Comments Outside Diff (1)

  1. Cotabby/Support/SuggestionSettingsStore.swift, line 159-220 (link)

    P2 Reset Keeps Hidden Menu Icon

    The menu-bar visibility key is still omitted from the reset key list while the new scene insertion reads that same key directly through @AppStorage. If a user hides the icon and then resets preferences, the persisted cotabbyMenuBarIconVisible = false survives, so the app remains without a menu-bar item instead of restoring the default visible state.

    Fix in Codex Fix in Claude Code

Fix All in Codex Fix All in Claude Code

Reviews (1): Last reviewed commit: "Revert "Fix launch compatibility on macO..." | Re-trigger Greptile

Greptile also left 2 inline comments on this PR.

@FuJacob FuJacob merged commit bcbb592 into main Jul 11, 2026
4 of 5 checks passed
)
}
.menuBarExtraStyle(.window)
}

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.

P1 Menu Scene Crashes Baseline Launch

The app still targets macOS 14.0, but this restores the MenuBarExtra(.window) scene as the main launch path. The reverted AppKit path existed because an Xcode 26-built .window menu extra can abort inside AttributeGraph on macOS 14 and early macOS 15 before applicationDidFinishLaunching runs, so supported users can crash on launch with no recovery window or status item.

Fix in Codex Fix in Claude Code

@@ -153,23 +131,11 @@ final class AppDelegate: NSObject, NSApplicationDelegate {

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 Smoke Argument Runs Forever

The -cotabby-compatibility-smoke-test argument is no longer checked before normal startup. A compatibility runner that launches the built app with that flag now enters full app startup and stays open instead of constructing the menu graph and exiting cleanly, so the launch check times out rather than reporting success or failure.

Fix in Codex Fix in Claude Code

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