11 KiB
Changelog
Release notes for Compass. scripts/release.sh reads the entry for the version being tagged straight out
of this file and uses it as the GitHub release body (falls back to gh release --generate-notes if no
entry matches). That release body is what the /news page reads, via the GitHub Releases API — so
an entry here only reaches users once its version is actually tagged and released.
Each entry:
- Starts with
## <version>(must matchpackage.json'sversionexactly) and ends at the next##heading or a---separator line —scripts/release.shparses on that boundary. - Has two parts, in order:
- A user-facing summary — plain language, no internals. Shown by default on
/news. - A technical details section — implementation-level notes. Collapsed behind a "Show technical
details" toggle on
/news.
- A user-facing summary — plain language, no internals. Shown by default on
- Separates those two parts with an HTML comment,
<!--tech-->, alone on its own line. That exact marker is whatweb/pages/news.tsxsplits on. An entry without the marker (e.g. old releases before this convention) just renders as-is on/news, with no expandable section — keep that in mind while backfilling.
To edit an already-published release's notes to match this convention, use
gh release edit <tag> --notes-file <(sed ...) or paste manually in the GitHub UI — scripts/release.sh
only runs at tag-creation time, so it won't touch releases that already exist.
1.14.0 — 2026-08-02
New features
- Referral links are now editable — pick your own link, and the share button and QR code update with it
- Redesigned settings: theme, font and language pickers, plus clearer account and privacy controls
- Added exercise habits to profiles, with a matching filter
- Profile form now has a section index — sticky on desktop, a collapsible bar on mobile
- Long-press a profile card on touch devices to reveal its actions
- Links you type in bios, comments and messages are detected automatically, and stay correct when edited
- Emoji reactions on messages can now be toggled off
- When no profiles match, the search page shows a summary of the filters you applied
- The Filters button now shows how many filters are active
Improvements
- Redesigned the home, about, profile and press pages
- New profile photo experience: a hero photo with a swipeable carousel underneath
- Redesigned proposals: color-coded vote buttons, status indicators, and filters
- Redesigned the new-message email with an avatar, profile link, and conversation context
- Warmer welcome email with a founder's note and your referral link
- Notifications from the same conversation now collapse into one instead of stacking up
- Renamed "My Matches" to "Looking For" for clarity
- Grouped "Background" fields (ethnicity, raised in) with cultural information; moved orientation above languages; gave photos their own category in the optional profile form
- Going back now restores your scroll position instead of jumping to the top
- Better mobile keyboard handling: the bottom nav gets out of the way and the message view keeps its place
- Compass links now open inside the app instead of bouncing out to the browser
- The filters panel docks on desktop and slides over on mobile, remembering its state
- More inclusive pronoun wording on profile connect and comment sections
- Various typography and contrast polish across profiles, chat, and timestamps
- Clearer, shorter FAQ introduction
Trust & safety
- Clearer explanation when an account is on hold, tailored to the reason
- Moderators can act on a banned account directly from their profile
- Staff accounts are exempt from the spam guard
- Tightened database access so profile and activity data can no longer be pulled in bulk
Security & database
- Revoked bulk-read grants on
profiles,users,user_activity,profile_starsandcompatibility_scores; client reads now go through row-limited security-definer functions (20260730_cap_profiles_users_reads.sql,20260731_lock_activity_stars_compat.sql) - Added
ban_reasontousers(20260728_add_ban_reason_to_users.sql) andexercisetoprofiles(20260731_add_exercise_to_profiles.sql) - Aggregate stats moved server-side into
stats.tsnow that the client can no longer scan tables - Dropped the obsolete
temp_users/user_waitlistreference SQL and the import-profile finalize script - Fixed redundant parentheses in the
is_banned_from_postingcondition
Backend & API
- Enabled
compressionmiddleware to cut response payload size - OpenAPI: centralized the
securitySchemesdefinition and omitted internal endpoints from the public spec projectiondefaults tocardin the profiles schema- Backend support for
banReasonon ban actions - API version bumped 1.51.0 → 1.57.1
Web
- Added
SyncAutolink, a TipTap extension that updates or removes link marks as URLs are edited;linkifyUrlsreplaceslinkifyTrailingUrlthroughout;linkifyjsupgraded to 4.3.2 - New hooks:
useScrollRestoration,useLongPressReveal,useHideBottomNavOnKeyboard,useScrolledPast - Visual-viewport-based keyboard handling in
_app.tsx; fixed scroll measuring during programmatic updates and container resizes; allowed scroll chaining in short panels - Replaced
ProfileGallerywith modularProfileHeroPhoto,ProfilePhotoCarouseland a shareduseProfilePhotos - Extracted
Section/SectionHeading,ScrollPanel,CompatibleBadgeandDottedList; added afont-microcapsutility - Push notifications use
collapseKeyfor deduplication; addedServiceWorkerGlobalScopeglobals to the ESLint config - Moved the Vercel build-ignore logic into a standalone script that handles a missing previous SHA
Android
- versionCode 134 → 145, versionName 1.32.0 → 1.35.0
- Deep links to compassmeet.com resolve via client-side navigation instead of an OS handoff
Testing
- Capped
ts-jestworker usage to prevent memory exhaustion on high-core-count machines - Raised the Playwright expect timeout to 60 seconds
- Extracted
clickCheckboxandoptionChiphelpers and added missingdata-testidattributes get-profilestests now mock the database client
Tooling & docs
- Added a GitHub Action that announces published releases on Mastodon (
@compassmeet) - Added the iOS implementation plan (
docs/ios.md) and reputation-system design notes - Revamped the README; testing docs and
CLAUDE.mdnow discourage monorepo-wideyarn test - Deduplicated
yarn.lock; upgradedcompressionandreact-is
Full Changelog: https://github.com/CompassConnections/Compass/compare/1.13.0...1.14.0
1.13.0 — 2026-07-27
New features
- Voice messages: record, transcribe, and play back audio directly in profiles and chats
- Added a media creator tool for building profile photos/videos in-app
- Added a searchable FAQ page with categories and deep links to individual answers
- Signal is now a supported way to share contact info (phone number or signal.me link)
- Finnish added to the list of profile languages
- Sexual orientation is now its own profile field, with expanded gender options
- Added neurotype and other accessibility fields to profiles
- "Get Notified" button on saved searches — get alerted as soon as a new match appears
- Redesigned notifications: clearer settings and empty states explaining what triggers an alert
Improvements
- Redesigned the About page with growth stats and clearer help cards
- Redesigned the sidebar for better accessibility and visual hierarchy
- Saved profiles are now called "bookmarks" instead of "stars" throughout the app
- Added a lightbox for viewing a profile's pinned photos/videos
- Nudge to keep your account (instead of deleting it) when matches are scarce
- Customizable share icon and a targeted share sheet for sending profiles to friends
- Hint to help you center your face when uploading a profile picture
- Tidied up filter labels; moved "relationship style", "raised in", and "causes" into clearer sections
- Refined numeric-range and diet filters to handle edge cases better
- Added a world map and demographic breakdowns to the
/statspage
Trust & safety
- Added a spam guard that limits new conversations per day and auto-bans abusers
- Banned and disabled profiles no longer appear in search results
- Added limitations for accounts flagged as suspicious
- Added the ability to report a message channel
Backend & API
compute-scores: delete invalid compatibility-score rows instead of nulling them; exclude null scores when ordering profiles, with test coveragesearchUsers: exclude banned users and disabled profiles at the query level whenexcludeUnavailableis set, with unit tests- Hardened SQL across notification settings, private messages, and GeoDB API requests (input sanitization, stricter limit validation)
content_owner_idmade nullable onreports; removed the outdated "self update" policy onprofiles- Added
getChannelsCountAPI endpoint - Refactored profile column retrieval for better caching
- API version bumped 1.40.0 → 1.50.0 across the range
Android
- Declared microphone permissions and runtime permission handling for voice recording
- Added a custom icon/color for FCM push notifications
- Added
MEDIA_SOURCE_BASE_URLto the CD build environment - Bumped
compileSdkVersion/targetSdkVersionto 36; app version bumped through 1.31.1 (versionCode 133)
Testing
- Restructured the Playwright E2E suite around a POM/Fixture app-class pattern
- Added a multi-account context manager for tests that need several accounts interacting at once
- Added coverage for messaging, profile hiding/bookmarking, filters, onboarding, compatibility questions, and Google-account sign-in
- Added DB seeding and account-cleanup helpers for test isolation
Performance
- Reduced excessive re-renders in the rich-text editor; editor max-height is now computed dynamically
- Added loading skeletons and avoided redundant refetches on the profiles grid
Tooling & docs
- Added scripts for OG/social-preview card rendering, AI-generated showcase portraits, vote-tally capture, and demo/tour video generation (Remotion)
- Vote-tally images switched to PNG; dropped the narrow and WebP variants
- Added
.env.localoverride support torun_local.sh; added dev DB/Firebase reset commands - Added F-Droid publishing documentation and a React/TypeScript fundamentals guide; added
CLAUDE.mdto several sub-packages
Full Changelog: https://github.com/CompassConnections/Compass/compare/1.12.0...1.13.0