Repository navigation
Releases: oliverames/skylight-bridge
Release list
Skylight Bridge 1.7.3
Skylight sign-in works again.
Skylight's authorization endpoint now requires PKCE. The app was requesting an authorization code without a code challenge, so Skylight returned HTTP 400 instead of the redirect that carries the code. Sign-in failed with "Skylight sign-in did not return an authorization code (HTTP 400, expected a redirect)." The app now generates a verifier and an S256 challenge for each sign-in and sends the verifier when it exchanges the code, matching Skylight's own client.
Thanks to @mcsnolte for diagnosing the cause and contributing the fix in #7, and to @nickhx and @rihani-ops for the reports and screenshots that narrowed it down.
This release also recovers from a first-sign-in Keychain case where an existing credential item could not be updated. The app now replaces the item instead of failing.
The chore request corrections from 1.7.2 are confirmed working by their reporter, so the Up for Grabs sync failure in #2 is resolved.
Fixes #4.
Verify the download
shasum -a 256 ~/Downloads/Skylight.Bridge-1.7.3.dmgExpected: 0dd11037537a39ea5406d30e802098b94561f2d9a9b2265ca25728c54da2b5cb
The app and disk image are Developer ID-signed, notarized, and stapled. Existing installations can update through Skylight Bridge > Check for Updates….
Skylight Bridge 1.7.2
Chore compatibility improvements
- Updated Up for Grabs chore creation to use Skylight’s current request format.
- Included unassigned chores in inventory reads so subsequent syncs can find them.
- Corrected chore search and multi-profile creation requests.
- Removed the unused multi-Mac heartbeat and warning UI. Shared sync links remain disabled.
These changes pass 272 automated tests. The reported Up for Grabs failure still needs confirmation on affected accounts. The HTTP 400 sign-in issue remains under investigation and is not fixed by this release.
Requires macOS 26 or later. Includes Apple silicon and Intel support. The app and disk image are Developer ID-signed and notarized. Download the DMG and compare its SHA-256 with the accompanying checksum file.
Skylight Bridge 1.7.1
Skylight Bridge keeps syncing when one mapping points at a Reminders list or Photos album that no longer exists.
- A missing source list or album is skipped with a warning in Activity that names the mapping, instead of stopping the whole run.
- Every other mapping, plus photos, chores, and recipes, still syncs in that run.
- The skipped mapping keeps its records, so relinking it in Settings resumes where it left off.
This release retains the automatic iCloud recovery, durable offline edits, and sharing status from 1.7.0.
Validation: 266 Mac tests, the optimized warnings-as-errors build, notarization, and Gatekeeper checks on the app and disk image.
Skylight Bridge 1.7.0
Skylight Bridge now recovers automatically when iCloud sharing is interrupted.
- Shared preferences and selected-photo edits survive restarts with their original timestamps.
- Cloud retries respect server delays, including after restarting the app.
- Newer edits remain safe when an older cloud request completes.
- Healthy records continue to load when another record is malformed.
- Saved changes stay tied to the original iCloud account.
- Overview shows the last successful iCloud refresh, pending changes, and the next retry.
This release includes the photo previews and login diagnostics from the recent bug-fix releases. Multi-Mac coordination remains disabled. The production schema was verified, and release packaging now checks its required fields and indexes.
Validation: 264 Mac tests, 22 shared tests, four mobile integration tests, optimized builds, independent review, and a signed Mac production iCloud refresh with visual verification.
Skylight Bridge 1.6.6
This update adds clearer error details for sync and sign-in failures.
- Sync errors now identify the request method, so an error while reading chores can be distinguished from an error while creating one.
- Sign-in failures now preserve the authorization response's HTTP status and a fixed explanation. Passwords, tokens, response bodies, and redirect contents stay out of these diagnostics.
- The README now explains which features require Calendar Plus.
This release retains the photo previews and bug fixes from 1.6.5. The remaining chore and login reports are still under investigation, and these diagnostic changes do not establish that those failures are resolved.
Verified with 258 tests in 26 suites, an optimized build with warnings treated as errors, Developer ID signing, and Apple notarization.
Skylight Bridge 1.6.5
Fixes automatic account restoration at startup by sharing one app state across the main window, menu bar, and connection task. This supersedes version 1.6.4.
Selected photos now show thumbnail previews in the mapping editor.
This release includes 16 fixes from a comprehensive review. Other fixes include:
- Login preserves plus signs in credentials and tokens, and expired refresh grants recover through sign-in.
- Selected-photo changes survive restarts. Pausing a mapping retains the latest intent, and existing selections can be saved after the last photo is removed.
- Completed recurring chores stay complete through later syncs and content edits. Imported chores and adopted reminders reconcile completion before establishing a baseline.
- Failed Notes saves stay visible, and missing reminder snapshots or invalid recipe text stop the affected sync before destructive writes.
- Cleanup retries retain the records they need, accept confirmed absence, and keep separate chore lists for each member.
- Sign Out remains available when account discovery fails.
Verified with 256 tests in 26 suites, a build with warnings treated as errors, and visual checks of the running app. Live-account mutation tests remain opt-in.
The universal macOS app and installer are Developer ID signed, notarized, and stapled. A SHA-256 checksum accompanies the DMG.
Skylight Bridge 1.6.4
Selected photos now show thumbnail previews in the mapping editor.
This release fixes 15 defects found during a comprehensive review:
- Login preserves plus signs in credentials and tokens, and expired refresh grants recover through sign-in.
- Selected-photo changes survive restarts. Pausing a mapping retains the latest intent, and existing selections can be saved after the last photo is removed.
- Completed recurring chores stay complete through later syncs and content edits. Imported chores and adopted reminders reconcile completion before establishing a baseline.
- Failed Notes saves stay visible, and missing reminder snapshots or invalid recipe text stop the affected sync before destructive writes.
- Cleanup retries retain the records they need, accept confirmed absence, and keep separate chore lists for each member.
- Sign Out remains available when account discovery fails.
Verified with 256 tests in 26 suites, a build with warnings treated as errors, and visual checks of the running app. Live-account mutation tests remain opt-in.
The universal macOS app and installer are Developer ID signed, notarized, and stapled. A SHA-256 checksum accompanies the DMG.
Skylight Bridge 1.6.3
Fixes a deadlock between publishing shared iCloud state and a running sync.
A publish took the shared Cloud operation gate and then waited for the connection to settle, while a mapping teardown took the same two pieces of state in the opposite order. Together they could not resolve. Holding the gate through that wait also stranded every unrelated iCloud operation, including a mapping retirement that never consults the apply window.
The app and DMG are Developer ID signed, notarized, and stapled. Verify the download against the checksum file beside it:
shasum -a 256 ~/Downloads/Skylight.Bridge-1.6.3.dmg
Updates from 1.6.x arrive automatically through the signed Sparkle feed.
Skylight Bridge 1.6.2
Fixes selected-photo Cloud reconciliation races, so two overlapping syncs can no longer disagree about which assets a mapping owns.
The app and DMG are Developer ID signed, notarized, and stapled. Verify the download against the checksum file beside it:
shasum -a 256 ~/Downloads/Skylight.Bridge-1.6.2.dmg
Updates from 1.6.x arrive automatically through the signed Sparkle feed.
Skylight Bridge 1.6.1
Skylight Bridge 1.6.1 is a correctness release. A full-repo adversarial review produced 24 confirmed defects, and this build ships every one of the fixes. There are no new features and no changes to how you set up a mapping.
Sync fixes
- Deleted recurring reminders stay deleted. Deleting a recurring item on Skylight used to drop the sync record while sparing the Apple reminder, so the next sync re-created it, forever. The link now records the deletion, and editing the Apple reminder afterwards is what brings it back.
- A failed teardown no longer strands your data. Removing a mapping used to swallow delete failures, forget the records anyway, and report success, which permanently orphaned the Skylight copies. A transient error now stops the teardown with the records intact so a later run can finish it.
- Teardown no longer races a scheduled sync. Removing a mapping runs under the same guards as Sync Now, so a concurrent checkpoint cannot resurrect purged state.
- Shared duplicate photos are no longer deleted out from under a second mapping, a postponed one-off chore is no longer read as completed, dry-run previews no longer invent deletions when the destination list has to be created, and note records are now scoped per frame so switching frames does not orphan or duplicate recipes.
Account and session fixes
- Token refresh is single-flight. Two overlapping retries used to replay the same refresh token against a rotating server, which can revoke the whole grant and sign you out.
- A timeout no longer triggers a silent password login. Only a genuine authorization failure reconnects now.
- Sign Out revokes the refresh token as well as the access token, and deletes each stored secret independently.
Parsing fixes
- A recipe quantity like
0.5 cup sugarwas read as5 cup sugar. Decimal quantities now survive. - A date-only recurrence end no longer cuts the final day's occurrence, and a rule carrying both a count and an end date is now rejected rather than silently losing the count.
- Skylight summaries containing line breaks collapse to a single line.
Interface fixes
- The stale failure banner clears after signing out or reconnecting, Sync Now is disabled for configurations that have nothing to sync, the scheduler countdown no longer restarts on every autosave, and the Activity list is bounded in memory.
Verification
178 tests in 24 suites pass. The full suite also passes under AddressSanitizer, and the sync, session, and authentication suites pass under ThreadSanitizer. The app and the disk image are both Developer ID-signed, notarized by Apple, and stapled.
Verify your download against the checksum file attached to this release:
shasum -a 256 ~/Downloads/Skylight.Bridge-1.6.1.dmg