Skip to content
CAI
Software that uses CAICheck a score

rlxone/Equinox

58.3

Adequate · 1 October 2026

23.4k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Equinox is a macOS application that provides solar time calculations and location-based astronomical data, enhanced by a wallpaper gallery and calendar tools. The system supports internationalization across multiple languages and includes a dedicated support module for handling in-app purchases and donations. It features a modernized user interface with glass effects and tooltips, while ensuring reliable image export and accurate timezone handling.

Features

Added German, Spanish (Latin America), French, Japanese, Korean, and Turkish localization

Equinox now supports six new languages: German (de), Spanish (Latin America, es-419), French (fr), Japanese (ja), Korean (ko), and Turkish (tr). This update adds complete translations for the user interface, including menus, the welcome screen, wallpaper creation and gallery workflows, the solar calculator, and support/donation screens, ensuring these regions can use the app in their native language.

EquinoxAssets/EquinoxAssets/Localization · high confidence

New decorative views and refactored common UI components

This update introduces new decorative views for the interface: ConfettiView for particle effects, HeartView for animated heart emissions, and GlassView for macOS 26+ glass effects with fallbacks. It also refactors existing common components: TitleBarView is renamed to RoundedTitleView with a new styling API, ToolBarView is removed, and the help button is removed from BottomBarView. Additionally, AnimatedImageView gains blur and mask options, and several views (Button, ImageView, Label) now adopt the Tooltipable protocol to use the new TooltipPresenter for consistent tooltip behavior.

EquinoxUI/EquinoxUI/Views/Common · high confidence

Support screen and localization updates

The app now includes a dedicated Support window and view controller that displays donation options (via PayPal for non-App Store builds or In-App Purchases for App Store builds) and a thank-you state for existing supporters. The Help menu now provides direct links to the GitHub project, FAQ, issues, website, App Store review page, and Product Hunt. Additionally, localization strings for the location permission prompt (NSLocationUsageDescription) have been added for German, Spanish, French, Japanese, Korean, Turkish, and Chinese variants to explain that location data is used for more accurate solar calculations.

Equinox/Equinox · high confidence

Behavioural changes

Build and test scripts now target macOS without explicit architecture constraint

The build and test scripts have been updated to remove the explicit 'arch=x86\_64' parameter from the platform configuration. This change means that building and testing the Equinox and EquinoxCoreTests schemes on macOS will no longer force the x86\_64 architecture, allowing the build system to use the default or universal architecture settings for the platform.

build · high confidence

Equinox project structure updated with new controllers, frameworks, and localization

The Equinox project configuration has been updated to include several new source files and frameworks. A new 'Support' module has been added, consisting of SupportWindowController, SupportRootViewController, and SupportViewController, along with corresponding extensions. The Solar module's SolarTimezoneController has been renamed to SolarDateAndTimeController. New toolbar controllers (ToolbarController, SolarToolbarController, WallpaperToolbarController) have been introduced. The StoreKit framework is now linked, and localization files have been expanded to include German (de), French (fr), Korean (ko), Simplified Chinese (zh-Hans), Traditional Chinese (zh-Hant, zh-HK), Spanish (es-419), and Turkish (tr). A new HelpMenuLinks.swift file has also been added to the Menu group.

Equinox/Equinox.xcodeproj · high confidence

EquinoxCore project structure and test configuration updates

The EquinoxCore Xcode project has been updated to object version 54, enabling parallel independent target builds and raising the last upgrade check to 15.2. The project structure now includes new source files (Accessors.swift, SupportService.swift, StoreError.swift, Product.swift) and a new resource (metadata.json), while removing older files (SolarError.swift, HashCore.swift, HashCoreTests.swift). A new test scheme (EquinoxCoreTests.xcscheme) has been added, and the test target now includes SupportServiceTests.swift and MockUserDefaults.swift, replacing the previous HashCoreTests.swift.

EquinoxCore/EquinoxCore.xcodeproj · high confidence

Expanded localization support and project configuration updates

The EquinoxAssets framework now includes localized string resources for nine additional languages (German, French, Spanish (Latin America), Turkish, Korean, Simplified Chinese, Traditional Chinese, and Chinese (Hong Kong)), replacing the previous single-file localization structure with variant groups for both .strings and .stringsdict files. Additionally, the Xcode project has been upgraded to object version 54 with a last upgrade check of 1520, and parallel build independence has been enabled.

EquinoxAssets/EquinoxAssets.xcodeproj · high confidence

In-app purchase support and HEIC encoding fix

The EquinoxCore module now includes a new SupportService that integrates with StoreKit to handle in-app purchases for support tiers, replacing the previous error handling with specific purchase-related errors. Additionally, a workaround for a macOS 14.4.1+ bug causing HEIC encoding failures on Intel devices has been added to ImageCore, ensuring reliable image export. The module also refactors calendar and timezone handling to use a centralized accessor, simplifying the API for solar calculations and metadata processing.

EquinoxCore/EquinoxCore · high confidence

Solar view redesign with macOS 26 styling and new support interface

The Solar content views have been visually updated to match macOS 26 (Tahoe) design guidelines, increasing corner radii to 16pt and introducing drop shadows on the timeline and location panels. The timeline view now displays timezone abbreviation and daylight saving time indicators with tooltips, replacing the previous simple label. A new Support interface has been added, featuring a content view with an animated header, avatar interaction, and option buttons. Additionally, the MapKit integration was updated to use the modern .includingAll point-of-interest filter and visible pitch control on macOS 14+.

