onairos 4.0.12+4
onairos: ^4.0.12+4 copied to clipboard
Onairos is a flutter package to interact with the Onairos App and recieve user AI Data
4.0.10+2 - 2026-01-21 #
Publish + UX fixes #
- Modal sizing: ChatGPT/Gemini iOS modals now match the original modal height; modal no longer shrinks when keyboard opens.
- Google sign-in: Updated Flutter Google sign-in flow + backend API alignment and added improved debugging.
- OAuth: Platform
/authorizerequests now use the user JWT where required (fixes 401s on platforms like Reddit). - Verification UX: 6-digit code input now supports copy/paste and auto-fills across boxes.
1.34.0+0 - 2025-11-12 #
Integration Guide & White Text Fix 📚 #
- LLM_INTEGRATION_GUIDE.md: Complete guide for integrating iOS native code
- Step-by-step AppDelegate setup
- Platform channel handlers
- KeychainHelper implementation
- User message extraction code
- Troubleshooting section
- Fixed White Text Issue: Added
style: TextStyle(color: Colors.black)to all TextFields- Email input fields now have visible black text
- Verification code inputs now have bold black text
- Works in both light and dark mode contexts
- Updated README: Added LLM features section and integration guide link
- Publishing Ready: Package can now be shared with proper documentation
Why These Changes? #
Users reported white text on white background in email/verification inputs. This was due to missing explicit text styling that relied on theme context. Now all inputs have explicit black text color.
For iOS LLM functionality, users need to copy native code into their AppDelegate - the integration guide makes this straightforward.
1.33.0+0 - 2025-11-12 #
Claude User Messages Extraction 🎯 #
- Claude Support: Now correctly extracts user messages from Claude conversations
- Structure Handling: Handles Claude's unique structure:
chat_messagesarray (notmessages)sender: "human"(notauthor.role: "user")contentarray withtypeandtextfields
- Field Mapping: Correctly maps Claude fields:
name→ titleuuid→ conversation_id
- Multi-format Support: Works for ChatGPT, Claude, Gemini, Grok
Example Claude Output #
{
"claude": [
{
"conversation_id": "e1bcefeb-658e-48d5-bd92-1f999ad2fa83",
"title": "Laptop recommendations for founding engineers",
"user_messages": [
"what is the best laptop for a macbook for a founding engineer in 2025"
]
}
]
}
1.32.0+0 - 2025-11-12 #
UI Fix: View Data Button Repositioned 🎨 #
- Moved View Data button from inside description card to inline with platform name
- No more overlap: Button is now on the same row as "ChatGPT" + toggle switch
- Better layout: Description card is simpler, no height constraints causing cutoff
- Cleaner spacing: Button sits nicely between platform name and toggle
Before vs After #
Before: View Data button was inside the description card (gray box), causing:
- Cutoff at the bottom
- Overlap with text
- Height constraint issues
After: View Data button is inline with "ChatGPT" label:
ChatGPT [View Data] [Toggle]
-----------------------------
| We use your chat... |
-----------------------------
1.31.0+0 - 2025-11-12 #
User Messages Only View 💬 #
- Filtered Extraction: Now extracts ONLY user messages from conversations
- Cleaner Data: No AI responses, system messages, or metadata - just what you said
- ChatGPT Structure: Handles ChatGPT's complex
mappingstructure to extract user content - Multi-LLM Support: Works for ChatGPT, Claude, Gemini, Grok
- Organized Format: Groups by conversation with title and conversation_id
- JSON Display: Still shown as scrollable JSON for easy viewing/copying
Data Structure #
{
"chatgpt": [
{
"conversation_id": "...",
"title": "...",
"user_messages": ["msg1", "msg2", ...]
}
]
}
Why This Change? #
- User requested: "can we put only user messages?"
- Less noise: No need to wade through AI responses
- Privacy-focused: Only your input, not the model's output
- Lighter payload: Significantly smaller JSON files
1.30.0+0 - 2025-11-12 #
Raw JSON Dump View 📋 #
- Simplified View: Replaced complex conversation parsing with simple JSON dump
- Matrix Style: Green text on black background (terminal/hacker aesthetic)
- Fully Scrollable:
SingleChildScrollViewwith all data visible - Selectable Text: Can copy/paste JSON content
- Character Count: Shows total JSON size in header
- Works for All Platforms: ChatGPT, Claude, Gemini, Grok - same format
- No Parsing Errors: Just dumps raw JSON without trying to interpret structure
Why This Change? #
Previous version tried to parse and display conversations nicely but:
- ChatGPT: Showed headlines, missing content
- Claude: Showed nothing
- Complex parsing logic prone to errors
New version: Simple, reliable, shows EVERYTHING 🎯
1.29.0+0 - 2025-11-11 #
UI Improvements 🎨 #
- Smaller Inline Button: "View Data" button is now tiny (10-11px) and sits below the description text
- No More Overlap: Button doesn't cover up icons or other UI elements
- Compact Design: Reduced card height back to 90-100px
Enhanced Debugging 🔍 #
- Comprehensive Content Logging: Shows exactly what's in the first message
- Content Structure Analysis: Logs content type, keys, and actual data
- Parts Array Debugging: Shows what's in content.parts if it exists
- Author Field Inspection: Logs full author structure for debugging
1.28.0+0 - 2025-11-11 #
🔥 Complete Conversation View #
- Full JSON Dump: Now shows entire conversation history, not just user messages
- Chat-Style UI: Beautiful conversation cards showing both YOU and AI messages
- Role Indicators: Blue badge for user messages, green badge for AI responses
- Conversation Titles: Each chat has its title and message count
- Performance: Limits to first 10 messages per conversation with "show more" indicator
- Rich Formatting: Handles all content formats (text, nested objects, parts arrays)
UI Improvements 🎨 #
- Conversation Cards: White cards with grey headers showing title and message count
- Message Threading: Shows back-and-forth conversation flow
- Visual Hierarchy: User messages have grey background, AI messages are white
- Compact Display: 5-line excerpt per message with ellipsis for long content
1.27.0+0 - 2025-11-11 #
Major UI Changes 🎨 #
- Moved View Data Button: Button now appears in the description card, not on the icon
- Platform-Specific Data: Each platform button shows ONLY that service's data (not all platforms)
- Better Layout: Description card height increased to accommodate button without covering icons
- Clearer Empty State: More helpful message when no data is found
Enhanced Debugging 🔍 #
- Comprehensive Logging: Added detailed logs for JSON structure, author fields, content types
- Multiple Format Support: Now checks for nested author objects (e.g.,
author.role) - Better Error Messages: Shows specific platform name and extraction details in logs
- First Message Debug: Logs the structure of the first message to help diagnose parsing issues
Bug Fixes 🐛 #
- Fixed Author Detection: Now handles both direct fields (
author: "user") and nested objects (author: {role: "user"}) - Content Extraction: Improved handling of different content formats (string, nested text, parts array)
1.26.0+0 - 2025-11-11 #
UI/UX Improvements 🎨 #
- Per-Platform Data View: Removed global "View My Data" button, added small icon buttons on each connected LLM platform
- Smaller Modals: Reduced modal height from 85% to 75% to avoid covering platform icons
- Platform-Specific Views: Each LLM now has its own data view showing only that platform's conversations
- Better Parsing: Enhanced JSON parsing to handle different content formats (text, parts array, nested objects)
- Debug Logging: Added comprehensive logging to help diagnose data extraction issues
Bug Fixes 🐛 #
- Fixed Data Extraction: Improved content extraction logic to handle ChatGPT's nested content structures
- Platform Filtering: Added platform filter parameter to only fetch data for specific LLM
1.25.0+0 - 2025-11-11 #
New Features 🎉 #
- View My Data Button: Added "View My Data" button to Universal Onboarding page
- Real-time Data Preview: Users can now see their compiled conversation history from all connected LLMs
- User Messages Only: Shows only the user's messages (not AI responses) grouped by platform
- Beautiful Modal: Clean, organized view of collected data with conversation context
- Cross-LLM Support: Works with ChatGPT, Claude, Gemini, and Grok
Technical Improvements #
- New Platform Channel: Added
getUserMessagesmethod channel to extract user messages from saved conversations - iOS Data Parsing: Implemented robust JSON parsing to filter user messages across different LLM formats
- Type-safe Dart API: Strong typing for conversation data structures in Flutter
1.24.0+0 - 2025-11-11 #
Critical Bug Fixes 🐛 #
- Fixed setState() after dispose: Added
mountedchecks to prevent setState calls after widget disposal innpm_universal_onboarding.dart - Fixed RenderFlex overflow: Replaced fixed height constraint with
Expandedwidget to prevent 16px overflow in platform icons section - Fixed RangeError: Added empty string check before accessing
.characters.firstinnpm_data_request.dartplatform icon error handler - Fixed go_router navigation error: Removed duplicate
Navigator.pop()call inonairos_button.dartthat was causing "popped last page off stack" error
Improvements #
- Better error handling: All async setState calls now properly check if widget is mounted before updating state
- More robust UI: Platform icon rendering now handles empty/null platform names gracefully
- Improved navigation: Modal flow now properly dismisses without navigation stack errors
0.3.0+1 - 2025-01-09 #
Major UI Redesign 🎨 #
- Complete UI Overhaul: Completely redesigned all UI components with modern, sleek design system
- New Design Language: Implemented professional gradient buttons, proper shadows, and consistent typography
- Responsive Modals: Updated all modal interfaces with better animations and user experience
- Theme System: Added comprehensive design system with IBM Plex Sans and Inter fonts
New Components #
- Welcome Screen: Modern multi-step onboarding flow with smooth transitions
- Sign-in Step: Elegant email/Google authentication interface
- Verification Step: 6-digit code input with auto-progression
- Platform Connectors: Visual persona-based platform connection interface
- Brand Mark: Professional logo display component
- Primary Button: Gradient button with icon circle and loading states
Enhanced User Experience #
- Modal Flow: Step-by-step progression through welcome → sign-in → verification → platforms
- Dark Mode: Full dark mode support across all new components
- Better Typography: Professional font hierarchy with proper weights and spacing
- Smooth Animations: Consistent modal transitions and micro-interactions
- Visual Feedback: Improved loading states and user feedback
Technical Improvements #
- Dependency Updates: Updated major dependencies (Google Sign-In v6, Flutter Secure Storage v10, etc.)
- Backward Compatibility: All existing APIs and flows preserved
- Modular Design: Reusable component architecture for easy customization
- Performance: Optimized animations and reduced overhead
Breaking Changes #
- None - Full backward compatibility maintained
0.2.171+1 - 2024-12-19 #
Fixed #
- Instagram OAuth: Replaced WebView implementation with native Opacity SDK integration for proper Instagram authentication
- Pinterest & Reddit Auto-Close: Fixed aggressive callback detection that was causing OAuth windows to close prematurely
- YouTube Syntax Errors: Fixed missing closing parenthesis and syntax errors in YouTube native authentication
- Cookie Support: Added proper cookie management for all OAuth flows to improve session handling
Enhanced #
- Instagram Connection: Now uses native Opacity SDK instead of web login page for better user experience
- OAuth Reliability: Simplified Pinterest and Reddit implementations to match working LinkedIn/Gmail pattern
- Error Handling: Improved error messages and user feedback across all OAuth connectors
- Mobile Experience: Added
enableZoom(false)and better mobile optimization for all WebView implementations
Technical #
- Removed aggressive
onPageStartedcallback detection that was interfering with OAuth flows - Added
clearCache()andclearLocalStorage()for better session management - Simplified callback URL detection to only exact matches
- Enhanced cookie support across all platforms
0.2.170+1 - 2024-12-19 #
Fixed #
- YouTube Connection Crashes: Completely rewrote YouTube connection service with simplified, robust implementation
- Instagram Extra Page: Removed intermediate "Connect to Instagram" page - now goes directly to OAuth like other platforms
- Gmail "Access Blocked": Added secure user agent and security headers to fix Google OAuth blocking
- Enhanced Error Handling: Added comprehensive error messages and user feedback for all OAuth flows
- Code Cleanup: Removed unused methods and declarations to improve package validation
Changed #
- Simplified YouTube SDK initialization with better error handling
- Enhanced OAuth WebView with Gmail-specific security configuration
- Updated Instagram flow to bypass intermediate connector page
- Improved user experience with loading indicators and success/error snackbars
Technical #
- Updated dependencies and resolved package validation issues
- Enhanced security compliance for OAuth flows
- Added platform-specific handling for different OAuth providers
0.0.1 #
Initial Release
- TODO: Describe initial release.
0.0.2 - 2024-03-19 #
Changed #
- Changed input type of requestData parameter to match expected type of Map<String, Map<String, String>>
0.0.7 - 2024-04-07 #
Changed #
- Onairos 0.0.7 Overlay Fix
- Fixed Disconnect Apps
- Fixed Youtube Connect
0.1.0 - 2024-04-09 #
Changed #
- Removed deep link to Onairos app to open overlay
- Now, onairos dart package opens overlay within itself, after biometric confirmation
- Added Modal is user clicks to send Onairos data but either: doesn't have the onairos app installed or doesn't have an active model created
0.1.1 - 2024-04-09 #
Changed #
- onairos_button.dart (OnairosButtonWrapper1) uses SecureAuthService with flutter_secure_storage to retrieve onairos username and key in secure encalve
- onairos_button2.dart (OnairosButtonWrapper2) uses SecureAuthService with biometric_storage to retrieve onairos username and key in secure encalve
0.1.2 - 2024-04-11 #
Changed #
- Exporting onairos_button.dart and onairos_button2.dart (so can access OnairosButtonWrapper1 and OnairosButtonWrapper2)
0.1.3 - 2024-04-13 #
Changed #
- No change to API
- Only 1 biometric retrieval using Map instead of once every String input
0.1.4 - 2024-04-15 #
Changed #
- onResolved as required parameter, which is resolved with the specific api url as input, once the users data request is verified
- onResolved should be a function which makes the api request using the String input, and will recieve the user onairos data after, you can use a simple setter to extract it from the onResolved function and be used in your main app
0.1.5 - 2024-04-15 #
Changed #
- Changes to onResolved Parameter Signature
- Changed from final Function onResolved => final void Function(String apiUrl, String accessToken) onResolved;
0.1.6 - 2024-04-26 #
Changed #
- Changes onairos details retrieval in secure enclave
- It is now retrieved using OnaiosUsername as the key
0.2.0 - 2024-04-28 #
Changed #
- Change onairos overlay flow:
- User clicks Onairos button on your app
- If first time user has done so, Onairos app opens up, asks user for permission
- After permission granted, switch back to your app via deep link
- Flow then continues as previous
- Onairos overlay then displays your data requests, and user accepts, the callback function you supplied earlier is called
- Again this function is called with the API url as input
- Supply registered URL scheme to Onairos Button initialization (this must be registered in your Info.Plist in the following format:
- )
0.2.33 - 2024-06-11 #
Changed #
- Pin in Secure Storage changed from EncyrptedKey to UserPin
- Fixed Images Rendering
0.2.63 - 2024-09-27 #
0.2.64 - 2024-09-28 #
Changed #
- Changed lastModelCreationDate to creationDate
- testing 2 login buttons to see error
0.2.68 - 2024-09-29 #
Changed #
- Swift code hasCredentials no biometric call - only a check
- onairos_button only 1 biometric call
- added valdiate functon
0.2.73 - 2024-09-29 #
0.2.74 - 2025-03-06 #
0.2.90+1 - 2025-04-24 #
Changed #
- Fixed dependency issues
- Added biometric_storage and local_auth dependencies
- Updated package_info to package_info_plus
- Improved code quality with const constructors
- Fixed null safety issues with optional parameters
0.2.91 - 2025-04-24 #
Changed #
- Completely redesigned Universal Onboarding UI
- Added valuable platform highlighting with ambient glow animation
- Improved OAuth flow for all platforms (Instagram, Pinterest, Reddit, YouTube)
- Modularized code architecture for better maintainability
- Implemented seamless account linking with Onairos app
- Added FaceID verification for secure credential storage
- Enhanced PIN security features with visual validation feedback
- Improved error handling and loading states
0.2.92 - 2025-04-24 #
Changed #
- Added email registration during digital brain creation
- Simplified OAuth implementation with unified API endpoint
- Created sleek, minimalist WebView for OAuth authorization
- Enhanced security messaging throughout the onboarding flow
- Improved deep linking between apps and Onairos
- Optimized callback handling for all OAuth platforms
0.2.93 - 2025-04-24 #
Changed #
- Added testMode parameter to UniversalOnboarding for easy integration testing
- Included debug helpers for better development workflow
- Enhanced platform connector visual feedback
- Improved responsive design for different device sizes
- Fixed edge case bugs in OAuth flow
0.2.94 - 2025-04-25 #
Changed #
- Improved backward compatibility with existing apps
- Fixed small UI issues in platform connector items
- Enhanced loading states with better user feedback
- Refined error handling in authentication flow
0.2.95 - 2025-04-25 #
Changed #
- Consolidated duplicate error-handling functions
- Added proper type annotations for better type safety
- Improved mounted state checking to prevent errors
- Enhanced WebView implementation for OAuth
0.2.96 - 2025-04-25 #
Changed #
- Removed unused EmbeddConnect class
- Fixed WebViewController implementation with proper loading indicators
- Added proper error handling in OAuth WebView
- Improved code organization and removed redundant code
- Enhanced navigation delegate methods for better user experience
0.2.167+1 - 2024-12-19 #
Added #
- Enhanced OAuth integration with native YouTube SDK support
- Platform Authentication Service for centralized OAuth management
- Enhanced YouTube connection service with improved token management
- Support for multiple OAuth platforms (Instagram, Reddit, Pinterest, LinkedIn, Gmail, Facebook)
- Improved OAuth WebView component with better callback detection
- Enhanced error handling and user feedback
- Token refresh functionality for YouTube connections
- Comprehensive configuration files for Android and iOS
Changed #
- Updated Google Sign-In dependency to ^6.2.1
- Enhanced GoogleService-Info.plist with complete configuration
- Improved Universal Onboarding with new authentication services
- Better error handling and user experience across OAuth flows
Fixed #
- OAuth callback detection issues
- Token refresh problems with YouTube SDK
- Various lint warnings and code cleanup
- Package validation issues for publishing