Release Notes

Stay up to date with the latest features, improvements, and fixes in Divine Link.

Latest: v1.6.2 Download
v1.6.2 05 August 2026 Latest

🔧 What's New in 1.6.2

  • First change, plain language, what it fixes for the user
  • Second change
⬇️ Download v1.6.2
v1.6.1 5 August 2026

🔧 What's New in 1.6.1

  • Fixed Stripe billing account linking for premium subscriptions created outside the normal checkout flow
  • Manage Billing now correctly opens your Stripe billing page
  • Fixed registered device tracking after sign-out or app relaunch
  • Account details now show your Stripe billing name, with an Edit option to change your name and church
⬇️ Download v1.6.1
v1.3.8 15 March 2026

🔧 External Device Transcription Fix

  • Transcription restart now reliable on non-default devices — recognition callback work is marshalled to the main queue so restart timers schedule on the active run loop.
  • Resolved post-switch transcription silence — fixes the "audio is active but text stops" failure mode seen after external input changes.
  • AudioUnit setup guard — force-initialises AVAudioEngine.inputNode before non-default device AudioUnit property writes.
⬇️ Download v1.3.8
v1.3.7 15 March 2026

🐛 Audio Engine Recreation Fix

  • Fixed silent buffers after input switching — removed audioEngine.reset() from recreation flow to avoid Core Audio HAL corruption.
  • Stability parity — recreation path now follows the same safe reset behaviour used in existing recovery flows.

📝 Settings Copy Improvement

  • BlackHole guidance now clearly states it is optional and only needed for capturing audio from another app on the same Mac.
⬇️ Download v1.3.7
v1.3.6 15 March 2026

🎙️ Transcription Fallback Fix

  • Resolved no-text transcription mode when on-device speech model is unavailable.
  • Automatic fallback behaviour — app now checks on-device support and falls back to server recognition where required.
⬇️ Download v1.3.6
v1.3.5 11 February 2026

🔧 Audio Capture Fix (Critical)

  • Silent audio resolved — Removed a Core Audio HAL corruption caused by audioEngine.reset() that silenced all subsequent captures.
  • Multi-channel USB support — Devices such as the Focusrite Vocaster Two now correctly detect the active microphone channel instead of defaulting to channel 0.
  • Startup race condition fixed — Debounced the device observer and eliminated redundant stop/start cycles during pipeline startup.
  • Automatic silent-start recovery — If the first 15 buffers are all silent the engine is automatically recreated once.

✨ Permission Handling

  • Audio capture is now blocked when microphone permission is denied, preventing silent-running.
  • Spacebar shortcut gated by permission status.
  • Clicking the "No Permission" indicator opens System Settings directly to Microphone privacy.
⬇️ Download v1.3.5
v1.3.4 10 February 2026

🐛 Bug Fixes

  • In-app updates fixed — Resolved "An error occurred while launching the installer" when updating from within the app. Sandboxed builds now install updates correctly.
  • Installer XPC Service enabled and entitlements added so updates can install from within the app.
⬇️ Download v1.3.4
v1.3.3 7 February 2026

🔒 Security & State Fixes

  • Admin Tab Security — Admin tab now only visible when signed in AND user is an administrator. Completely hidden for unauthenticated users.
  • Premium State Enforcement — Premium features, settings, and UI elements are now strictly gated behind authentication. Cached subscription data from previous sessions can no longer leak through.
  • Reactive Auth Synchronisation — SubscriptionService and AdManager now reactively observe authentication state. When a session expires or user signs out, all premium/admin state resets instantly.
  • Cache Hygiene — Stale subscription data is now fully cleared from UserDefaults on sign-out or session expiry, preventing privileged state from persisting across launches.

🚀 Improvements

  • Airtight authentication guards across all premium-gated views and services
  • Improved settings window resize behaviour
  • Admin debug: simulate free mode for testing ads and tint as admin
⬇️ Download v1.3.3
v1.3.2 6 February 2026

✨ Added

  • Contact Us Form — Paid customers can now reach support directly from the app
  • Subscription Grace Period — 14-day grace period with countdown banner if payment lapses
  • Subscription Warning Banner — Clear visual notification when subscription needs attention

🚀 Improvements

  • Premium Paywall UX with tier and billing period comparison
  • Pastor profile limits enforced per tier (Grace: 2, Love: 5)
  • Device limits now tier-aware (Mercy: 1, Grace: 2, Love: 5)
  • Detection Settings gated behind premium subscription
  • Monthly and yearly billing period selection

🐛 Bug Fixes

  • Fixed login verification code not accepting 6-digit OTP
  • Fixed Stripe webhook to correctly differentiate Grace and Love tiers
  • Fixed subscription status not recognising new tier statuses
⬇️ Download v1.3.2
v1.3.1 7 February 2026

✨ Added

  • Admin Debug: Simulate Free — When testing as an admin, "Debug: Reset to Free" now correctly shows the free-tier experience (grey tint and ads sidebar)

🔄 Changed

  • Settings Window — Now resizable; single collapse/expand control toggles between expanded (icons + labels) and icon-only sidebar
  • Subscription Tint — Main window tint is always grey when not signed in. Cached tier from previous session no longer applied when unauthenticated
⬇️ Download v1.3.1
v1.3.0 6 February 2026

✨ Added

  • Reference Buffer (Stateful Detection) — Context-aware scripture detection that remembers previous book/chapter during sermon. "Verse 18" after "John 3:16" correctly resolves to "John 3:18"
  • Partial Reference Handling — Handles references like "verses 5-7" using last mentioned book/chapter, and inverted patterns like "verse 31 of Romans eight"
  • Premium Feature Gating — Detection Settings now require Grace or Love subscription
  • Pastor Profile Limits — Tier-based limits (Mercy: 0, Grace: 2, Love: 5) with upgrade prompts
  • Modern PaywallView — Enhanced subscription experience with tier comparison, explicit limits, and Stripe integration

