Releases: BayramAnnakov/retain
Releases · BayramAnnakov/retain
v0.1.10-beta
Pre-release Audit Fixes
Security
- Parameterized SQL queries in cookie importers (no more string interpolation)
- FTS5 query sanitization — special characters no longer crash search
Performance
- Batch Spotlight indexing (10 at a time instead of one-by-one)
- Throttled MainActor updates during Codex sync
Search
- FTS5 search now finds conversations by message content (not just titles)
- Path-style queries like
clients/verifirework correctly - Colons in search queries handled properly (
file:line→ two tokens) - Soft-deleted conversations excluded from search results
Bug Fixes
- Fixed analysis queue crash when pressing Scan twice quickly (UNIQUE constraint)
- Added concurrent scan guard to prevent double-scan race conditions
- ConversationDetailView shows error state instead of eternal spinner
- Search shows loading indicator before results
UI/UX
- Design system constants replace hardcoded spacing values
- Provider
.colorunified to.brandColoracross all views - Settings button has proper VoiceOver accessibility label
- Dark mode shimmer visibility improved
Tests
- 34 new FTS search tests covering real-world query patterns
- 419 total tests, 0 failures
v0.1.9-beta
In-Conversation Message Search
Find specific messages in long conversations:
- Toggle: Click magnifying glass or Cmd+F
- Live search with match navigation
- Visual highlighting for matches
- Performance optimized for large conversations
v0.1.8-beta
Bug Fixes
- Symlink handling: Fixed issue where ~/.claude/projects symlinked to another location would not sync (#6)
- Spotlight deep linking: Fixed scrolling to selected conversation
Technical Changes
- Added resolvedProjectsDirectory for proper symlink resolution
- Diagnostics now shows symlink targets
- ScrollViewReader for conversation list navigation
Signed and notarized by Apple.
v0.1.7-beta
What's New
macOS Native Integration
- Spotlight Search: Find conversations directly from system Spotlight
- URL Scheme: Deep linking with retain:// URLs
- Dock Menu: Quick access to Sync, Learnings, and recent conversations
- App Intents: Foundation for Shortcuts/Siri integration
Build System
- Switched to Xcode build for proper App Intents metadata extraction
Installation
- Download Retain-0.1.7-beta.dmg
- Open the DMG and drag Retain to Applications
- Launch from Applications
The app is signed and notarized by Apple.
Retain 0.1.6-beta
What's New
New Providers (v0.1.2)
- Cursor - Both Composer and Chat mode conversations
- Gemini CLI - Sessions from
~/.gemini/tmp/ - OpenCode - Sessions from
~/.local/share/opencode/storage/ - GitHub Copilot CLI - Sessions from
~/.copilot/session-state/
Auto-Updates (v0.1.3+)
- Sparkle framework integration - The app now checks for updates automatically
- Check for Updates available in the app menu
New Features
- Diagnostics tab in Settings for troubleshooting provider paths, file counts, and sync logs
- Settings improvements: Auto-sync when enabling a provider, show Sync button when provider is enabled but empty
- Sidebar: Only show enabled providers (plus core 4: Claude Code, Codex, claude.ai, ChatGPT)
Bug Fixes
- Fixed Settings icon not being clickable
- Fixed Sparkle auto-update installation error (proper XPC service code signing)
- Fixed Cursor Chat/Composer timestamp parsing
- Fixed Gemini CLI ISO8601 timestamp parsing
- Fixed chatGPT Team plan parsing - kudos to @sernote
Installation
Existing users (v0.1.3+): You should receive an automatic update notification.
New users or upgrading from v0.1.2 or earlier:
- Download
Retain-0.1.6-beta.dmg - Open the DMG and drag
Retain.appto Applications - Open Retain - future updates will be automatic
Feedback
Please report any issues at https://github.com/BayramAnnakov/retain/issues
v0.1.5-beta
Fix Sparkle auto-update (CFBundleVersion), Settings icon, add Diagnostics tab
v0.1.4-beta
Fix Settings icon clickability, add Diagnostics tab for troubleshooting
v0.1.3-beta
Auto-updates via Sparkle framework
Retain v0.1.2-beta - New Provider Support
What's New
New Providers
- Cursor - Both Composer and Chat mode conversations
- Gemini CLI - Sessions from
~/.gemini/tmp/ - OpenCode - Sessions from
~/.local/share/opencode/storage/ - GitHub Copilot CLI - Sessions from
~/.copilot/session-state/
Improvements
- Settings: Auto-sync when enabling a provider (no need for full rescan)
- Settings: Show "Sync" button when provider is enabled but empty
- Sidebar: Only show enabled providers (plus core 4: Claude Code, Codex, claude.ai, ChatGPT)
- Sidebar: Providers with conversations remain visible even if disabled
Bug Fixes
- Fixed Cursor Chat mode timestamp parsing (was showing "Just now" for all)
- Fixed Cursor Composer mode timestamp field (lastUpdatedAt vs updatedAt)
- Fixed Gemini CLI ISO8601 timestamp parsing
Installation
- Download
Retain-0.1.2-beta.zip - Unzip and drag
Retain.appto Applications - Open Retain and enable the providers you want in Settings → Data Sources
Feedback
Please test and report any issues! This is a pre-release for beta testing before the stable release.
v0.1.1-beta
Bug Fixes
- Fixed conversation display: XML metadata tags (
<local-command-stdout>,<local-command-caveat>, etc.) are now stripped from titles and previews - Fixed progress bar: Setup progress no longer depends on learnings extraction (was causing progress to get stuck at ~70%)
Notes
- Conversations will automatically re-sync on first launch to apply the display fix
- No data loss - just improved presentation
Full Changelog: v0.1.0-beta...v0.1.1-beta