Skip to content

feat(windows): add native app and installer pipeline - #102

Open
ericjypark wants to merge 1 commit into
mainfrom
codex/windows-support
Open

ericjypark wants to merge 1 commit into
mainfrom
codex/windows-support

Conversation

@ericjypark

Copy link
Copy Markdown
Owner

Add the first Windows implementation of CodexIsland: a native floating pill that reveals quotas on hover and expands into usage, local cost history, calendar, and share-card views.

  • Implement provider connections, quota and history persistence, settings, display placement, keyboard/tray controls, alert states, and sleep/full-screen recovery.
  • Default normal launches to live accounts and preserve that choice across Settings and restarts. CLI tools retain ownership of credentials and session refresh.
  • Add a first-launch guide that reveals the pill, explains hover/click, links to account setup, and can be replayed from the tray.
  • Include x64 and ARM64 installers with the runtime, Settings-based updates, and CI build/publishing safeguards. Installers remain unsigned on the existing preview channels. Publishing requires an exact version tag and the completed matching macOS release.
  • Add public build, behavior, compatibility, and validation documentation. VERSION remains at the current release; no release is published by this PR.

Validation: 399 Windows logic checks, 9 publisher safeguard tests, and 30 card rendering checks pass. Existing native coverage includes provider/settings flows, history, cards, motion, and startup. The current packaged app source passed 25 introduction checks plus 3 executable startup/restart checks per architecture in Windows 11 ARM at 200% scaling; x64 ran under emulation. Both x64 and ARM64 installers were built and their manifests/checksums verified during candidate preparation. CI rebuilds the PR snapshot.

Known limits: real Codex and Antigravity requests were verified; Claude/Grok account acceptance remains incomplete. Full Mac visual/behavior parity and the reported stutter on a physical Windows PC are not claimed. Scope and measured performance limits are documented in windows/PARITY.md and windows/PERFORMANCE.md.

@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 217 files, which is 117 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 662b25f5-2b59-4d8a-a3b0-fe717e839dc0

📥 Commits

Reviewing files that changed from the base of the PR and between 1a0634d and b3a0377.