🔄 Changed

  • SubscriptionService — Enhanced tier tracking with SubscriptionTier enum (mercy, grace, love)
  • PastorProfilesView — Displays current profile count vs limit with conditional "Add Pastor" button
  • SettingsView — Detection Settings tab now premium-gated with upgrade button

⚙️ Technical

  • Added ReferenceBuffer.swift — Stateful context management with configurable timeout
  • Added PremiumFeatureGate.swift — View modifier for feature gating
  • Created docs/FEATURE-MATRIX.md — Comprehensive feature matrix (source of truth)
⬇️ Download v1.3.0
v1.2.0 5 February 2026

✨ Added

  • Panic Button (Clear Screen) — Instantly clear all displayed scripture from ProPresenter with a single keypress (⌘⇧C)
  • Detection Confidence Indicator — Visual colour-coded feedback showing recognition confidence (green/amber/red)
  • WebSocket Messages API — New, faster ProPresenter integration via direct WebSocket connection
  • Hybrid Integration Manager — Intelligent multi-path communication with automatic fallback
  • Connection Dashboard — Real-time visual status for all ProPresenter output paths with test buttons
  • Output Path Settings — Granular control to enable/disable individual integration methods

🔄 Changed

  • ProPresenter Settings — Redesigned panel with new output path controls and connection dashboard
  • Clear Button Behaviour — Now clears only ProPresenter displays, preserving Divine Link's local scripture history

⚙️ Technical

  • Added ProPresenterOutputProtocol.swift — Factory pattern for output abstraction
  • Added HybridIntegrationManager.swift — Central coordinator for all output paths
  • Added AudienceWebSocketOutput.swift — WebSocket Messages API implementation
  • Added StageDisplayOutput.swift — HTTP REST output for Stage Display
  • Added AudienceKeyboardOutput.swift — Keyboard automation fallback
  • Premium feature gating: Multiple outputs require Grace or Love subscription

This version has been superseded by v1.3.0+. Please download the latest version.

v1.1.0 1 February 2026

✨ Added

  • Video & GIF Ad Support — Ads now support animated content including YouTube videos (with Shorts), animated GIFs, and direct MP4 files with automatic looping
  • Dynamic Ad System — Complete backend-served advertisement system with admin dashboard, real-time updates, and automatic rotation
  • Admin Dashboard — Password-protected web interface at /admin.html for managing ads with live preview
  • Smart Ad Layout — Dynamic sidebar layout that automatically adjusts based on available ad formats
  • User Authentication — Email OTP (one-time password) login system with secure Keychain storage
  • Device Management — Track and manage up to 2 registered devices per account
  • Subscription Backend — Supabase integration with Stripe payment ready

🔄 Changed

  • Ad Display Logic — Replaced placeholder system with dynamic Supabase-served ads
  • Sidebar Layout — Intelligent layout based on available ad formats with portrait placeholder support

⚙️ Technical

  • Added VideoPlayerView component with URL type detection (YouTube/GIF/MP4)
  • Added YouTubeWebView for embedding YouTube via WKWebView with HTML injection
  • Privacy-enhanced YouTube embedding using youtube-nocookie.com
  • Updated get_all_active_ads() RPC function for video support
  • Added DynamicAdService singleton for ad management
  • Created Supabase ads table with RLS policies
⬇️ Download v1.1.0
v1.0.2 31 January 2026

✨ Added

  • Sparkle Auto-Updates — Automatic update checking and installation with Check for Updates menu (⌘U)
  • Ad-Supported Free Version — Right sidebar with ad slots and bottom banner for free users
  • Premium Subscription — Upgrade option to remove advertisements with trial support

🔄 Changed

  • Default Font Size — Changed from Small to Medium for better readability
  • Window Size — Adjusted to accommodate ad layout

🚀 Improved

  • Scripture Detection Validation — Stricter validation for verse numbers (max 176), verse ranges, and suspicious patterns
⬇️ Download v1.0.2
v1.0.1 27 January 2026

✨ Added

  • Accessibility Settings — New Display settings with font size scaling (5 levels)
  • ProPresenter Audience Push — Push verses to Audience screen via native Bible feature
  • Window Resizability — Main window can now be freely resized
  • Dynamic Version Display — About tab reads version from app bundle

🚀 Improved

  • Scripture Detection — Better handling of numbered book prefixes (e.g., "1 Timothy")
  • ProPresenter Integration — More robust keyboard automation with fallback mechanisms

🐛 Fixed

  • Fixed AXValue and AXUIElement type casting issues in macOS Accessibility APIs
  • Fixed kAXSearchFieldRole reference using string literal
  • Improved scripture parser to reject excluded words with number prefixes
v1.0.0 17 January 2026

✨ Initial Release

  • Live Speech-to-Text — Real-time transcription of spoken words
  • Scripture Detection — Automatic detection of Bible verse references with fuzzy matching
  • Multi-Verse Support — Detects and displays verse ranges (e.g., John 3:16-18)
  • Bible Database — Built-in KJV, ASV, and WEB translations
  • ProPresenter Stage Integration — Push verses to Stage screen via Network API
  • Pastor Profiles — Save pastor-specific speech corrections
  • Service Sessions — Track scriptures by service with auto-archival
  • Audio Level Monitoring — Visual audio level indicator with peak detection
  • BlackHole Support — System audio capture for stream monitoring
  • Menu Bar Quick Access — Quick access icon in macOS menu bar