Commit Graph

177 Commits

Author SHA1 Message Date
cogwheel0
5d4843c368 refactor(auth): Replace custom cache with shared CacheManager 2025-11-24 16:38:26 +05:30
cogwheel0
4822d1ed38 feat(profile): Add Android assistant trigger customization option 2025-11-24 15:07:46 +05:30
cogwheel0
d38e986d7c feat(callkit): Add CallKit service for native call UI and permissions 2025-11-24 12:29:44 +05:30
cogwheel0
babaa97c62 refactor(providers): Remove unused import and update dependencies 2025-11-23 21:18:19 +05:30
cogwheel0
c4a36bb51c feat(cache): Add lightweight in-memory cache with TTL and LRU eviction 2025-11-22 21:53:14 +05:30
cogwheel0
84af6bbe86 feat(tts): Remove auto engine and fix ios STS 2025-11-21 13:39:19 +05:30
cogwheel0
4df22422c2 feat(conversations): Improve conversation and folder fetching with concurrent requests 2025-11-20 22:42:31 +05:30
cogwheel0
ecf760d9ec feat(auth): Enhance logout flow with comprehensive data clearing 2025-11-12 13:44:05 +05:30
cogwheel0
45135d9185 fix(auth): Improve auth error handling without token clearing 2025-11-12 13:23:58 +05:30
cogwheel0
122bd0a4b1 feat(storage): Add local folders persistence and caching mechanism 2025-11-10 10:44:03 +05:30
cogwheel0
5727c055a2 Revert "fix(streaming): refactor to not force session id"
This reverts commit 8cc7a23477.
2025-11-06 20:09:18 +05:30
cogwheel0
b9ec730fad feat(conversation): Enhance source parsing and normalization for OpenWebUI messages 2025-11-05 13:10:00 +05:30
cogwheel0
1bb2cbae25 feat(voice): add voice silence duration configuration 2025-11-05 00:33:17 +05:30
cogwheel0
715849aff3 feat(tts): add speech rate support for text-to-speech generation 2025-11-03 00:44:24 +05:30
cogwheel0
a05837b985 refactor(streaming): Optimize image collection and debounce mechanism 2025-11-02 22:14:45 +05:30
cogwheel0
cfadeffd24 feat(tts): add auto mode for text-to-speech engine selection 2025-11-02 21:31:13 +05:30
cogwheel0
86339715b1 feat(sts): add server side speech-to-text 2025-11-02 19:03:36 +05:30
cogwheel0
8321e3c721 feat(l10n): Update English localization with voice call states and model capabilities 2025-11-02 17:44:23 +05:30
cogwheel0
e15392ea59 refactor(socket): remove unused connection state management code 2025-11-01 22:51:32 +05:30
cogwheel0
8cc7a23477 fix(streaming): refactor to not force session id 2025-11-01 22:41:38 +05:30
cogwheel0
877b403914 refactor(api): Improve data parsing with normalized list handling 2025-11-01 15:29:54 +05:30
cogwheel0
fe09583c6b feat(api): Improve file and prompt parsing with type safety 2025-11-01 15:21:34 +05:30
cogwheel0
42ef62d565 feat(api): Improve file and knowledge base data parsing with normalization 2025-11-01 15:15:38 +05:30
cogwheel0
073e0cf458 feat(folders): Improve folder management and parsing logic 2025-11-01 15:04:50 +05:30
cogwheel0
a005c14a67 feat(api): Optimize conversation parsing with worker-based decoding 2025-11-01 14:54:08 +05:30
cogwheel0
a374c744ef refactor(api): Migrate conversation parsing to worker-based approach 2025-11-01 01:46:46 +05:30
cogwheel0
ada6d40e5e feat(chat): Add worker manager to streaming helper for image processing 2025-11-01 00:57:40 +05:30
cogwheel0
5d33e5fe65 fix: server side tts on ios 2025-10-31 23:20:04 +05:30
cogwheel0
cf87d255d3 feat(settings): Allow unlimited quick pill selections 2025-10-30 22:44:08 +05:30
cogwheel0
a00d64fc26 feat(transport): Improve socket transport mode selection and localization 2025-10-30 22:32:59 +05:30
cogwheel0
44149d5f81 feat(tts): add server default voice retrieval and integrate it into 2025-10-30 16:10:20 +05:30
cogwheel0
0e98f2ab2a refactor(storage): remove remember-credentials and improve error logging and handling 2025-10-30 14:28:00 +05:30
cogwheel0
7fb199b2e4 feat: implement service failure handling in background streaming
- Added a method to send failure notifications to Flutter when the background service fails to enter the foreground.
- Implemented a broadcast receiver to handle service failure notifications and notify Flutter about the failure.
- Enhanced the persistent streaming service to attempt recovery for failed streams.
- Introduced heartbeat monitoring for SSE streams to detect stale connections and trigger recovery actions.
2025-10-28 13:59:17 +05:30
cogwheel0
5ab3b9c4e0 feat(api): pass userSettings respect function_calling preference in 2025-10-26 23:00:01 +05:30
cogwheel0
ae48fcc035 feat(sse): add SSEStreamParser to parse Dio SSE streams and extract 2025-10-26 22:33:53 +05:30
cogwheel0
2b44e38a2e feat(i18n/socket): add WebSocket error messages and show connect errors 2025-10-25 14:24:49 +05:30
cogwheel0
1cb8926e21 feat(chat): regenerate variants and support
Hide archived assistant variants in the linear chat view and track
previous assistant as versions so regenerated responses do not
duplicate or lose history. When regenerating, mark the previous assistant
message with an archivedVariant flag for the UI and keep it in server
history. Add a ChatMessageVersion model and a versions field to
ChatMessage to store prior generated variants. Implement
archiveLastAssistantAsVersion in chat providers to snapshot the last
assistant message into versions and reset the message for a fresh
streamed generation. Finalize flow updates to attach an adjacent archived
assistant as a version when needed so the UI can present a switcher
between current and past variants. These changes prevent duplicate
messages, preserve previous responses, and enable variant switching.
2025-10-23 22:29:28 +05:30
cogwheel0
561e7dd616 feat(tts): server-backed TTS engine selection
Introduce server TTS support and engine selection while keeping
device TTS as the default.

