Changelog
0.1.84
2026-04-23
New
- Feat(website): track hero video, pricing view, outbound clicks, scroll depth
- Feat(website): track download clicks + add PostHog to all pages
- Feat(website): add OG share image and social meta tags
Fixed
- Fix(release): install dmgbuild in a venv
Other
- Fix web trial subscription sync
- Update focus stat to 726,648 hours across Mac, iOS & Android
0.1.83
2026-04-15
Fixed
- Make dmg background layout robust
0.1.82
2026-04-14
Fixed
- Validate backend URL in release pipeline
0.1.81
2026-04-14
New
- Add Firebase auth to redemption flow and check lifetime grants
Fixed
- Update SUFeedURL to canonical appcast path
0.1.80
2026-04-10
New
- Require credit card for 7-day trial via RevenueCat Web Billing
0.1.79
2026-04-09
New
- Add Firebase auth to redemption flow and check lifetime grants
- Add strict mode toggle to Mission Mode
Fixed
- Update SUFeedURL to canonical /updates/appcast.xml
- Replace broken TCC database lookup with UserDefaults cache
- Prevent crash when redeeming already-used codes
- Detect browser permission state from TCC database when browser is closed
- Limit maximum window size to prevent excessive blank space
- Analytics toggle cannot be turned off in Settings
- Add download URL verification to release pipeline
Other
- Portable release pipeline for local and CI releases
0.1.78
2026-04-01
New
- Add PostHog analytics to Helm marketing website (BES-423)
- Feat(BES-411): PostHog app_opened + subscription/lifetime purchase events
Fixed
- Update PostHog API key to new project key (BES-423)
0.1.77
2026-03-31
New
- Feat(analytics): track redeem code events in PostHog
Fixed
- Fix(subscription): pass missing environment objects to RedeemCodeView from PaywallView (#303)
- Fix(blocking): use explicit self in FocusMonitor log interpolations
- Fix(blocking): diagnostic logging for Mission Mode overlay bug
- Fix(ui): expand Mission Mode overlay button tap areas
- Fix(blocking): redirect scriptable browsers in Mission Mode and fix overlay buttons
Other
- Refactor(blocking): Mission Mode overlay-only, fix whitelist detection, remove polling
- Add v0.1.75 to appcast
- Fix 3 flaky tests in FeatureGateTrialTests and LifetimeGrantServiceTests
0.1.75
2026-03-30
New
- Lightweight blocking — remove NE permission requirement
- Feat(ui): replace schedule end time with start time inputs and duration fields (#294)
Fixed
- Fix(blocking): allow browser infrastructure domains in Mission Mode
- Fix(ui): resolve ViewBuilder error in ScheduleEditorView modeIcon
- Fix(ui): resize mode picker icon via NSImage and reduce log spam
- Fix(ui): schedule modal overlay covers sidebar and improve hit areas
- Fix(ui): restore schedule modal overlay and reduce mode icon size
- Fix(ui): restore schedule modal overlay and fix day button hit area
- Fix(ui): remove duplicate schedule modal overlay causing double dimming
- Resolve scheduled sessions not starting automatically
- Keep helm download modal generic
Other
- Remove HelmNetworkExtension and restore permissions onboarding
- Disable network extension for lightweight blocking
0.1.74
2026-03-27
New
- Per-browser automation truth model and Firebase crash fixes
- Re-add Automation (Browser Control) permission to onboarding and settings
Fixed
- Resolve automation permission race condition and improve TCC dialog reliability
- MacOS 26 Tahoe content filter compatibility
- Add automation.apple-events entitlement so TCC dialog appears for browser control
- Use valid Lucide icon for Browser Control and show installed browsers
- Upload Helm.dmg asset on release so /download redirects to latest
- Add git pull --rebase before push in sync workflows to prevent race conflicts
0.1.73
2026-03-26
New
- Feat(website): add linked citations to stat cards
- Feat(website): add public changelog page with auto-generation
Fixed
- Fix(dmg): restore background rendering broken by text_size=1
Other
- Gitignore AI agent dirs, demo outputs, and scratch files
- Remove website/assets/ from .gitignore
- Include changelog.html in website sync workflow
0.1.72
2026-03-25
New
- Update app icon and versioned DMG downloads
- Feat(BES-305): check Firestore lifetime_grants for Pro access
Fixed
- Fix(tests): suppress app side effects during unit test execution
- Fix(BES-305): allow IP-only flows in Mission Mode to prevent false blocking
- Fix(dmg): improve installer label contrast
- Fix(auth): submit login flow on Enter
- Fix(settings): hide developer tools in distributed builds
- Fix(settings): sanitize devOnboardingMode at app startup in Release
- Fix(website): add favicon and mobile hamburger menu
Other
- Remove restore purchase flow from the paywall
0.1.71
2026-03-25
New
- Enable automatic Sparkle update checks on launch
0.1.70
2026-03-25
New
- Session UI polish — break banner, progress ring, mode label
- Feat(website): landing page polish, legal pages, and spacing overhaul
- Promo video v2 — scaled up, no serif letter-spacing
- Show elapsed time as primary on active session screen
Fixed
- Fix RC 401, trial fallback activation, and release key guardrails
Other
- Gitignore .claude/skills/ and .deriveddata/
0.1.69
2026-03-24
New
- Backend-driven 7-day free trial with paid-only enforcement
- Website hero redesign — video, count-up stat, GA4, BestSelf logo
- Website copy overhaul — worldview-first, process-led
- Website copy overhaul — worldview-first, process-led
- Separate overlay and redirect behavior by blocking mode
Fixed
- Paywall UX improvements and remove trial auto-activation
- Reduce main-thread hangs from permission polling and heatmap layout
- Disable automatic window tabbing to prevent main-thread hangs on macOS 26
- Debug builds no longer loop on NE filter permission dialog
- Schedule editor UX polish — theme-aware pickers, gold toggle, aligned steppers
- Address PR review feedback and bump version to 0.1.68
- Resolve Website Blocking permission loop and harden QA blocking enforcement
Other
- Decompose PermissionCenter into protocol-based providers
- Condense CLAUDE.md — remove verbosity and incident log
- Auto-sync website to public site on push to main
- Website copy overhaul — worldview-first, process-led (#246)"
- Fix mission host normalization and NE cache seeding
0.1.68
2026-03-23
New
- Add session sync from macOS to backend
- Add icons to ambient sound chips and standardize height
- Refactor session form UI with method selector and improved controls
- Add unsaved changes confirmation and extract ModeEditor logic
- Optimize network extension filtering performance
Fixed
- Re-arm system extension approval window in beginNetworkExtensionSettingsReturnFlow
- Resolve Website Blocking permission loop and harden QA blocking enforcement
- Resolve payment flow issues and make paywall theme-aware
- Use separate RevenueCat web billing keys for debug and release
- Zero-pad minutes in sub-hour countdown to prevent layout shift
- Show hours in session countdown and fix completion screen theme
- Clean up test-generated modes polluting production storage
- Prevent accessibility permission status flickering
- Invalidate ne host cache on rule changes
Other
- Unify blocking monitors into event-driven FocusMonitor
- Suppress noisy debug-only logs on app launch
- Reduce console log noise in debug builds
- Inject ModeStore protocol for proper test isolation
- Remove auto-build on push, manual-only to reduce macOS runner costs
- Fix blocked-site overlay close no-op
0.1.67
2026-03-16
Fixed
- Prevent wait completion handler from re-invoking on timer tick
- Clear old usage records on session start
- Preserve auto-start subscription in UsageTracker
- Ensure session-end overlay delay timer fires during UI interactions
Other
- Guard stale date calculation in usage tracker test
0.1.65
2026-03-15
Fixed
- Address release ops review feedback
- Fix(auth): restore auth gate sign-in UI
Other
- Add Helm macOS release ops tooling
0.1.64
2026-03-12
New
- Add onboarding media assets and paywall polish
- Polish intro screen layout and app preview sizing
- Replace intro video placeholder with live app preview
- Redesign onboarding sounds and bypass launch step
- Implement focus score algorithm
Fixed
- Fix(settings): use valid Lucide icon for Browser Control permission
- Fix(blocking): break close-tab overlay loop when Automation permission denied
- Show today by default in activity heatmap
- Address onboarding and release review feedback
- Recover from blocking overlay close failures
- Address PR review findings — logging, type safety, dead code cleanup
- Run public download sync from main
- Automate public download site sync
Other
- Undo vault design treatment in Settings (PR #185)
- Bump Sentry Cocoa SDK minimum version from 9.2.0 to 9.4.0
- Merge main into feature/onboarding-upgrade
- Polish Settings view with vault visual treatment
- Fix paywall/onboarding edge cases and hardcoded pricing copy
- Update settings feedback link to Tally form
- Add localization keys for capability actions
0.1.63
2026-03-11
Fixed
- Fix(blocking): harden close-tab overlay across browsers
- Regenerate Xcode project for local builds
- Improve keychain sign-in error handling
0.1.62
2026-03-04
New
- Feat(referral): add referral code system
Fixed
- Fix(referral): prevent double-submit and clear stale state
- Fix(updater): use public download URL in appcast and release script
0.1.61
2026-03-04
Fixed
- Fix(updates): add settings download fallback and tighten sparkle signature parsing
- Fix(appcast): use public hosted download URL for v0.1.6 enclosure
0.1.6
2026-03-04
Fixed
- Fix(blocking): prevent overlay premature dismissal across all browsers
0.1.5
2026-03-04
New
- Feat(session-ui): remove HUD, polish session UI with ambient completion screen
- Mission Mode app-based bypass via signing IDs
Fixed
- Fix(release): trim sparkle length/signature parsing
- Fix(release): keep captured outputs clean during dmg/sign steps
- Fix(release): parse sparkle signature and length using pipe delimiter
- Fix(blocking): normalize full URLs to hostname in HostMatcher
- Fix(auth): forward objectWillChange from child managers through AppContainer
- Improve session countdown transition and update build tooling
Other
- Automate + gate appcast updates in release.sh
- Fix Mission Mode preview audio behavior
- Chore(appcast): add v0.1.4 sparkle update entry
0.1.4
2026-03-03
Fixed
- Require auth gate before main macOS content
- Fix(website): route download CTAs to helm.bestself.co/download
Other
- Chore(release): manual-only DMG release + add download sync script
- Add RELEASE.md with end-to-end DMG release guide
- Fix download modal images and update install steps UI
- Update download modal step 1 image
0.1.3
2026-03-02
New
- Block mode overlay shows blocked site name + motivational messages
- Redeem Code for anniversary box Pro unlock
Fixed
- Fix(release): use source directly instead of grep pipe to load .env
- Fix(build): replace create-dmg with dmgbuild for reliable DMG background
- Fix(build): use correct app name in DMG creation script
- Fix(build): match main app release entitlements to provisioning profile
- Fix(build): FocusSchedule Encodable conformance, schedule UI polish, video updates
- Fix(build): restore entitlement parity for debug and release signing
- Fix(ui): improve paywall redeem code visibility and screen polish
- Send RevenueCat app_user_id with redeem request
- Countdown timer holds at 1 second and feels slow
Other
- Ignore build artifacts and local tools
- Generate new Sparkle key and add v0.1.2 appcast entry
- Move Sparkle feed to /desktop/updates/appcast.xml
- Fix Swift 6 migration and entitlement parity for signing
- Add branch cleanup steps to merge-it workflow in CLAUDE.md
- Track Package.resolved for reproducible builds
0.1.2
2026-03-02
Fixed
- Fix(release): use absolute DMG path before notarization
- Fix(dmg): use app bundle name from input path
Other
- Add Remotion demos and rendered website video assets
0.1.1
2026-03-02
New
- Add post-download install modal to website
- Landing page website
- Automate mac release workflow
- Custom mission suggestions, mode editor redesign, block mode enforcement, and session polish
Fixed
- Handle empty ARCHS_FLAGS array in build script with nounset
- Fix(ci): repair objective-c workflow YAML parse error
- Guard create-dmg background args for strict bash
- Rename entitlement from 'premium' to 'pro' to match RevenueCat/backend
- Stop test sound on Settings exit and run login-item migration once (#123)
- Stabilize Mission Mode whitelist during break transitions (#121)
- Move blocking SMAppService and Security framework calls off main thread (#118)
Other
- Gitignore project.pbxproj since XcodeGen regenerates it
- Redesign onboarding with split-layout intro and streamlined flow
- Premium dark-mode DMG installer with Helm.app rename
- Add end-of-session focus summary with Repeat/Extend actions
0.1.0
2026-02-26
New
- Improve mode editor UX with inline add and hero text inputs
- Add application blocking enforcement to Block Mode
- Add overlay, sound, and redirect enforcement to Block Mode
- Complete icon grid to 8x3 and add suggestion inline editing
Fixed
- Dismiss red screen overlay and alert sound when all browsers close
- Ensure Mission Mode session transitions to completed state at timer end
- Re-hydrate session state on tab return during Mission Mode countdown
- Enable break resume button in active session view
- Play alert sound when mission mode overlay appears
- Sanitize Unicode control characters from intention text input
Other
- Align button/overlay/accessibility tokens and cleanup dead hover state
- Fix heatmap year and month label formatting
- Fix system Apple apps in app picker
- Fix mode state propagation to session mission picker
- Fix light-mode contrast by removing hardcoded white colors
- Fix session timer starting at incorrect duration
- Refine mode editor actions and hide Limits navigation
- Expand icon grid to 8x4, white active border, transparent input, gold save CTA
- Refactor mode editor token parsing and reuse in site/suggestion inputs
- Merge main into custom-mission-suggestions