Skip to content

Verify solar calculations and replace Objective-C with offline Swift - #12

Merged
coffee-cup merged 3 commits into
masterfrom
codex/offline-solar
Sep 26, 2026
Merged

coffee-cup merged 3 commits into
masterfrom
codex/offline-solar

Conversation

@coffee-cup

Copy link
Copy Markdown
Owner

Replace the Objective-C solar calculator with a shared offline Swift engine verified against independent USNO, Astronomy Engine and JPL reference data. Sunrise, sunset, twilight and photographic bands now use real crossings within the selected location's civil day, including polar and DST transitions.

  • Freeze reference fixtures and provenance before the port; retain source disagreements and JPL adjudication for sensitive cases.
  • Save GPS fixes before geocoding, persist named time zones for saved places, migrate legacy records safely, and reject stale enrichment.
  • Align timeline, widget and notification behaviour for missing or single events; remove Objective-C and bridging configuration.
  • Add an offline CI check covering 14,760 intervals and 140,279 crossings, plus 49 app-hosted tests. All pass locally; maximum reference difference is 31.46 seconds against a 60-second tolerance. Debug and Release app/widget builds pass.

The simulator timeline was checked for ordinary and polar locations. Widget data and extension packaging are verified; a home-screen widget visual check remains manual. Calculation conventions, baseline results and reproduction commands are in docs/solar-reference.md and docs/solar-verification.md.

@coffee-cup
coffee-cup merged commit df2c276 into master Sep 26, 2026
3 checks passed
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