- Add new persistence keys for storing TTS engine and selected
  server voice (ttsEngine, ttsServerVoiceId, ttsServerVoiceName).
- Extend TextToSpeechService to support two engines:
  TtsEngine.device (FlutterTts) and TtsEngine.server (remote audio).
- Wire in an AudioPlayer and optional ApiService to fetch raw
  audio bytes from the server and play them, with event hooks
  mapped to existing lifecycle callbacks.
- Implement fallback to device TTS on server errors or empty
  responses, and ensure player lifecycle (pause/stop/dispose)
  is handled when using server engine.
- Allow engine and preferred voice to be configured before
  initialization and updated at runtime via updateSettings.

This enables selecting a server-side voice and using a remote
TTS provider while preserving compatibility with the existing
device TTS implementation.
2025-10-23 16:31:15 +05:30
cogwheel0
d00cbe36cf refactor: Replace hardcoded monospace font with AppTypography constant
- Updated multiple instances of the 'monospace' font family to use AppTypography.monospaceFontFamily for consistency across the application.
- This change enhances maintainability and ensures a unified typography approach throughout the app.
2025-10-21 00:09:12 +05:30
cogwheel0
2f8fd97022 refactor: Enhance file attachment handling and UI components
- Updated the file attachment service to utilize a new LocalAttachment class, improving the management of file metadata such as display names.
- Refactored methods for picking and uploading files to accommodate the new LocalAttachment structure, ensuring consistent handling of file attributes.
- Improved the chat page to validate and manage file attachments more effectively, enhancing user experience during file uploads.
- Added functionality for image previews in the file attachment widget, allowing users to see selected images before sending.
- Introduced a remove button for attachments, improving usability by enabling users to easily discard unwanted files.
2025-10-19 13:50:54 +05:30
cogwheel0
60883315a2 refactor: Migrate to Tweakcn themes and enhance UI consistency
- Replaced references to AppColorPalettes with TweakcnThemes across various files to standardize theme usage.
- Updated the AppTheme and AppColorTokens to utilize TweakcnThemeDefinition for improved theme management.
- Adjusted UI components in ChatPage, ChatsDrawer, AppCustomizationPage, and ProfilePage to align with the new theme structure, ensuring consistent styling and color application.
- Removed the deprecated color_palettes.dart file to streamline the theme architecture.
2025-10-18 13:58:15 +05:30
cogwheel0
6c81d68e59 feat: Add Text-to-Speech settings and customization options
- Introduced new preference keys for TTS settings: voice, speech rate, pitch, and volume.
- Updated SettingsService to handle TTS settings and persist them.
- Enhanced AppSettings to include TTS-related properties.
- Implemented TTS settings UI in AppCustomizationPage, allowing users to select voice and adjust speech parameters.
- Added localization support for TTS settings in multiple languages.
2025-10-17 14:40:44 +05:30
cogwheel0
a2ae48f85f chore: update Fastlane configuration and clean up API service
- Updated the Deliverfile to submit for review and skip metadata and screenshots.
- Removed outdated build lane from Fastfile.
- Refactored API service to eliminate fallback to latest assistant message, addressing duplication issues in multi-turn conversations.
2025-10-16 23:51:18 +05:30
cogwheel0
762155500b feat: Improve offline detection logic
This commit refactors the connectivity service to be more robust and less prone to UI flicker.

