Commit 461fce4
Referral program (#251)
* feat: added initial oAuth integration setup
* fix: show local time not utc, add link to platform.openai
* feat: add complete cleanup script and troubleshooting docs
- Add automated uninstall script for complete system cleanup
- Add detailed cleanup instructions with manual steps
- Add comprehensive troubleshooting guide for common issues
- Fix architecture mismatch documentation (ARM64 vs x64)
- Document proper macOS permission reset using tccutil
- Resolve environment contamination between production and dev
Fixes issues with:
- better-sqlite3 architecture mismatch on Apple Silicon
- Database/settings conflicts between DMG and dev mode
- Microphone printing 'you' instead of transcription
- Node running under Rosetta emulation
* chore: update lockfile
* fix: register hotkey immediately after step
* chore: version bump
* refactor: migration to neon auth
* refactor: make sure to use own UI components
* refactor: ui overhaul
* refactor: replace IPC-based OAuth callback with deep-link flow, add main-process session clearing for sign-out, and remove GitHub social provider
* feat: add skills
* feat: ignore claude skills and agents
* feat: add OpenWhispr cloud transcription with usage tracking, limits, and session refresh
* refactor: Fix cloud transcription binary handling, add auth state sync, clean up debug logging
* feat: Show UpgradePrompt dialog in ControlPanel when daily transcription limit is reached
* feat: add AssemblyAI real-time streaming transcription with WebSocket pre-warming and mic caching for instant-start recording
* fix: streaming handling when no api key
* fix: persist AI provider selection to localStorage so Custom/Local tabs don't reset to OpenAI on settings reopen
* chore: version bump
* refactor: onboarding style refactor
* feat: Add Stripe billing with trial support, refactor duplicate API handlers for DRY, migrate to weekly usage limits, and enhance auth flow with user existence check
* feat: complete OAuth flow with branded redirect, UI refinements, code quality improvements
* fix: ui polish
* refactor: consolidate session refresh logic with withSessionRefresh utility, streamline onboarding flow for signed-in users, and persist permission states
* chore: update .gitignore
* feat(ui): add ReferralDashboard component with full referral UI
ReferralDashboard.tsx:
- Dashboard tab with stats cards (referrals, pending, converted, months earned)
- Gift card preview showing referral reward
- Invite tab with email input and send functionality
- History tabs showing referrals and sent invites
- Copy-to-clipboard for referral link
- Loading, error, and empty states
- Toast notifications for user feedback
Settings integration:
- Add Referrals section to SettingsModal sidebar
- Add referrals case to SettingsPage section renderer
Design:
- Follows OpenWhispr design language
- Uses existing UI components (Button, Badge, Input, Tabs)
- Proper TypeScript typing throughout
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* feat(ipc): add referral IPC handlers and type definitions
IPC Handlers (ipcHandlers.js):
- get-referral-stats: fetch user's referral dashboard data
- send-referral-invite: send email invitation via API
- get-referral-invites: list sent invitations
- Proper cookie forwarding for authentication
- Error handling consistent with other cloud handlers
Preload (preload.js):
- Expose getReferralStats, sendReferralInvite, getReferralInvites
Types (electron.ts):
- ReferralStats interface with proper union types for status
- ReferralInvite interface for email invitations
- Type-safe method signatures
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* chore: update dependencies
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* feat: Add sidebar navigation, notes system, and dictionary view
* feat: referral card redesign
* fix: neon auth build config
---------
Co-authored-by: Claude Opus 4.5 <[email protected]>1 parent 77ac47a commit 461fce4
File tree
32 files changed
+3769
-418
lines changed- src
- components
- notes
- referral-cards
- ui
- helpers
- hooks
- services
- stores
- types
32 files changed
+3769
-418
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
320 | 320 | | |
321 | 321 | | |
322 | 322 | | |
| 323 | + | |
323 | 324 | | |
324 | 325 | | |
325 | 326 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| 86 | + | |
86 | 87 | | |
87 | 88 | | |
88 | 89 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
54 | 85 | | |
55 | 86 | | |
56 | 87 | | |
| |||
256 | 287 | | |
257 | 288 | | |
258 | 289 | | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
259 | 295 | | |
260 | 296 | | |
261 | 297 | | |
| |||
0 commit comments