Skip to content

Releases: KeepSoftwareSimple/compass-calendar

macOS dev channel (unsigned)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Oct 02:09
1ac33e9

Unsigned QA builds for the Sparkle dev channel. Replaced on every merge to main that touches the macOS app. Not for customers; use the macos-v releases.

v1.3.0

Choose a tag to compare

@tyler-dane tyler-dane released this 02 Oct 00:08
ca32bbd

What's Changed

  • fix(web): stop signup toast from stealing 1:00 create by @tyler-dane in #3071
  • fix(web): teach advertised shortcuts on blocked clicks by @tyler-dane in #3070
  • fix(web): save booking settings with Mod+Enter by @tyler-dane in #3073
  • refactor: share block-party, booking, and shortcut helpers by @cursor[bot] in #3075
  • fix(web): keep guest form off empty-horizon jump by @tyler-dane in #3077
  • fix(web): teach Esc on Up Next banner dismiss by @tyler-dane in #3074
  • fix(web): land typed times on the focused week column by @tyler-dane in #3078
  • refactor(web): collapse duplicated focus-retry loops and pointer hint lists by @tyler-dane in #3079
  • fix(web): stop repeating email on destination calendar select by @tyler-dane in #3091
  • fix(web): use icon buttons for booking link actions by @tyler-dane in #3092
  • fix(web): pin booking keyboard hints to the sticky save bar by @tyler-dane in #3094
  • fix(web): unwrap posthog's rejection prefix before dropping known noise by @tyler-dane in #3095
  • feat(web): default to light theme by @tyler-dane in #3093
  • fix(web): map booking save failures to actionable toasts by @tyler-dane in #3096
  • fix(core): remove booking date-override feature by @tyler-dane in #3099
  • feat(web): hand-hold the Block Party onboarding game by @tyler-dane in #3097
  • feat(web): greet mobile visitors with the Time Block Party game by @tyler-dane in #3098
  • perf(web): take the booking stack off the boot path and gate mobile LCP by @tyler-dane in #3101
  • feat(web): return to the palette after overlay escape by @tyler-dane in #3100
  • feat(web): redesign guest confirmation and cancel pages by @tyler-dane in #3104
  • fix(ci): diagnose wedged unit test runs instead of raising the timeout by @tyler-dane in #3103
  • fix(web): configure web vitals explicitly and reject zeroed timings by @tyler-dane in #3102
  • fix(web): let series-scope toast own digits 1 and 2 by @tyler-dane in #3105
  • fix(booking): let the Compass calendar block availability by @tyler-dane in #3106
  • docs(booking): specify guest reschedule for v1.3 by @tyler-dane in #3123
  • refactor: share game scoring, overlay dismiss, and booking put pick by @cursor[bot] in #3125
  • refactor(web): extract shared booking number-field row by @tyler-dane in #3126
  • refactor(web): resolve confirmed-page view like cancel page by @tyler-dane in #3127
  • fix(web): move booking settings hint out of the sticky save bar by @tyler-dane in #3152
  • fix(web): add diagnostic properties to sse connection degraded events by @tyler-dane in #3163
  • feat(billing): add stripe publishableKey config (WP-01) by @tyler-dane in #3164
  • feat(billing): add subscription summary, cancel, and resume (WP-02) by @tyler-dane in #3165
  • feat(billing): add stripe.js embedded checkout port (WP-04) by @tyler-dane in #3168
  • feat(billing): add setup-mode payment-method session (WP-03) by @tyler-dane in #3167
  • fix(web): always show Mod+Enter keycaps on booking Save by @tyler-dane in #3153
  • feat(web): contextual prompt for locked write shortcuts by @tyler-dane in #3166
  • feat(web): copy buttons, text selection, and confusion-gated keyboard hint by @tyler-dane in #3171
  • fix(web): make booking settings hint screen-reader readable by @tyler-dane in #3170
  • feat(billing): render embedded checkout inside the gate (WP-05) by @tyler-dane in #3169
  • feat(web): Escape backs out one step on the public booking picker by @tyler-dane in #3193
  • feat(core): add booking reschedule contracts by @tyler-dane in #3124
  • feat(web): Settings > Billing management view (WP-06) by @tyler-dane in #3194
  • feat(web): Escape aborts the pending booking cancel confirm by @tyler-dane in #3195
  • feat(web): update card inside Settings billing (WP-07) by @tyler-dane in #3196
  • docs(billing): rewrite for embedded checkout (WP-08) by @tyler-dane in #3198
  • feat(web): confirm discard before Escape closes dirty booking settings by @tyler-dane in #3197
  • feat(web): return to booking page on confirmation Escape by @tyler-dane in #3199
  • feat(booking): let guests edit name and notes after confirm by @tyler-dane in #3200
  • feat(sync): reflect the Meet URL Google mints on booking create by @tyler-dane in #3201
  • docs(booking): add product audit prompt for next-milestone work by @tyler-dane in #3116
  • feat(booking): do not promise a Meet invite that cannot be minted by @tyler-dane in #3202
  • fix(web): keep event form title visible beside copy button by @tyler-dane in #3203
  • fix(web): keep cancel actions on the confirmation permalink by @tyler-dane in #3204
  • docs(providers): add calendar providers spec by @tyler-dane in #3205
  • fix(web): keep copy icons only on event guests by @tyler-dane in #3280
  • fix(web): f4 then Enter opens the targeted event, not a 4am draft by @tyler-dane in #3281
  • fix(booking): log failed race compensation instead of swallowing it by @tyler-dane in #3282
  • fix(booking): bound confirmed reservation scans to the requested window by @tyler-dane in #3286
  • fix(booking): rate-limit host admin GET and PUT page routes by @tyler-dane in #3287
  • docs(booking): record that public rate limits are per-process by @tyler-dane in #3288
  • fix(booking): expire guest cancel and edit tokens at slotEnd by @tyler-dane in #3289
  • fix(booking): re-check billing before guest confirm by @tyler-dane in #3290
  • fix(booking): mark cancel locally before deleting the event by @tyler-dane in #3291
  • feat(scripts): run verify checks concurrently and prefer fast tiers by @tyler-dane in #3285
  • refactor(booking): fold the repeated guest reservation lookups into helpers by @tyler-dane in #3296
  • docs(ci): review the 2026-09-03 loop slowdowns and plan the fixes by @tyler-dane in #3298
  • ci: cache docker layers and pin oven/bun to 1.3.14 by @tyler-dane in #3293
  • fix(ci): run the unit matrix once per PR push by @tyler-dane in #3284
  • ci: run perf-budget on main and nightly, not every web PR by @tyler-dane in https://github.com/Ke...
