Repository navigation
Releases: KeepSoftwareSimple/compass-calendar
Releases · KeepSoftwareSimple/compass-calendar
Release list
macOS dev channel (unsigned)
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
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...
v1.2.0
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): ...
v1.1.0
What's Changed
- chore: delete reminder code by @tyler-dane in #1875
- refactor(web): migrate styled-components to Tailwind by @tyler-dane in #1873
- style: tooltips by @tyler-dane in #1880
- fix(web): delete draft events immediately by @tyler-dane in #1881
- fix(grid): sync placeholder color with active draft by @tyler-dane in #1882
- refactor(web): remove cursor styling from interaction engine by @tyler-dane in #1886
- fix(web): keep day event form closed after drag by @tyler-dane in #1888
- refactor(web): remove rxjs in favor of existing tools by @tyler-dane in #1890
- style: simplify box shadow css by @tyler-dane in #1883
- refactor(web): replace floating-form store bus with idiomatic floating-ui by @tyler-dane in #1893
- fix(web): restore day draft form opening after drag by @tyler-dane in #1894
- fix(web): honor manual scroll on timed drag commit by @tyler-dane in #1896
- fix(web): stop Cmd+D from also navigating to Day view by @tyler-dane in #1898
- fix(web): fix
Deleteshortcut by @tyler-dane in #1899 - chore(web): cleanup hook files and dead code by @tyler-dane in #1901
- fix(web): close actions menu on blur by @tyler-dane in #1902
- refactor: simplify actions menu by @tyler-dane in #1904
- deps: update posthog-js by @tyler-dane in #1905
- style(web): unify Day/Week view headers by @tyler-dane in #1906
- fix(web): simplify day view toasts and remove unsupported undo by @tyler-dane in #1908
- feat: resize tasks and consolidate storage by @tyler-dane in #1907
- fix(web): all-day clicks by @tyler-dane in #1909
- Add Claude Code GitHub Workflow by @tyler-dane in #1911
- fix(web): restore migrate-with-shortcut behavior and focus by @tyler-dane in #1912
- feat(web): add query listener infrastructure by @tyler-dane in #1913
- Revert "Add Claude Code GitHub Workflow" by @tyler-dane in #1915
- docs: update readme by @tyler-dane in #1916
- feat: migrate day-events read to TanStack Query + listener middleware by @tyler-dane in #1914
- refactor(web): replace sagas with simple objects by @tyler-dane in #1919
- refactor(web): use tanstack query for event reads by @tyler-dane in #1920
- refactor(web): move persisted events to query state by @tyler-dane in #1922
- docs: update README by @tyler-dane in #1923
- refactor(web): harden event mutations by @tyler-dane in #1924
- feat(web): Warm the event cache for instant week/day navigation by @tyler-dane in #1925
- feat(web): keep pending events interactive with sidebar sync spinner by @tyler-dane in #1926
- feat(web): move google sync status into sidebar email text, remove header icon by @tyler-dane in #1927
- refactor(web): convert redux to zustand by @tyler-dane in #1928
- docs: update domain model and sse flow by @tyler-dane in #1930
- feat: add claude ship skill and enable others by @tyler-dane in #1931
- fix(web): delete existing events via FloatingEventForm; fix flaky keyboard-delete e2e spec by @tyler-dane in #1932
- feat(web): reorganize shortcuts by action, add day 'a' and week 'u' by @tyler-dane in #1933
- feat(claude): consolidate simplify-code into simplify skill by @tyler-dane in #1934
- feat(web): adjust columns based on window width by @tyler-dane in #1935
- style: replace relic components with tailwind classes by @tyler-dane in #1936
- feat(claude): require manual testing steps in ship's PR bodies by @tyler-dane in #1937
- fix: stop auto-subscribing new users, make it opt-in by @tyler-dane in #1938
- fix(web): clear stale email from sidebar after sign-out by @tyler-dane in #1940
- style(web): move auth modal sign up/log in toggle to top-right by @tyler-dane in #1939
- feat(web): persist sidebar open state across refreshes by @tyler-dane in #1941
- style(web): keep header nav controls in a fixed position by @tyler-dane in #1942
- fix: adjust biome for claude and worktrees by @tyler-dane in #1943
- fix(web): make [ sidebar shortcut global and stop flash on refresh by @tyler-dane in https://github.com//pull/1945
- style(web): redesign welcome modal with single cta and browser-back nav by @tyler-dane in #1944
- fix(web): stop someday DnD month→week drop from clobbering new dates by @tyler-dane in #1946
- test(web): enable real dexie + fake-indexeddb round trips in web tests by @tyler-dane in #1947
- fix(web): show visual feedback when keyboard-lifting a day task by @tyler-dane in #1948
- docs: have simplify skill commit separately and curb useEffect overuse by @tyler-dane in #1949
- docs: remove image from README by @tyler-dane in #1951
- feat(web): persist week view position across refresh via /week/:dateString by @tyler-dane in #1950
- feat(web): migrate react-router-dom v6 to @tanstack/react-router (Phase 1 + partial Phase 2) by @tyler-dane in #1952
- refactor(web): replace react-cmdk with a native command palette (#1686) by @tyler-dane in #1953
- refactor(web): route auth modal ?auth= param through tanstack router by @tyler-dane in #1954
- fix(web): open sidebar for command palette event creation, add shortcuts + keycaps by @tyler-dane in #1955
- test(e2e): fix ci worker-contention flakiness, restore specs by @tyler-dane in #1956
- refactor(web): clean up post-migration comment/copy debt and dead code by @tyler-dane in #1957
- chore: add qa-staging skill for post-merge staging QA sweeps by @tyler-dane in #1959
- fix: remove auth params during oauth by @tyler-dane in #1960
- feat(web): undo/redo event changes with cmd/ctrl+z by @tyler-dane in #1961
- style: sidebar and cleanup deprecated configs/comments by @tyler-dane in #1962
- feat(dev): assign per-worktree dev ports via preflight script by @tyler-dane in #1963
- fix(web): make undo/redo reliable under rapid replay by @tyler-dane in #1964
- fix(backend): retry transient write conflicts in event sync transactions by @tyler-dane in #1965
- docs: capture debugging gotchas, add ship correctness-review gate by @tyler-dane in #1967
- feat(web): move events with shift+arrow keyboard shortcuts by @tyler-dane in htt...
v1.0.0
What's Changed
- test(web): run isolated web suite directly by @tyler-dane in #1848
- test(web): strengthen shortcuts overlay assertions by @tyler-dane in #1849
- chore(web): remove now view by @tyler-dane in #1850
- docs: add images to README for better visualization by @tyler-dane in #1854
- ci: add prod deploy workflow by @tyler-dane in #1855
- feat: add life view by @tyler-dane in #1856
- docs: update contributing.md by @tyler-dane in #1858
- feat(web): add welcome modal for new visitors by @tyler-dane in #1857
- style: add github logo by @tyler-dane in #1860
- Improve welcome modal styling and focus states by @tyler-dane in #1862
- docs: update CONTRIBUTING.md by @tyler-dane in #1863
- docs: update README and CONTEXT by @tyler-dane in #1864
- docs: update README by @tyler-dane in #1865
- fix(web): stabilize day drag and drop by @tyler-dane in #1866
- docs: add a11y and simplify skills by @tyler-dane in #1867
- feat: add posthog config to production deploys by @tyler-dane in #1869
- fix(ci): add production kit email config by @tyler-dane in #1870
Full Changelog: v0.6.0...v1.0.0
v0.6.0
What's Changed
- fix(web): duplicate week events by @Uarmagan in #1706
- [codex] fix review event query typecheck by @Uarmagan in #1695
- docs: prioritize server self-hosting by @Uarmagan in #1708
- [codex] simplify recurrence tooltip by @Uarmagan in #1707
- Move Now description shortcut to E and add explicit save action by @Uarmagan in #1710
- feat: auto-sync docs/ to compass-docs on push by @tyler-dane in #1712
- docs: simplify section headings for consistency by @tyler-dane in #1713
- chore: upgrade actions/checkout to v6 in sync-docs workflow by @tyler-dane in #1714
- docs: note that docs/ is auto-mirrored to the docsite by @tyler-dane in #1715
- docs: move publishing note to end of docs README by @tyler-dane in #1717
- refactor: clarify google sync ownership by @Uarmagan in #1711
- docs: update README by @tyler-dane in #1720
- refactor: deepen Google sync domain modules by @Uarmagan in #1721
- [codex] type-check web tests by @Uarmagan in #1718
- fix(web): redirect Google auth through callback by @Uarmagan in #1723
- docs: update README by @tyler-dane in #1728
- docs: update handbook link in README by @tyler-dane in #1729
- docs: add impeccable skill by @Uarmagan in #1731
- [codex] rename calendar view to week view by @Uarmagan in #1725
- docs(README): limitations and tech stack details by @tyler-dane in #1738
- feat(self-host): improve on-premises deployment for homelabbers by @tyler-dane in #1737
- Rebuild planner sidebar design by @Uarmagan in #1733
- feat(ci-cd): auto bump patch version and deploy to staging on merge by @tyler-dane in #1740
- fix(ci-cd): use PAT to push tag so publish-images.yml is triggered by @tyler-dane in #1742
- fix(ci-cd): fix env var name mismatch in PAT push command by @tyler-dane in #1745
- fix(ci-cd): replace appleboy/ssh-action with native SSH by @tyler-dane in #1746
- fix(self-host): health check uses localhost instead of BASEURL by @tyler-dane in #1747
- Hide Someday buckets from Day view sidebar by @Uarmagan in #1743
- Polish planner sidebar UX by @Uarmagan in #1748
- feat(web): show app version in command palette by @tyler-dane in #1749
- fix(ci-cd): use workflow_call to chain bump → publish reliably by @tyler-dane in #1750
- fix(ci-cd): split release workflows by @tyler-dane in #1752
- fix(ci-cd): modernize release workflow job names and docker actions by @tyler-dane in #1753
- fix(self-host): check installer health locally by @Uarmagan in #1757
- feat: replace ENV with YAML config by @tyler-dane in #1755
- fix(ci): avoid config loading during backend image build by @tyler-dane in #1761
- fix(ci): update backend image build command by @tyler-dane in #1762
- fix(ci): simplify self-host install script by @tyler-dane in #1763
- fix(ci): use latest config when deploying to staging by @tyler-dane in #1764
- fix(ci): update staging deploy for self-hosted local services by @tyler-dane in #1765
- fix(ci): strip v prefix from Docker image version in staging deploy by @tyler-dane in #1766
- ci: migrate staging secrets to GitHub Environment by @tyler-dane in #1768
- deps(backend): bump mongodb by @tyler-dane in #1773
- fix: resolve lint issues by @Uarmagan in #1774
- refactor(config): move version from compose.version to runtime.version by @tyler-dane in #1770
- fix(ci): fall back from stale compose ref by @tyler-dane in #1777
- Week calendar interaction engine cutover by @Uarmagan in #1776
- feat(ci): add deploy health checks by @tyler-dane in #1779
- feat(cd): verify deployed frontend version by @tyler-dane in #1790
- Fix missing drag placeholder by @Uarmagan in #1789
- docs(self-host): add backup-restore doc by @tyler-dane in #1795
- docs(selfhost): update self-host backup restore workflow by @tyler-dane in #1796
- docs: update self-host web image guidance by @tyler-dane in #1797
- Move Someday events to interaction engine by @Uarmagan in #1788
- docs(self-host): improve self hosting docs by @tyler-dane in #1800
- refactor(ci): unify on selfhosted profile name by @Uarmagan in #1798
- Fix Someday sidebar migration crash by @Uarmagan in #1804
- docs: simplify quickstart by @tyler-dane in #1805
- Fix Someday hover times on week grid by @Uarmagan in #1806
- fix: use info color for anonymous signup icon by @jaryalarshita in #1799
- fix(test): decouple week registry date fixtures from clock by @tyler-dane in #1812
- fix(web): remove logout route by @GHX5T-SOL in #1794
- fix(web): clean up now view shortcuts — labels, key sequences, and platform tooltip by @HirenGajjar in #1807
- Week timed-event overlap deck cleanup and verification by @Uarmagan in #1816
- [codex] Redesign planner sidebar someday sections by @Uarmagan in #1817
- [codex] add bug capture skill by @Uarmagan in #1818
- fix: restore Day calendar parity with Week grid behavior by @Uarmagan in #1820
- chore: simplify labels by @tyler-dane in #1823
- chore: remove stale label references by @tyler-dane in #1826
- [codex] update Playwright e2e runner and improve speed to completion by @Uarmagan in #1829
- fix(web): align command palette navigation by @Uarmagan in #1821
- fix(web): prevent day agenda replacement form by @Uarmagan in #1831
- [codex] stabilize empty event selectors by @Uarmagan in #1832
- fix(web): sync session state on auth events by @Uarmagan in #1835
- Recover expired Google connect callbacks by @Uarmagan in #1834
- [codex] Restore logout confirmation by @Uarmagan in #1836
- fix(web): handle calendar event editor bugs by @Uarmagan in #1839
- [codex] Fix Day recurrence update loop by @Uarmagan in #1845
- fix(web): keep all-day drafts visible by @Uarmagan in #1846
- fix(web): preserve timed event stack order by @Uarmagan in #1844
- [codex] fix standalone recurrence scope prompt by @Uarmagan in #1847
New Contributors
- @GHX5T-SOL made their first contribution in #1794
- @HirenGajjar made their first contribution in #1807
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- fix: unify right/left arrow icons in datepicker and migration buttons by @jaryalarshita in #1592
- refactor: add frontend coding convention for component structure and update Google connection types by @tyler-dane in #1596
- !feat: convert yarn to bun by @tyler-dane in #1599
- refactor(config): migrate runtime and build flows to bun by @tyler-dane in #1602
- fix: event time label cutoff by @tyler-dane in #1611
- chore: cleanup dependencies by @tyler-dane in #1613
- feat: update sidebar hotkeys by @tyler-dane in #1615
- docs: add requirements by @tyler-dane in #1619
- docs(requirements): align shortcut modifier guidance with runtime by @cursor[bot] in #1621
- feat: update bun tests, part iii by @tyler-dane in #1605
- feat: add verify and docs to optimize AI coding by @tyler-dane in #1623
- feat: cleanup hotkeys by @tyler-dane in #1626
- chore: update dependencies and configuration by @tyler-dane in #1627
- refactor(deps): replace chalk and uuid with built-ins by @tyler-dane in #1633
- feat: add bun POC for serving web by @tyler-dane in #1634
- refactor(build): consolidate to Bun-native build workflow by @tyler-dane in #1644
- test(e2e): simplify flaky helper waits by @tyler-dane in #1645
- fix(build): set publicPath to root in build configurations by @tyler-dane in #1646
- chore(web): remove ts-key-enum by @tyler-dane in #1647
- chore: remove lodash.uniqby dependency and implement custom uniqBy function by @tyler-dane in #1650
- refactor: remove plimit by @tyler-dane in #1651
- chore: remove regenerator-runtime dependency from package.json and bun.lock by @tyler-dane in #1652
- refactor(web): replace axios with fetch by @tyler-dane in #1653
- dependencies: replace
eslint,husky,prettierwithbiomeby @tyler-dane in #1655 - refactor(web): switch web tests to bun runner by @tyler-dane in #1656
- docs: revise README for Compass Calendar project by @tyler-dane in #1658
- docs: add self-hosting guide by @Uarmagan in #1660
- fix(backend): repair backend test runner by @Uarmagan in #1661
- feat: add local self-host installer by @Uarmagan in #1663
- fix(web): load shared test compat setup by @Uarmagan in #1662
- fix(web): apply biome cleanup by @Uarmagan in #1665
- fix: save events locally without active session by @Uarmagan in #1664
- fix(backend): incomplete string escaping or encoding by @tyler-dane in #1666
- test(backend): add coverage for getEmailFromUrl decoding edge cases by @tyler-dane in #1667
- fix(self-host): clarify reinstall recovery by @Uarmagan in #1668
- fix(web): keep returning users on remote event storage by @Uarmagan in #1669
- docs: add Code of Conduct with detailed guidelines by @tyler-dane in #1674
- docs: update CONTRIBUTING.md by @tyler-dane in #1675
- [codex] remove ngrok tunnel support by @Uarmagan in #1673
- [codex] add local google watch tunnel support by @Uarmagan in #1672
- Hide recurrence controls without backend support by @Uarmagan in #1676
- chore(ci): add type-check workflow by @Uarmagan in #1679
- chore(web): clean up low-risk lint warnings by @Uarmagan in #1680
- chore(config): update typescript by @Uarmagan in #1678
- chore(config): disable literal key lint by @Uarmagan in #1681
- revert: low-risk lint cleanup and disable iterable callback lint by @Uarmagan in #1683
- Update agent context and docs structure by @Uarmagan in #1677
- [codex] fix safe lint cleanup by @Uarmagan in #1684
- chore(web): remove 404 page image to reduce bundle size by @tyler-dane in #1687
- [codex] fix web import and hook lint warnings by @Uarmagan in #1685
- Add tooltip support for recurring event messaging and stop hook formatting by @Uarmagan in #1682
- Refactor to remove explicit any usages by @Uarmagan in #1688
- Update self-hosting docs and server auth config by @Uarmagan in #1689
- Update self-host docs for cleaner onboarding by @Uarmagan in #1690
- fix(web): stabilize week view measurements by @Uarmagan in #1691
- [codex] fix week event drag save by @Uarmagan in #1697
- [codex] fix dragged event duration collapse by @Uarmagan in #1699
- docs: update self-hosting guides by @tyler-dane in #1693
- Update Google Calendar self-host docs by @Uarmagan in #1700
- Clarify self-hosting docs for local, backup, and Google setup by @Uarmagan in #1701
- Docs/add matt pocock skills by @Uarmagan in #1702
- fix(web): align week header and grid columns by @Uarmagan in #1692
- [codex] keep week events inside day lanes by @Uarmagan in #1703
- docs: simplify self-hosting README by @tyler-dane in #1704
New Contributors
- @jaryalarshita made their first contribution in #1592
- @Uarmagan made their first contribution in #1660
Full Changelog: v0.4.0...v0.5.0
v0.4.0
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
- @cursor[bot] made their first contribution in #1515
- @tibisabau made their first contribution in #1507
- @Muhammad-Nur-Alamsyah-Anwar made their first contribution in #1579
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- feat(cli): update
deletecmd to cleanup browser data by @Copilot in #1423 - feat(e2e): unskip event tests by @Copilot in #1428
- fix(backend): handle instance -> standalone conversion by @tyler-dane in #1436
- feat(web): warn mobile users and present waitlist by @tyler-dane in #1433
- Remove stale onboarding code after flow simplification by @Copilot in #1429
- chore(deps): bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 by @dependabot[bot] in #1437
- feat(web): add version update flow by @tyler-dane in #1438
- feat(web): add WEEK route and update SelectView to utilize it by @tyler-dane in #1442
- chore(deps): bump axios from 1.12.2 to 1.13.5 by @dependabot[bot] in #1446
- chore(deps-dev): bump webpack from 5.102.1 to 5.104.1 by @dependabot[bot] in #1445
- fix(web): remap view shortcuts to n d w (#1447) by @tyler-dane in #1450
- fix(web): handle expired session profile fetch (#1448) by @tyler-dane in #1449
- refactor(onboarding): remove onboarding-related code and constants by @tyler-dane in #1455
- feat(web): save tasks in indexeddb by @tyler-dane in #1453
- refactor(web): use
_idfor tasks by @tyler-dane in #1460 - feat(web): make migrations storage agnostic by @tyler-dane in #1463
- fix(web): migrate tasks with legacy 'id' field to '_id' primary key by @tyler-dane in #1465
- chore(deps): bump tar from 7.5.7 to 7.5.9 by @dependabot[bot] in #1464
- feat(web): seed demo data by @tyler-dane in #1466
- feat(web): add auth forms by @tyler-dane in #1473
- style(web): simplify z-index styling by @tyler-dane in #1475
- feat(backend): add auth guards by @tyler-dane in #1477
- chore(AGENTS): update agent instructions by @tyler-dane in #1474
- fix(web): close overlay after successful sync by @tyler-dane in #1482
- fix: google revocation handling by @tyler-dane in #1484
Full Changelog: v0.2.0...v0.3.0
v0.2.0
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