Key changes:
- Any successful API response now briefly suppresses the offline warning. This prevents the UI from flashing an offline message between regular connectivity checks.
- The threshold for showing the offline warning is increased from 2 to 3 consecutive failed health checks.
- The timeout for health checks is increased to better handle slow networks.
- The offline warning is now suppressed if there are active data streams to avoid interrupting the user.
- A custom JSON converter is added for conversation metadata to handle potential type mismatches from local storage.
2025-10-16 11:34:28 +05:30
cogwheel0
7d4aca1944 fix: add tls override for websockets incase of self signed certs 2025-10-11 16:17:35 +05:30
cogwheel0
4003941482 feat: implement background task management for improved streaming continuity
- Integrated BackgroundTasks framework in iOS to manage background processing for audio streams.
- Added methods to register, schedule, and handle background tasks, allowing streams to continue for extended periods.
- Enhanced the BackgroundStreamingHandler to support background task notifications and keep-alive signals.
- Updated Info.plist to permit background task identifiers, ensuring compliance with iOS requirements.
- Improved the PersistentStreamingService to handle background task extensions and keep-alive signals effectively, enhancing overall streaming reliability.
2025-10-11 13:53:30 +05:30
cogwheel0
7a8bd54dba refactor: remove self-signed certificate manager and streamline certificate handling
- Deleted the SelfSignedCertificateManager and its associated files to simplify the certificate management process.
- Updated ApiService and ConnectivityService to include self-signed certificate configuration directly, enhancing clarity and maintainability.
- Adjusted comments to reflect the new approach to handling self-signed certificates, ensuring better understanding of security considerations.
- Improved the application startup sequence by deferring unnecessary initializations, contributing to a more efficient first paint performance.
2025-10-11 13:16:31 +05:30
cogwheel0
4eb1191748 feat: enhance background streaming functionality with improved wake lock management
- Updated the wake lock duration in BackgroundStreamingHandler to 3 hours, ensuring the service remains active for longer periods.
- Modified the keepAlive method to support both iOS and Android, allowing for better background task management across platforms.
- Implemented a periodic keep-alive timer in VoiceCallService to refresh the wake lock every 5 minutes, enhancing service reliability during voice calls.
- Added debug logging for successful keep-alive invocations, improving traceability of background operations.
2025-10-10 19:59:17 +05:30
cogwheel0
778116e258 refactor: optimize socket service event handling and token management
- Updated SocketServiceManager to read the authTokenProvider3 without watching it, preventing unnecessary rebuilds on token changes.
- Enhanced SocketService to manage event listeners more effectively by adding and removing event handlers for 'events' and 'events:channel', improving overall socket management.
2025-10-09 20:51:29 +05:30
cogwheel0
a9030473b0 feat: enhance background streaming handler with microphone support
- Updated BackgroundStreamingHandler to include microphone permission handling for background execution.
- Modified startBackgroundExecution method to accept a requiresMicrophone parameter, allowing dynamic management of streams requiring microphone access.
- Adjusted service intent to pass microphone requirement status, improving service behavior based on app state.
- Enhanced VoiceCallService to utilize the new microphone support during voice call streaming, ensuring proper resource management.
2025-10-09 16:18:14 +05:30