Read more

v1.2.0

Choose a tag to compare

@tyler-dane tyler-dane released this 01 Sep 21:19
f349c9e

What's Changed

  • fix(web): stabilize up next card by @tyler-dane in #2547
  • fix(web): stop throwing when right-clicking an uncached event by @PostHog[bot] in #2549
  • fix(web): keep event's own date selectable in recurrence "Ends on" picker by @PostHog[bot] in #2550
  • fix(web): patch tanstack router redirect race throwing undefined by @cursor[bot] in #2553
  • docs: align google sync focus refresh and sse contracts by @cursor[bot] in #2554
  • fix(web): drop opaque script error exceptions in posthog by @cursor[bot] in #2551
  • feat(core,sync,backend,web): surface meeting links, location, attendees, and rich-text descriptions by @tyler-dane in #2555
  • fix(web): harden description link paste, attendee a11y, richer demo data by @tyler-dane in #2556
  • feat(core,sync,backend,web): make event location editable by @tyler-dane in #2557
  • feat(web): show a Join link on the Up Next card by @tyler-dane in #2558
  • fix(web): allow 15-min draft drag without flip by @tyler-dane in #2559
  • feat: Up Next banner with Open/Join and meeting links by @tyler-dane in #2561
  • fix(web): keep Enter as newline in description editor by @tyler-dane in #2560
  • fix(web): Up Next banner contrast and dismiss/entrance polish by @tyler-dane in #2562
  • fix(web): submit event form with Mod+Enter from color swatch by @tyler-dane in #2563
  • feat(core,backend,sync): carry calendar account email and event iCalUID on the wire by @tyler-dane in #2564
  • feat(core,backend,web): show connected Google accounts as separate calendar sections by @tyler-dane in #2565
  • feat(web): let the user choose which calendar new events go to by @tyler-dane in #2566
  • feat(sync,web): let a connected user add another Google account by @tyler-dane in #2567
  • feat(backend,web): let a user disconnect one Google account by @tyler-dane in #2568
  • feat(core,sync,backend): carry each event's cross-copy key to the browser by @tyler-dane in #2569
  • feat(web): show a meeting connected on two accounts as one event by @tyler-dane in #2570
  • feat(scripts): add backfill-icaluid CLI to correlate pre-MA1 events by @tyler-dane in #2571
  • feat(scripts): add audit-connection-identity to report A2 collisions by @tyler-dane in #2572
  • feat(web): paint a two-color gradient accent on merged cross-account cards by @tyler-dane in #2573
  • fix(web): eliminate the flaky keyboard-selection e2e failure by @tyler-dane in #2574
  • refactor: simplify multi-account cross-account-merge plumbing by @tyler-dane in #2575
  • fix(web): stop showing a redundant top-level header once account sections take over by @tyler-dane in #2576
  • fix(sync): break the unwatchable-calendar bootstrap loop by @tyler-dane in #2577
  • fix(web): scope single-account sidebar header to the signed-in user's own connection by @tyler-dane in #2578
  • feat(web): move add/disconnect account behind palette + hover, add per-account collapse by @tyler-dane in #2579
  • refactor(web): dedupe sidebar account-heading UI and memoize calendar grouping by @tyler-dane in #2580
  • feat(web): Settings menu (Mod+,) with Accounts section, remove default-calendar star by @tyler-dane in #2581
  • fix(web): quiet the sidebar - hide healthy status, no loading shift, muted rows by @tyler-dane in #2583
  • refactor(web): move Add account from sidebar hover icon to command palette by @tyler-dane in #2584
  • refactor(web): render one account header for every account by @tyler-dane in #2585
  • refactor(web): memoize the event pipeline once, in its only consumer by @tyler-dane in #2586
  • refactor(web): one calendar ordering shared by sidebar, Settings and the event form by @tyler-dane in #2587
  • refactor(sync): delete the three sweep wrapper services by @tyler-dane in #2588
  • refactor(web): unify the add-account gate between the palette and Settings by @tyler-dane in #2589
  • refactor(sync): one signal for a stalled bootstrap by @tyler-dane in #2590
  • refactor(backend,web): dedupe google.connection wire field and sync-client error wrapping by @tyler-dane in #2591
  • feat(scripts): add backfill-bootstrap-state CLI for the OPS-1 migration by @tyler-dane in #2592
  • feat(logging): ship backend + sync logs to PostHog by @tyler-dane in #2594
  • fix(sync): preserve iCalUID across sparse provider upserts by @tyler-dane in #2596
  • refactor(sidebar): move "Saving changes…" to reserved footer strip by @tyler-dane in #2598
  • Allow arbitrary minute times in event form time picker by @tyler-dane in #2597
  • fix(web): give LifeView tests a query client provider by @tyler-dane in #2600
  • chore(scripts): retire backfill-icaluid command by @tyler-dane in #2599
  • refactor(sync): retire the bootstrapState schema default by @tyler-dane in #2593
  • Command palette: fuzzy search, About action, fix Settings shortcut by @tyler-dane in #2601
  • Command palette: interaction quality and polish pass by @tyler-dane in #2602
  • fix: manual google disconnect shows success, not alarm by @tyler-dane in #2595
  • Fix disconnected account lingering in UI, consolidate palette account items by @tyler-dane in #2603
  • fix(web): pin google sync status to sidebar bottom bar, add Settings log out by @tyler-dane in #2604
  • fix(web): flush local events onto Google, not the local calendar, at connect time by @tyler-dane in #2605
  • fix(web): exclude local calendar from writable set once an account is connected by @tyler-dane in #2609
  • fix(web): hide the local calendar sidebar row once an account is connected by @tyler-dane in #2610
  • fix(web): relabel the local calendar row via its existing account heading by @tyler-dane in #2611
  • test(web): verify disconnect restores the local calendar as a target and row by @tyler-dane in #2612
  • Add "Now" state to Up Next event component for late arrivals by @tyler-dane in #2608
  • fix(web): read the real end time for midnight-spanning Up Next events by @tyler-dane in #2613
  • Stop re-asking "Apply to series?" after user treats instance as one-off by @tyler-dane in #2607
  • fix(web): stop day-view all-day events rendering as slivers by @tyler-dane in #2614
  • fix(sync): stop a deleted-then-recreated event from becoming undeletable by @tyler-dane in #2615
  • fix(events): ...