EquinoxUI/EquinoxUI/Views/Content · high confidence

TooltipWindow inheritance restricted and Window toolbar styling updated for macOS 11+

TooltipWindow is now declared as a final class, preventing further subclassing. In Window, the setup method has been updated to use a unified toolbar style on macOS 11.0 and later, replacing the previous approach of hiding the title bar and manually configuring a standard toolbar.

EquinoxUI/EquinoxUI/Windows · high confidence

UI component library updates: new support and glass views, removed legacy controls

The EquinoxUI framework has been updated to include several new UI components while removing older ones. New additions include a 'Support' content group with views for headers, details, options, avatars, and content, alongside visual enhancements like GlassView, GlassEffectView, ConfettiView, HeartView, and RoundedTitleView. Tooltips are now handled by TooltipPresenter and SolarTooltipHander. Conversely, legacy components TitleBarView, ToolBarView, TitleLineView, and InvisibleScroller have been removed from the build. The project file format has also been upgraded to objectVersion 54, and a typo in the SolarTimelineView filename has been corrected.

EquinoxUI/EquinoxUI.xcodeproj · high confidence

Update macOS API usage and fix presentation model typos

The app now uses the modern \effectiveAppearance.performAsCurrentDrawingAppearance\ API for managing drawing appearances on macOS, replacing the deprecated manual current appearance swapping. Additionally, the \NSBezierPath.cgPath\ property has been updated to use the native \cgPath\ property on macOS 14 and later, while maintaining compatibility with earlier versions. Finally, several typo-ridden string property names in the \GalleryTextList\ presentation model (e.g., \appearanceToopltipTitle\) have been corrected to their proper spellings.

EquinoxUI/EquinoxUI/Extensions · high confidence

Updated asset definitions and localization strings

The EquinoxAssets library has been updated to reflect changes in the application's UI and support structure. Several unused color constants (such as \quaternaryLabel\, \titleBorder\, and \tabContent\) and the \back\ image asset have been removed. New color assets for support options and button highlights, along with new image assets for the calculator, support, and avatar features, have been added. A new \caption2\ font size has been introduced. Localization has been expanded to include strings for a new Support section (covering purchase success/failure and product status), toolbar labels for the calculator and help sections, and specific solar-related tooltips (daylight saving time, abbreviations, drag-and-drop). Some existing wallpaper gallery strings have also been adjusted or removed.

EquinoxAssets/EquinoxAssets · high confidence

Fixes

Add Equinox Xcode scheme to resolve MapKit deprecation

A new shared Xcode scheme (Equinox.xcscheme) has been added to the project, configuring build, test, launch, profile, analyze, and archive actions for the Equinox.app target. This change addresses MapKit deprecation warnings by ensuring the project uses a consistent, properly configured scheme for development and CI workflows.

Equinox/Equinox.xcodeproj/xcshareddata · high confidence

Test coverage

Added tests for SupportService and refactored test infrastructure

This change introduces a new test suite for the SupportService, verifying payment observer lifecycle, product loading, and purchase transaction handling (purchased, restored, failed, and non-support transactions). It also refactors the test infrastructure by replacing the real UserDefaults with a MockUserDefaults (renamed from HashCoreTests), moving hardcoded metadata strings into a new metadata.json resource file for MetadataCoreTests, and simplifying SolarCoreTests by removing unnecessary throws from helper methods and force-unwrapping suppressions.

EquinoxCore/EquinoxCoreTests · high confidence

Housekeeping

Updated version numbers in Info.plist files

The version metadata in the Info.plist files for EquinoxAssets and EquinoxUI has been updated. The short version string is now 7.0, the build version is 20, and the info dictionary version is 17.0.

EquinoxAssets/EquinoxAssets/Resources, EquinoxUI/EquinoxUI/Resources · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 66 → 58 (-8.1)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 99 → 99 (-0.0)
  • Architecture 96 → 99 (+2.4)
  • Maturity 54 → 54 (+0.0)
  • Readiness 55 → 38 (-16.7)
  • Security 100 → 100 (+0.0)

Resolved (3)

  • Documentation: no architecture or design documentation (README.md)
  • High: security finding (details withheld)
  • High: security finding (details withheld)

New (4)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (20 lines × 2) (EquinoxUI/EquinoxUI/Views/Common/DynamicButton.swift)
  • High: security finding (details withheld)

Changes since last survey

  • 8 commits — 5 feature/other, 3 fixes

By area

  • (root) — 2 commits
  • Equinox/Equinox — 2 commits
  • EquinoxAssets/EquinoxAssets — 2 commits
  • EquinoxUI/EquinoxUI — 2 commits

Notable commits

  • fix: Fix German gallery localization crash (#101)
  • fix: Fix crash when showing tooltips on macOS 27 (#102)
  • fix: Fix shared Equinox scheme and MapKit deprecation (#109)
  • change: Add macOS 27 improvements (#100)
  • change: Document macOS version support (#108)
  • change: Remove unused asset accessors (#107)
  • change: Replace deprecated macOS type and appearance APIs (#103)
  • change: Set all projects to version 7.0 build 20 (#105)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

rlxone/Equinox was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 5e4ba8f9804fb1328cc862ef89e9abed4a62568d — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.