feat: Add Antigravity CLI and IDE local conversation provider (#8) - #9
Open
tolmachevmaxim wants to merge 7 commits into
Open
feat: Add Antigravity CLI and IDE local conversation provider (#8)#9tolmachevmaxim wants to merge 7 commits into
tolmachevmaxim wants to merge 7 commits into
Conversation
…Annakov#8) - Add Antigravity provider to Provider enum and ProviderRegistry - Implement AntigravityParser with two-pass merging (transcript.jsonl + transcript_full.jsonl) - Add tolerant multiline JSON reader and prompt cleaning - Add step-keyed message identity to prevent RUNNING->DONE duplicate orphans - Support metadata enrichment (Preview titles, decoded workspace URIs) - Integrate full and incremental sync in SyncService and FileWatcher - Update AppState, ContentView, SettingsView, and OnboardingView UI - Add comprehensive AntigravityParserTests suite
…n, web session persistence and add all-conversations search
…dd package_app script
…elease download links
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #8
This PR adds full support for Antigravity CLI and IDE (
antigravity) as a first-class local conversation source in Retain, along with key stability bug fixes, cross-provider global search, and session persistence improvements:1. Antigravity CLI & IDE Support
transcript.jsonl(complete step history) andtranscript_full.jsonl(untruncated rolling window of message content and tool outputs) bystep_indexto guarantee 100% complete conversations without missing initial prompts.YYYY-MM-DDTHH:MM:SSZ).\(conversationId):\(stepIndex), preventingRUNNING->DONEstep duplicate orphans in SQLite.<USER_REQUEST>,<ADDITIONAL_METADATA>,<USER_SETTINGS_CHANGE>,<SYSTEM_MESSAGE>) and filters internal agent system types (CONVERSATION_HISTORY,GENERIC,EPHEMERAL_MESSAGE,DIRECTORY_RULES).cache/conversation_metadata.jsonandcache/last_conversations.jsonto resolve conversation preview titles and decodefile://workspace paths.SyncService(full and incremental sync) andFileWatcher(monitoring candidatebrain/directories for.jsonlchanges).ProviderRegistry,AppState,ContentViewsidebar & empty states,SettingsViewtoggle & path diagnostics, andOnboardingViewtool detector.AntigravityParserTests.swiftcovering merge logic, multiline parsing, date handling, identity deduplication, content cleaning, and workspace decoding.2. Analytics Stability & Performance Fixes
AnalyticsDataBuilder.fetchHourlyActivitycaused byrow["timestamp"]throwing GRDB decoding errors on non-standard timestamp strings.strftime('%H', m.timestamp)aggregation, reducing query time to < 1 ms without loading hundreds of thousands of rows into memory.Dictionary(uniqueKeysWithValues:)with safeuniquingKeysWith:merging inbuildContributionDaysandfetchConsistencyTrend.providerDomaininTaskAffinityViewandCorrectionRateViewinclude all present providers dynamically, preventing Swift Charts domain mismatch precondition aborts.3. Cross-Provider All-Time Search ("All Conversations")
SmartFolder.all = "All Conversations"at the top of the Smart Folders sidebar section.4. Web Accounts Session Persistence Fix
KeychainHelpernow attempts Data Protection keychain first and gracefully falls back to standard generic password keychain when running without access group entitlements (errSecMissingEntitlement-34018), ensuring session cookies and API keys are reliably saved and restored.5. Settings & AI Features Polish
Supported Locations
Scans standard Antigravity storage roots:
~/.gemini/antigravity-cli/~/.gemini/antigravity/~/.gemini/antigravity-ide/~/.antigravity/Testing