Read more

v1.1.0

Choose a tag to compare

@tyler-dane tyler-dane released this 01 Aug 23:02
21c844d

What's Changed

Read more

v1.0.0

Choose a tag to compare

@tyler-dane tyler-dane released this 18 Jun 12:50
7ca3d49

What's Changed

Full Changelog: v0.6.0...v1.0.0

v0.6.0

Choose a tag to compare

@tyler-dane tyler-dane released this 02 Jun 14:56
4b9ac43

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@tyler-dane tyler-dane released this 01 May 01:19
5e72224

What's Changed

New Contributors

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@tyler-dane tyler-dane released this 31 Mar 10:01
9556078

What's Changed

  • docs: add docs and update eslint tooling by @Copilot in #1493
  • chore(waitlist): remove waitlist functionality and related tests by @tyler-dane in #1498
  • chore(dependencies): remove unnecessary deps by @tyler-dane in #1500
  • chore: autofix eslint issues by @tyler-dane in #1502
  • chore(dependencies): update yarn.lock to reflect dependency changes by @tyler-dane in #1503
  • chore(deps): bump immutable from 5.1.4 to 5.1.5 by @dependabot[bot] in #1508
  • chore(deps): bump svgo from 2.8.0 to 2.8.2 by @dependabot[bot] in #1509
  • chore(deps): bump tar from 7.5.9 to 7.5.10 by @dependabot[bot] in #1510
  • docs: add cursor instructions to AGENTS.md by @tyler-dane in #1511
  • test: cleanup test warnings and lint errors by @tyler-dane in #1505
  • docs: update testing guidance after warning cleanup by @cursor[bot] in #1515
  • docs: align architecture and cli docs with waitlist removal by @cursor[bot] in #1514
  • ci: fix flakey shortcut e2e test by @tyler-dane in #1513
  • refactor(event): streamline event controller error handling and improve code clarity by @tyler-dane in #1504
  • ci: use matrix to run project tests separately by @tyler-dane in #1522
  • docs: update CI testing docs for matrix unit workflow by @cursor[bot] in #1523
  • docs(sync): document google revocation and reconnect behavior by @cursor[bot] in #1524
  • fix(web): convert pop up error as cancellation by @tyler-dane in #1516
  • docs(web): clarify google oauth popup cancellation behavior by @cursor[bot] in #1525
  • fix(web): clean web test warnings by @tyler-dane in #1526
  • docs(web): document test harness and runtime behavior updates by @cursor[bot] in #1527
  • feat(backend): add /health endpoint by @tyler-dane in #1529
  • docs(backend): document /api/health behavior and runbook by @cursor[bot] in #1530
  • docs(api): expand backend route and auth interface docs by @cursor[bot] in #1532
  • feat(user-metadata): enhance Google metadata handling and update tests by @tyler-dane in #1531
  • chore(deps): bump yauzl from 3.2.0 to 3.2.1 by @dependabot[bot] in #1536
  • chore(deps): bump flatted from 3.3.4 to 3.4.1 by @dependabot[bot] in #1537
  • feat: classify auth for google reconnect on server by @tyler-dane in #1535
  • refactor: uppercase status for consistency by @tyler-dane in #1538
  • docs: align google metadata status docs with uppercase contract by @cursor[bot] in #1540
  • feat: add SidebarIconRow component for calendar sidebar navigation by @tyler-dane in #1539
  • docs: document calendar sidebar footer control layout by @cursor[bot] in #1541
  • style: use tailwind for Dedication by @tyler-dane in #1543
  • refactor(backend): update event processor by @tyler-dane in #1542
  • docs: sync Dedication dialog docs with tailwind/dialog refactor by @cursor[bot] in #1544
  • docs(backend): expand recurrence sync runbook and transition docs by @cursor[bot] in #1545
  • docs(sync): document watch lifecycle and migration runbook by @cursor[bot] in #1548
  • feat(web): make sidebar collapsible by @tyler-dane in #1549
  • docs(web): document collapsible shortcuts sidebar behavior by @cursor[bot] in #1550
  • chore(deps): bump socket.io-parser from 4.2.5 to 4.2.6 by @dependabot[bot] in #1551
  • feat(auth): enhance user authentication flow and Google connection handling by @tyler-dane in #1547
  • docs: align auth and event-flow docs with password-auth changes by @cursor[bot] in #1552
  • refactor: reduce import state on client by @tyler-dane in #1554
  • dependencies: fix warnings by @tyler-dane in #1546
  • docs: align google connection state docs with current runtime by @cursor[bot] in #1557
  • feat(web): replace existing shortcuts with TanStack Hotkeys by @tibisabau in #1507
  • !feat(env): update environment configuration for web URLs by @tyler-dane in #1561
  • docs: align env setup and auth reset runbooks with current code by @cursor[bot] in #1565
  • chore(deps): bump picomatch from 2.3.1 to 2.3.2 by @dependabot[bot] in #1567
  • !fix: password reset flow by @tyler-dane in #1566
  • docs: align password auth flow doc with merged runtime behavior by @cursor[bot] in #1568
  • chore(deps): bump brace-expansion from 1.1.12 to 1.1.13 by @dependabot[bot] in #1571
  • feat(auth): enhance email verification flow and Google connection handling by @tyler-dane in #1570
  • docs(features): align password auth and google connect-later docs by @cursor[bot] in #1572
  • docs: update AGENTS and backend error handling documentation; add README for backend by @tyler-dane in #1573
  • docs(backend): align auth and sync behavior documentation by @cursor[bot] in #1574
  • feat: handle account linking by @tyler-dane in #1575
  • docs(auth): clarify google connect conflict behavior and triage by @cursor[bot] in #1577
  • feat: improve UX during repairs by @tyler-dane in #1580
  • docs: update google repair/import websocket documentation by @cursor[bot] in #1581
  • fix(web): sync local events before google connect refresh by @tyler-dane in #1582
  • chore(deps): bump path-to-regexp from 0.1.12 to 0.1.13 by @dependabot[bot] in #1583
  • docs(sync): align google connect flow documentation by @cursor[bot] in #1584
  • fix: 409 for duplicate email connections by @tyler-dane in #1586
  • feat: convert websockets to server-side events by @tyler-dane in #1587
  • docs(auth): align duplicate-email and connect conflict docs by @cursor[bot] in #1588
  • fix(core): use isSame() in isSameMonth to include year comparison by @Muhammad-Nur-Alamsyah-Anwar in #1579
  • docs: update SSE stream docs and retire websocket flow page by @cursor[bot] in #1589
  • refactor(auth): update Google connection UI and logic by @tyler-dane in #1591

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@tyler-dane tyler-dane released this 02 Mar 00:15
764d091

What's Changed

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@tyler-dane tyler-dane released this 01 Feb 22:43
849298c

What's Changed

  • feat(web): remove reminder from day and week views by @tyler-dane in #1402
  • chore(core): Remove flaky timer tests and dead code by @Copilot in #1403
  • feat: add cursor rules by @Copilot in #1406
  • chore: create dedicated Claude and Codex skills, remove shared skill by @Copilot in #1409
  • feat: simplify onboarding by @tyler-dane in #1404
  • docs: revise README structure and content by @tyler-dane in #1417
  • chore(deps): bump tar from 7.5.2 to 7.5.7 by @dependabot[bot] in #1420
  • chore(deps): bump diff from 4.0.2 to 4.0.4 by @dependabot[bot] in #1416
  • chore(deps): bump preact from 10.27.2 to 10.28.2 by @dependabot[bot] in #1413
  • chore(deps): bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in #1419
  • fix(backend): update 410 error handling with force flag by @tyler-dane in #1425
  • chore(deps): bump node-forge from 1.3.1 to 1.3.3 by @dependabot[bot] in #1426

Full Changelog: v0.1.0...v0.2.0