⛔ Files ignored due to path filters (15)
  • windows/IslandPrototype/Assets/CodexIsland.ico is excluded by !**/*.ico
  • windows/IslandPrototype/Assets/Fonts/CardDisplay-Medium.ttf is excluded by !**/*.ttf
  • windows/IslandPrototype/Assets/Fonts/CardDisplay-Regular.ttf is excluded by !**/*.ttf
  • windows/IslandPrototype/Assets/Fonts/CardDisplay-SemiBold.ttf is excluded by !**/*.ttf
  • windows/IslandPrototype/Assets/Fonts/CardText-SemiBold.ttf is excluded by !**/*.ttf
  • windows/IslandPrototype/Assets/Fonts/IslandText-Medium.ttf is excluded by !**/*.ttf
  • windows/IslandPrototype/Assets/Fonts/IslandText-SemiBold.ttf is excluded by !**/*.ttf
  • windows/IslandPrototype/Assets/Fonts/IslandText-Status.ttf is excluded by !**/*.ttf
  • windows/IslandPrototype/Assets/antigravity.png is excluded by !**/*.png
  • windows/IslandPrototype/Assets/claude.png is excluded by !**/*.png
  • windows/IslandPrototype/Assets/codexisland.png is excluded by !**/*.png
  • windows/IslandPrototype/Assets/grok.png is excluded by !**/*.png
  • windows/IslandPrototype/Assets/openai.png is excluded by !**/*.png
  • windows/IslandPrototype/Assets/tray-dark.ico is excluded by !**/*.ico
  • windows/IslandPrototype/Assets/tray-light.ico is excluded by !**/*.ico
📒 Files selected for processing (217)
  • .github/workflows/release.yml
  • .github/workflows/windows.yml
  • README.md
  • windows/.gitignore
  • windows/BEHAVIOR.md
  • windows/CARD-PARITY.md
  • windows/HISTORY.md
  • windows/IslandPrototype/AlertEngine.cs
  • windows/IslandPrototype/App.xaml
  • windows/IslandPrototype/App.xaml.cs
  • windows/IslandPrototype/AppUpdates.cs
  • windows/IslandPrototype/Assets/Fonts/Inter-OFL.txt
  • windows/IslandPrototype/Assets/Fonts/README.md
  • windows/IslandPrototype/Assets/mac-fixture.json
  • windows/IslandPrototype/Assets/pricing-seed.json
  • windows/IslandPrototype/Assets/zh-Hans.json
  • windows/IslandPrototype/CardTypography.cs
  • windows/IslandPrototype/CliAccountActions.cs
  • windows/IslandPrototype/CliCredentialWatch.cs
  • windows/IslandPrototype/CliCredentials.cs
  • windows/IslandPrototype/CliSessionRecovery.cs
  • windows/IslandPrototype/CodexAccountReader.cs
  • windows/IslandPrototype/CodexResetCredits.cs
  • windows/IslandPrototype/ConnectedProviderUsage.cs
  • windows/IslandPrototype/CurrencyStore.cs
  • windows/IslandPrototype/DataPaths.cs
  • windows/IslandPrototype/DatabaseLogScanner.cs
  • windows/IslandPrototype/DisplayCatalog.cs
  • windows/IslandPrototype/DollarGlowLayer.cs
  • windows/IslandPrototype/FooterStatus.cs
  • windows/IslandPrototype/FooterStatusLayer.cs
  • windows/IslandPrototype/FrameDiagnostics.cs
  • windows/IslandPrototype/FullscreenGeometry.cs
  • windows/IslandPrototype/GlowSweep.cs
  • windows/IslandPrototype/GrokCompatibility.cs
  • windows/IslandPrototype/HistoricalUsageDay.cs
  • windows/IslandPrototype/HistoryCoordinator.cs
  • windows/IslandPrototype/HistoryImport.cs
  • windows/IslandPrototype/HistorySummary.cs
  • windows/IslandPrototype/IslandAccessibility.cs
  • windows/IslandPrototype/IslandPrototype.csproj
  • windows/IslandPrototype/IslandTypography.cs
  • windows/IslandPrototype/IslandVisual.Pill.cs
  • windows/IslandPrototype/IslandVisual.ResetCredits.cs
  • windows/IslandPrototype/IslandVisual.cs
  • windows/IslandPrototype/LiveUsage.cs
  • windows/IslandPrototype/LocalLogScanner.cs
  • windows/IslandPrototype/Localizer.cs
  • windows/IslandPrototype/MainWindow.Introduction.cs
  • windows/IslandPrototype/MainWindow.Motion.cs
  • windows/IslandPrototype/MainWindow.xaml
  • windows/IslandPrototype/MainWindow.xaml.cs
  • windows/IslandPrototype/ModelPricing.cs
  • windows/IslandPrototype/Native.cs
  • windows/IslandPrototype/NativeSqlite.cs
  • windows/IslandPrototype/PageScrollGesture.cs
  • windows/IslandPrototype/ParityData.cs
  • windows/IslandPrototype/ParityTheme.cs
  • windows/IslandPrototype/PillMotion.cs
  • windows/IslandPrototype/PlatformActions.cs
  • windows/IslandPrototype/PreferenceStore.cs
  • windows/IslandPrototype/PreviewSettings.cs
  • windows/IslandPrototype/ProviderCredentialParser.cs
  • windows/IslandPrototype/ProviderQuotaSelection.cs
  • windows/IslandPrototype/ProviderUsageClient.cs
  • windows/IslandPrototype/QuotaHistoryStore.cs
  • windows/IslandPrototype/SettingsControls.cs
  • windows/IslandPrototype/TestAccess.cs
  • windows/IslandPrototype/UsageCardSnapshot.cs
  • windows/IslandPrototype/UsageCardStudio.cs
  • windows/IslandPrototype/UsageCardVisual.cs
  • windows/IslandPrototype/UsageFeed.cs
  • windows/IslandPrototype/UsageHistory.cs
  • windows/IslandPrototype/UsageLedger.cs
  • windows/IslandPrototype/WakeScheduling.cs
  • windows/IslandPrototype/WindowContext.cs
  • windows/IslandPrototype/WindowsCliCredential.cs
  • windows/IslandPrototype/WindowsUpdateBackend.cs
  • windows/IslandPrototype/app.manifest
  • windows/LIVE-PROVIDERS.md
  • windows/PARITY.md
  • windows/PERFORMANCE.md
  • windows/README.md
  • windows/UPDATES.md
  • windows/VISUAL-REFINEMENT.md
  • windows/build-installer.ps1
  • windows/publish-release.py
  • windows/reference/MacHistoryReference.swift
  • windows/reference/MacQuotaReference.swift
  • windows/reference/PerformanceMac.swift
  • windows/reference/RenderMacReference.swift
  • windows/reference/history.sh
  • windows/reference/measure-cards.py
  • windows/reference/measure-island.py
  • windows/reference/performance.sh
  • windows/reference/prepare-card-fonts.py
  • windows/reference/prepare-island-fonts.py
  • windows/reference/quota.sh
  • windows/reference/render.sh
  • windows/run-parallels.sh
  • windows/run.ps1
  • windows/tests/build-provider-work.ps1
  • windows/tests/card-render/CardRenderTests.csproj
  • windows/tests/card-render/Program.cs
  • windows/tests/check-account-setup.ps1
  • windows/tests/check-alerts.ps1
  • windows/tests/check-card-preserved.ps1
  • windows/tests/check-card.ps1
  • windows/tests/check-codex-reset-ui.ps1
  • windows/tests/check-connected-account-setup.ps1
  • windows/tests/check-dropdowns.ps1
  • windows/tests/check-footer-ui.ps1
  • windows/tests/check-installer-upgrade.ps1
  • windows/tests/check-interaction.ps1
  • windows/tests/check-introduction-startup.ps1
  • windows/tests/check-live-pointer.ps1
  • windows/tests/check-live-ui.ps1
  • windows/tests/check-mac-history-ui.ps1
  • windows/tests/check-motion.ps1
  • windows/tests/check-native-share.ps1
  • windows/tests/check-network-parallels.py
  • windows/tests/check-network-recovery.ps1
  • windows/tests/check-parity.ps1
  • windows/tests/check-performance.ps1
  • windows/tests/check-preferences.ps1
  • windows/tests/check-quota-profile.ps1
  • windows/tests/check-render-cost.ps1
  • windows/tests/check-responsive-install.ps1
  • windows/tests/check-services.ps1
  • windows/tests/check-settings.ps1
  • windows/tests/check-startup-data-mode.ps1
  • windows/tests/check-swipe.ps1
  • windows/tests/check-tooltips.ps1
  • windows/tests/check-wake-ui.ps1
  • windows/tests/check-window-context.ps1
  • windows/tests/choose-antigravity-login.ps1
  • windows/tests/compare-island-refinement.py
  • windows/tests/compare-renders.py
  • windows/tests/diagnose-grok-signin.ps1
  • windows/tests/export-codex-schema.ps1
  • windows/tests/grok-compat/GrokCompatibilityCheck.csproj
  • windows/tests/grok-compat/Program.cs
  • windows/tests/inspect-account-login.ps1
  • windows/tests/inspect-account-processes.ps1
  • windows/tests/inspect-cli-installation.ps1
  • windows/tests/inspect-codex-protocol.ps1
  • windows/tests/inspect-codex-server.ps1
  • windows/tests/inspect-connected-clis.ps1
  • windows/tests/inspect-current-usage.ps1
  • windows/tests/inspect-live-account-values.ps1
  • windows/tests/inspect-native-event-windows.ps1
  • windows/tests/inspect-settings.ps1
  • windows/tests/inspect-signin-pages.ps1
  • windows/tests/live-render/FooterStatusUiTests.cs
  • windows/tests/live-render/LiveRenderTests.csproj
  • windows/tests/live-render/Program.cs
  • windows/tests/live-render/QuotaHistoryUiTests.cs
  • windows/tests/live-render/QuotaSettingsTests.cs
  • windows/tests/live-render/ResetCreditUiTests.cs
  • windows/tests/live-render/SettingsPageTests.cs
  • windows/tests/logic/AccountSetupTests.cs
  • windows/tests/logic/AppUpdateTests.cs
  • windows/tests/logic/CodexAccountTests.cs
  • windows/tests/logic/ConnectedProviderTests.cs
  • windows/tests/logic/FooterStatusTests.cs
  • windows/tests/logic/HistoryTests.cs
  • windows/tests/logic/LiveUsageTests.cs
  • windows/tests/logic/LogicTests.csproj
  • windows/tests/logic/Program.cs
  • windows/tests/logic/QuotaHistoryTests.cs
  • windows/tests/logic/WakeRecoveryTests.cs
  • windows/tests/mac-history/ImportBoundaryTests.cs
  • windows/tests/mac-history/MacHistoryTests.csproj
  • windows/tests/mac-history/Program.cs
  • windows/tests/measure-live-responsiveness.ps1
  • windows/tests/measure-pointer-reference.ps1
  • windows/tests/open-card-studio.ps1
  • windows/tests/open-mac-history-preview.ps1
  • windows/tests/open-provider-settings.ps1
  • windows/tests/prepare-grok-compat.ps1
  • windows/tests/presentation-probe/PresentationProbe.csproj
  • windows/tests/presentation-probe/Program.cs
  • windows/tests/probe-graphics-effects.ps1
  • windows/tests/probe-grok-x64.ps1
  • windows/tests/probe-reset-hover.ps1
  • windows/tests/read-codex-account.ps1
  • windows/tests/render/Program.cs
  • windows/tests/render/RenderTests.csproj
  • windows/tests/run-card-render.ps1
  • windows/tests/run-live-render.ps1
  • windows/tests/run-logic.ps1
  • windows/tests/run-mac-history.ps1
  • windows/tests/run-presentation-probe.ps1
  • windows/tests/run-render.ps1
  • windows/tests/run-swipe-render.ps1
  • windows/tests/run-visual-render.ps1
  • windows/tests/run-window-motion.ps1
  • windows/tests/show-preview.ps1
  • windows/tests/snapshot-mac-history.py
  • windows/tests/snapshot-mac-quota.swift
  • windows/tests/start-connected-signin.ps1
  • windows/tests/stop-unneeded-signins.ps1
  • windows/tests/swipe-render/Program.cs
  • windows/tests/swipe-render/SwipeRenderTests.csproj
  • windows/tests/test_publish_release.py
  • windows/tests/update-mac-history-preview.ps1
  • windows/tests/verify-provider-settings.ps1
  • windows/tests/visual-render/PillMotionTests.cs
  • windows/tests/visual-render/PillTests.cs
  • windows/tests/visual-render/Program.cs
  • windows/tests/visual-render/RefinementTests.cs
  • windows/tests/visual-render/VisualRenderTests.csproj
  • windows/tests/window-motion/IntroductionTests.cs
  • windows/tests/window-motion/Program.cs
  • windows/tests/window-motion/ReferenceSweep.cs
  • windows/tests/window-motion/WindowMotionTests.csproj
  • windows/tests/window-motion/app.manifest

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b3a0377cd2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

protected override async Task<GithubRelease[]> GetReleases(bool includePrereleases)
{
// Mac-only releases must not hide the most recent Windows installer.
var json=await Downloader.DownloadString("https://api.github.com/repos/ericjypark/codex-island/releases?per_page=100",GetRequestHeaders("application/vnd.github+json"));

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 Badge Page through releases before filtering Windows feeds

After more than 100 newer macOS-only releases, the requested endpoint returns only that first page, so the channel-specific filter produces no Windows feed even though an older Windows release is still available. Installed Windows clients will then report that updates have not been published, contradicting the intended behavior that Mac-only releases do not hide the newest Windows installer; follow GitHub pagination (or otherwise search beyond the first page) before filtering.

Useful? React with 👍 / 👎.

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