{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":581681673,"defaultBranch":"main","name":"Whisperboard","ownerLogin":"Saik0s","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-12-23T23:48:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5645636?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1719092029.0","currentOid":""},"activityList":{"items":[{"before":"e1f805e2dd09972252145dc01e73387f5f2bd2a6","after":"6226ca4e219192fbfd9afd73331de97cf084ed56","ref":"refs/heads/main","pushedAt":"2024-06-22T22:34:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"chore: updated TranscriptionStream and Project configurations for improved performance\n\nCHANGES:\n\n- Added \"MTL_FAST_MATH\" setting to Project.swift\n- Simplified TranscriptionStream decodeOptions configuration\n- Removed several unused parameters from decodeOptions\n- Added clipTimestamps parameter to decodeOptions\n- Adjusted temperature and fallback settings in decodeOptions","shortMessageHtmlLink":"chore: updated TranscriptionStream and Project configurations for imp…"}},{"before":"2f44b54a314980465c0720093370115305b5acc3","after":"e1f805e2dd09972252145dc01e73387f5f2bd2a6","ref":"refs/heads/main","pushedAt":"2024-06-22T22:09:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"chore: update Transcription model and improve recording process\n\nCHANGES:\n\n- Added tokensPerSecond display in RecordingView and RecordingDetailsHeaderView\n- Updated Transcription struct to include timings property\n- Modified TranscriptionStream to set tokensPerSecond in state\n- Refactored RecordScreen to mark transcription as done upon successful recording\n- Updated TranscriptionWorker to set timings separately from status\n- Enhanced WhisperKit options in TranscriptionStream for more detailed configuration\n- Adjusted mock data to include timings in Transcription instances","shortMessageHtmlLink":"chore: update Transcription model and improve recording process"}},{"before":"bef46b4b5b5321f0f097496886ca13948438506e","after":"2f44b54a314980465c0720093370115305b5acc3","ref":"refs/heads/main","pushedAt":"2024-06-22T21:40:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"chore: update transcription status and remove auto-transcription feature\n\nCHANGES:\n\n- Updated transcription status to include timing information\n- Removed auto-transcription feature and related UI elements\n- Simplified token structure by removing TokenData\n- Added separate options to delete all recordings or all models\n- Updated GPU usage settings for transcription\n- Improved audio session handling in RecordingStream\n- Refactored RecordScreen and RootStore for better efficiency\n- Updated Settings structure to reflect removed features\n\nView changes","shortMessageHtmlLink":"chore: update transcription status and remove auto-transcription feature"}},{"before":"bde42d3d70adabae88a4e47c28902be327994596","after":"bef46b4b5b5321f0f097496886ca13948438506e","ref":"refs/heads/main","pushedAt":"2024-06-22T21:36:01.000Z","pushType":"push","commitsCount":44,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"Merge branch 'whisperkit_clean'","shortMessageHtmlLink":"Merge branch 'whisperkit_clean'"}},{"before":"1c956be1380c76185ed488cfc94b2f3e5d84e7e8","after":"bde42d3d70adabae88a4e47c28902be327994596","ref":"refs/heads/main","pushedAt":"2024-06-22T21:35:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"♻️ Refactor transcription worker clients by removing commented code\n⬆️ Upgrade dependencies in Package.swift and Package.resolved\n✨ Update project version to 1.12.0 in Project.swift","shortMessageHtmlLink":"♻️ Refactor transcription worker clients by removing commented code"}},{"before":"37e9a6220e01bbbe584ea6c9de9b9495e2e89934","after":null,"ref":"refs/heads/whisperkit_clean","pushedAt":"2024-06-22T21:33:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"}},{"before":null,"after":"37e9a6220e01bbbe584ea6c9de9b9495e2e89934","ref":"refs/heads/whisperkit_clean","pushedAt":"2024-06-22T21:30:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"chore: removed waveform visualization and simplified transcription text handling\n\nCHANGES:\n\n- Removed waveform visualization from the recording view\n- Simplified transcription text handling, removing current text concatenation\n- Commented out code for updating wave samples\n- Removed unused samples state variable\n- Streamlined recording state updates","shortMessageHtmlLink":"chore: removed waveform visualization and simplified transcription te…"}},{"before":"f56a23be8e11648cfdfecca60ece61f0c5f2b7ef","after":null,"ref":"refs/heads/whisperkit","pushedAt":"2024-06-22T19:28:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"}},{"before":"ece2492da87fc7d8acbe177d99c34087e8723403","after":null,"ref":"refs/heads/whisperkit_clean","pushedAt":"2024-06-22T19:28:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"}},{"before":"bde42d3d70adabae88a4e47c28902be327994596","after":"1c956be1380c76185ed488cfc94b2f3e5d84e7e8","ref":"refs/heads/main","pushedAt":"2024-06-22T19:28:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"Whisperkit (#36)\n\n* ✨ (SwiftUI Views): Add primary background color to RecordingDetailsView\r\n✨ (SwiftUI Views): Implement tabBarContentInset in RecordingListScreenView\r\n♻️ (RootView): Refactor background and content inset application\r\n✨ (RootView): Add logic to hide tab bar based on navigation path\r\n♻️ (TabBarContainerView): Simplify tab bar visibility animation logic\r\n⬆️ (Project dependencies): Replace commented dependencies with WhisperKit integration\r\n\r\n✨ (Tuist/Package.resolved): add Package.resolved to track dependency versions\r\n\r\n⬆️ Add swiftui-navigation-transitions, variableblurview, whisperkit, xctest-dynamic-overlay dependencies\r\n\r\n✨ (Tuist/Package.swift): add Package.swift for managing dependencies with Swift Package Manager\r\n\r\n* ✨ (UIApplication+window.swift): add extension to get root UIWindow for better scene handling\r\n♻️ (AnimatedTabBar.swift): refactor frame modifier for dynamic maxWidth based on selectedIndex\r\n♻️ (RootView.swift): animate tabBarViewModel visibility change for smoother UI transitions\r\n♻️ (TabBarContainerView.swift): update FluidGradient colors for a fresher look and move blur effect to AnimatedTabBar for enhanced UI clarity\r\n📝 (Multiple Files): update comments and structure for clarity and maintainability\r\n\r\n* ♻️ Refactor Swift codebase for clarity and maintainability\r\n✨ Add dynamic port configuration and improve logging in debug mode\r\n🐛 Fix audio recording cleanup process to prevent potential resource leaks\r\n✨ Enhance storage client to support new file naming convention for recordings\r\n♻️ Simplify state management in recording features for better readability and performance\r\n✨ Implement initial state setup for root view with improved animation handling\r\n\r\n✨ (TabBarContainerView.swift): Increase tabBarHeight to 94 for better visibility and interaction\r\n♻️ (TabBarContainerView.swift): Refactor tabBar visibility logic to use opacity for cleaner code\r\n♻️ (SettingsScreenView.swift): Move .applyTabBarContentInset() to ensure correct content inset is applied after view appears\r\n\r\n* 🔧 Update .gitignore to exclude buildServer.json file\r\n\r\n♻️ Refactor AudioRecorderClient to use an array of powers for more detailed audio analysis\r\n\r\n💡 Remove unnecessary comments from UIApplication+window.swift for cleaner code\r\n\r\n✨ Add TranscriptionControlsView to encapsulate transcription controls UI logic\r\n\r\n♻️ Simplify Recording state management by directly updating with recording state changes\r\n\r\n♻️ Refactor RecordingDetailsView to streamline transcription view logic\r\n✨ Add TranscriptionControlsView for active transcription or queued tasks\r\n🐛 Fix animation alignment in RecordingListScreenView and RootView\r\n✨ Implement build_server task in Makefile for Xcode build server config\r\n⬆️ Upgrade DSWaveformImage dependency to 14.2.2 in Package.swift and Package.resolved\r\n\r\n* ⬆️ (Project.swift): bump project version from 1.12.0 to 1.12.1\r\n\r\n* ♻️ (TabBarContainerView.swift): Refactor screenWidth to be @State for dynamic updates\r\n✨ (TabBarContainerView.swift): Add .readSize modifier to dynamically update screenWidth\r\n\r\n* ✨ (AppView.swift, NotificationCenterClient.swift, TranscriptionWorkExecutor.swift): Add background task identifier update, foreground and background notification support, and transcription work executor dependency\r\n\r\n- Update task identifier for clarity and consistency\r\n- Introduce foreground and background notification handling for better app state management\r\n- Implement dependency injection for transcription work executor to enhance modularity and testability\r\n\r\n♻️ Refactor TranscriptionWorkerClient to use Reducer pattern for better state management and action handling\r\n🔥 Remove unused isProcessing PersistenceReaderKey following refactor\r\n\r\n✨ (RecordingStream.swift): Add new `RecordingStream` feature for audio transcription\r\n♻️ (RecordingCard.swift): Refactor transcription actions to use delegate pattern\r\n♻️ (RecordingListScreenView.swift): Improve recording list update logic and sorting\r\n📝 (RecordingListScreenView.swift): Update animations for empty state view with delay\r\n\r\n✨ (RootStore.swift): Integrate `DependenciesAdditions` and refactor transcription worker management\r\n♻️ (RootStore.swift): Refactor idle timer management to use application dependency\r\n♻️ (SettingsScreen.swift): Use `WhisperContext` for fetching available languages\r\n🔧 (Makefile): Update build server command for better vscode support\r\n⬆️ (Package.resolved, Package.swift): Upgrade dependencies for better stability and features\r\n\r\n* ✨ (StorageClient.swift): Add setCurrentRecordingURL function to StorageClient\r\n♻️ (StorageClient.swift): Refactor UserDefaults usage for uploadedFiles storage\r\n✨ (LiveTranscriptionStream.swift): Introduce LiveTranscriptionStream for real-time transcription\r\n🔥 (RecordingStream.swift): Remove obsolete RecordingStream implementation\r\n\r\n✨ (RootStore.swift): Implement onChange for recording URL updates\r\n✨ (RootStore.swift): Insert new recordings at top of list for better visibility\r\n♻️ (RootStore.swift): Refactor action cases for consistency and readability\r\n✨ (CombinedTranscriptionWorkerExecutor.swift, LocalTranscriptionWorkExecutor.swift, TranscriptionParameters+whisper.swift): Add local transcription worker feature for processing transcription tasks locally\r\n\r\n✨ Add WhisperContext and helper extensions for audio transcription feature\r\n\r\n✨ Add new TranscriptionWorker feature with remote execution and task management capabilities\r\n\r\n⬆️ (Workspace.swift): Update lastXcodeUpgradeCheck to Version(15, 4, 0) to reflect the latest Xcode version upgrade\r\n\r\n* 🔧 Update .gitignore to exclude .aider files\r\n✨ Add new debug configurations for swift-composable-architecture in .vscode/launch.json\r\n✨ Introduce signpost in AppView.swift for better performance analysis\r\n♻️ Refactor AudioRecorderClient to use background priority tasks for better resource management\r\n♻️ Make RecordingState public for wider accessibility in AudioRecorderClient\r\n♻️ Update AudioSessionClient to notify others on deactivation for better audio session management\r\n♻️ Refactor NotificationCenterClient for cleaner code formatting\r\n♻️ Make EquatableError public and refactor Error extensions for broader usage\r\n✨ Integrate PulseLogHandler for enhanced logging capabilities in Logging.swift\r\n\r\n✨ (AudioFileStreamRecorder.swift): add new AudioFileStreamRecorder for screen recording feature\r\n\r\n🔥 (LiveTranscriptionStream.swift): remove LiveTranscriptionStream feature due to redundancy\r\n\r\n✨ (Recording.swift): Integrate live transcription feature with UI updates\r\n♻️ (Recording.swift): Refactor Recording action and state management for clarity\r\n📝 (Recording.swift): Add comprehensive comments and documentation for new features\r\n\r\n✨ (RecordingControls.swift): Add live transcription feature with view modes\r\n\r\n- Introduce `TranscriptionViewMode` enum to toggle between simple and technical views.\r\n- Add `isLiveTranscriptionEnabled` flag to toggle live transcription feature.\r\n- Implement `transcriptionViewMode` to store current view mode.\r\n- Use `CancelID` enum for cancellable recording actions.\r\n- Refactor `startRecording` to support live transcription based on user settings.\r\n- Update UI to include live transcription view and toggle switch.\r\n- Enhance recording controls with transcription state management and UI updates.\r\n\r\n✨ Add `RecordingTranscriptionStream.swift` for live transcription features\r\n♻️ Refactor `SettingsScreenView.swift` to use `ConsoleView` for logs\r\n🔥 Remove commented code blocks in transcription worker features\r\n\r\n✨ (Project.swift, Package.swift, Package.resolved): Add Pulse and PulseLogHandler dependencies for improved logging\r\n\r\n✨ (Project.swift): Dynamically add NSLocalNetworkUsageDescription and NSBonjourServices to plist for non-App Store builds to support debugging\r\n\r\n♻️ (Project.swift): Reorder external dependencies alphabetically for better organization\r\n\r\n* ✨ (AudioFileStreamRecorder.swift): update audio file and buffer format for recording\r\n\r\n- Change audio file writing settings to use a more flexible format, specifically `pcmFormatFloat32`, to improve audio quality and compatibility.\r\n- Modify the way audio buffers are written to the audio file to support the new format, enhancing the efficiency and reliability of audio data handling.\r\n\r\n* ♻️ Refactor AppView and AudioPlayerClient for better code organization and clarity\r\n✨ Introduce WhisperKitError for unified error handling across the app\r\n🚚 Move AudioPlayer implementation to AudioPlayerClient for encapsulation\r\n🔥 Remove duplicate RecordingState definition to avoid redundancy\r\n♻️ Make audioPlayer property fileprivate in AudioPlayerClient for encapsulation\r\n\r\n✨ (AudioFileStreamRecorder.swift): integrate AudioKit for enhanced audio processing\r\n♻️ (AudioFileStreamRecorder.swift): refactor recording logic to use NodeRecorder\r\n🐛 (AudioFileStreamRecorder.swift): fix recording state management with NodeRecorder\r\n✨ (AudioFileStreamRecorder.swift): add error handling for recording start conditions\r\n📝 (AudioFileStreamRecorder.swift): update state management and recording flow comments\r\n\r\n✨ (AudioProcessor+setup.swift): Add new audio processing setup for recording\r\n♻️ (MicSelectorView.swift): Remove redundant task initiation in view setup\r\n♻️ (Recording.swift): Refactor recording state management and update transcription handling logic\r\n\r\n✨ (RecordingControlsView.swift): introduce RecordingControlsView with live transcription and waveform display\r\n✨ (RecordingTranscriptionStream.swift): adjust transcription stream settings for better accuracy and responsiveness\r\n\r\n✨ (RecordingListScreenView.swift, RootStore.swift, RootView.swift, SettingsScreenView.swift, TranscriptionWorker.swift): Enhance app functionality and improve code quality\r\n\r\n- Removed unused `.messagePopup` and `.task` modifiers in `RecordingListScreenView.swift` to clean up the view layer.\r\n- Updated recording URL path in `RootStore.swift` to reflect changes in data model structure, ensuring correct file handling.\r\n- Added logic in `RootStore.swift` to automatically mark transcriptions as done if they were transcribed during recording, improving user experience by reducing manual steps.\r\n- Implemented removal of a recording from the list and navigation stack upon deletion in `RootStore.swift`, enhancing app navigation and data consistency.\r\n- Marked `RootView.swift` with `@MainActor` to ensure UI updates are performed on the main thread, improving app stability.\r\n- Expanded `.task` modifier in `RootView.swift` to initialize multiple features at once, streamlining app startup process.\r\n- Removed redundant `.task` modifier in `SettingsScreenView.swift` that was causing unnecessary initializations.\r\n- Simplified background and foreground task handling in `TranscriptionWorker.swift` by removing redundant async task management, focusing on essential task processing and improving code maintainability.\r\n\r\n* ♻️ Refactor AudioSession and Logging for cleaner architecture and efficiency\r\n✨ Add Double extension for rounding to specific places\r\n🔥 Remove AudioPlayer.swift to consolidate playback logic\r\n✅ Update Playback.swift to improve equality comparison precision\r\n💡 Update comments and logging for clarity and maintainability\r\n\r\n✨ (AudioFileStreamRecorder.swift): add new AudioFileStreamRecorder for audio processing and transcription support\r\n\r\n✨ (AudioProcessor+setup.swift, RecordingTranscriptionStream.swift): add audio processing and transcription streaming features\r\n\r\n♻️ Refactor Recording.swift by removing commented-out code for clarity and maintenance\r\n♻️ Update RecordingListScreenView.swift to modularize view code for better readability\r\n🔧 Adjust Project.swift by reordering external dependencies for consistency\r\n\r\n* ✨ (AudioFileStreamRecorder.swift): Add relativeEnergyWindow setting to enhance audio processing\r\n♻️ (AudioFileStreamRecorder.swift & Recording.swift): Refactor waveSamples calculation and duration assignment for clarity and accuracy\r\n\r\n* ✨ (Task++.swift): Add ComposableArchitecture import and synchronous task utility\r\n✨ (AudioFileStreamRecorder.swift): Simplify audio file recording process\r\n✨ (AudioProcessor+setup.swift): Refactor audio recording setup to start recording and return AVAudioFile\r\n✨ (RecordingTranscriptionStream.swift): Implement async model loading with progress updates\r\n♻️ (Various): Refactor and clean up code for clarity and efficiency\r\n\r\n♻️ (Recording.swift): Simplify live transcription flow by removing model loading tasks and directly starting transcription, improving performance and code readability.\r\n\r\n✨ (RecordingControlsView.swift): Introduce a new energy buffer visualizer for live transcription, enhancing user feedback by displaying energy levels in a scrollable horizontal view.\r\n\r\n* 🔧 Update .gitignore to exclude App/Support/Reveal/ directory\r\n⬆️ Upgrade swiftlint and swiftformat to latest versions in .mise.toml\r\n✨ Add new dependencies in .package.resolved for enhanced functionality\r\n💡 Improve log message format in Logging.swift by showing only the file's last component\r\n✨ Introduce project_cache_warmup target in Makefile for faster build initialization\r\n✨ Detect RevealServer.xcframework support dynamically in Project.swift\r\n✨ Add ETTrace package dependency in Project.swift for enhanced tracing capabilities\r\n♻️ Refine Swift compiler flags in Project.swift for better debug information\r\n✨ Add XCLogParser post-build script in Project.swift for detailed build logs analysis\r\n\r\n* ♻️ (Playback.swift): Simplify equality check in PlaybackPosition by removing explicit return\r\n📝 (AudioRecorderClient.swift): Add MARK comment for RecordingState enum to improve code organization\r\n♻️ (Task++.swift): Reorder imports for consistency\r\n♻️ (AudioFileStreamRecorder.swift): Remove unused error property and redundant type declarations for isRecording and isPaused\r\n♻️ (RecordingTranscriptionStream.swift): Annotate loadModelAsync function with @Sendable and improve readability by adding line breaks\r\n♻️ (Recording.swift): Remove unused Alert enum cases and handling, streamline error logging\r\n♻️ (RecordingControlsView.swift): Replace bufferEnergy property usage with samples, enhance visualization with WithPerceptionTracking, comment out defaultScrollAnchor for future review\r\n\r\n* ⬆️ Upgrade dependencies by removing unused packages\r\n✨ Add conditional import and usage of RollbarNotifier for enhanced error tracking\r\n♻️ Refactor FileImportClient to include synchronous file import method\r\n✨ Introduce Voice Activity Detection (VAD) setting in Settings entity for improved audio processing\r\n♻️ Refactor AudioFileStreamRecorder and AudioProcessor for better audio file handling and processing efficiency\r\n\r\n✨ (RecordingTranscriptionStream.swift): Add live transcription and model management features\r\n♻️ (RecordScreenView.swift, Recording.swift): Refactor dependencies and state management for clarity and efficiency\r\n\r\n✨ (RecordingControlsView.swift): add infinite maxHeight to improve UI layout\r\n♻️ (LocalTranscriptionWorkExecutor.swift): refactor transcription process into whisperCPPProcess method for clarity\r\n♻️ (WhisperContext.swift): refactor audio file decoding to use WhisperKit for improved efficiency\r\n🔥 (RemoteTranscriptionWorkerExecutor.swift): remove unused Remote transcription worker executor\r\n✨ (Makefile): add 'dev' target for development environment setup\r\n\r\n✨ (Project.swift): Introduce environment-based configuration for app builds\r\n♻️ (Project.swift): Refactor RevealServer support check and appInfoPlist setup\r\n✨ (Project.swift): Add conditional package dependencies for AppStore and Dev environments\r\n📝 (Project.swift): Update appInfoPlist with new configurations and permissions\r\n\r\n♻️ (Project.swift): Refactor build settings for conditional compilation\r\n✨ (Project.swift): Add conditional compilation flags for AppStore builds\r\n🔧 (Project.swift): Update debug and release settings based on environment\r\n✨ (Project.swift): Integrate RollbarNotifier conditionally for AppStore builds\r\n\r\n⬆️ (Tuist/Package.resolved): Upgrade dependencies to newer versions for better functionality and bug fixes\r\n\r\n* Massive refactoring, whispercpp removed, full whisperkit integration, new project structure\r\n\r\n* feat: added new audio processing build tasks and refactored dependencies\r\n\r\n### CHANGES\r\n- Excluded `.vscode` from SwiftFormat and SwiftLint.\r\n- Added new VSCode tasks for building `AudioProcessing` and `WhisperBoardKit`.\r\n- Updated Makefile to cache `Common` and `AudioProcessing`.\r\n- Added new external dependencies in `Project.swift`.\r\n- Deleted `ggml-tiny.bin` and `APIClient.swift`.\r\n- Removed `ChunkedUploader.swift` and `AudioRecorderClient.swift`.\r\n- Moved `DataMigrator.swift` and refactored imports.\r\n- Deleted `ModelDownloadClient.swift` and related entities.\r\n- Refactored `StorageClient` to use `Configs.recordingsDirectoryURL`.\r\n- Updated various features to import `Common` and `AudioProcessing`.\r\n- Refactored model handling in `ModelSelector` and related views.\r\n- Refactored transcription-related entities and moved to `Common`.\r\n- Updated `RecordingTranscriptionStream` to handle model loading and deletion.\r\n- Added new `ModelLoadingStage` enum for tracking model load progress.\r\n- Refactored `TranscriptionStream` to use new state management.\r\n- Added new `Configs` enum in `Common` for shared configurations.\r\n- Renamed and refactored several entities for better modularization.\r\n\r\n* feat: improved transcription handling and model management in `Recording`\r\n\r\n## CHANGES\r\n- Added default model fallback for `selectedModelName`\r\n- Introduced `Dependencies` import in `Recording.swift`\r\n- Changed initial state of `_liveTranscriptionModelState` to `.idle`\r\n- Renamed `recordingTranscriptionStream` to `transcriptionStream`\r\n- Simplified transcription state handling in `Recording`\r\n- Updated `ModelRow.Action` to remove `Equatable` conformance\r\n- Enhanced error handling in `ModelSelector`\r\n- Refactored `SettingsScreen` to use constant languages list\r\n- Updated `TranscriptionStream.State` with utility methods\r\n- Made `ModelStatus` properties public and added initializer\r\n- Updated package dependencies and versions in `Package.swift`\r\n\r\n* feat: added new app target for development environment\r\n\r\n### CHANGES\r\n- Added `createAppTarget` for development environment.\r\n- Included empty scripts and dependencies for new target.\r\n\r\n* ♻️ (Project.swift): refactor app target dependencies to conditionally include ShareExtension based on suffix value\r\n\r\n* chore: refactored project dependencies and added ETTrace support\r\n\r\n### CHANGES\r\n- Updated `.package.resolved` with new dependencies and versions.\r\n- Added `Common` and `AudioProcessing` targets in `.periphery.yml`.\r\n- Simplified `launch.json` for VSCode debugging configuration.\r\n- Added `ETTrace.xcframework` with multiple platform support.\r\n- Updated `Project.swift` to include ETTrace framework.\r\n- Refactored `Recording.swift` for better state management.\r\n- Improved `RecordingControlsView` layout and scroll behavior.\r\n- Removed unused `VariableBlurView` imports.\r\n- Enhanced `SettingsScreen` initialization with shared settings.\r\n- Optimized `RecordingTranscriptionStream` model loading logic.\r\n\r\n* chore: refactored the `DataMigrator` and `Recording` for model handling\r\n\r\n### CHANGES\r\n- Removed `selectedModelName` from `SettingsMigration`\r\n- Added `generateImpact` method for haptic feedback\r\n- Changed `Mode` enum case from `encoding` to `saving`\r\n- Updated `LiveTranscriptionState` enum for model loading progress\r\n- Refactored live transcription state handling in `Recording`\r\n- Deleted `ModelRowView` and related code\r\n- Refactored `ModelSelector` to handle model download and selection\r\n- Updated `RecordingTranscriptionStream` to use new model handling\r\n- Replaced `ModelStatus` with new `Model` struct\r\n- Updated `Settings` to use `selectedModelName` instead of `selectedModel`\r\n- Removed unused `DownloadState` entity\r\n\r\n* chore: added new debug configuration and refactored model handling\r\n\r\n### CHANGES\r\n- Added \"Launch and Debug Dev\" configuration in `launch.json`\r\n- Introduced `build_dev` task in `tasks.json`\r\n- Updated Makefile to include `WhisperBoardDev` target\r\n- Corrected typo in `Project.swift` for ETTrace support message\r\n- Commented out `_printChanges` and `signpost` in `AppView.swift`\r\n- Removed `@ObserveInjection` and `.enableInjection()` from various views\r\n- Adjusted model handling in `ModelSelector` and related views\r\n- Enhanced font size adaptability in `TextStyles.swift`\r\n- Updated `RecordingTranscriptionStream` to include recommended models\r\n- Added `isUsingNeuralEngine` to `Settings` entity\r\n- Changed build scheme to `WhisperBoardDev` in `buildServer.json`\r\n\r\n```html\r\nconsult xcode-build-server for vscode support\r\n```\r\n\r\n* Removed all files that are in the .gitignore\r\n\r\n* feat: added `AsyncAlgorithms` dependency and improved transcription handling\r\n\r\n### CHANGES\r\n- Replaced `isDev` with `!isAppStore` for network usage description.\r\n- Added `AsyncAlgorithms` dependency to multiple targets.\r\n- Improved thread safety with `withLock` in `StorageClient`.\r\n- Enhanced live transcription state handling with `withLock`.\r\n- Refactored transcription progress and error handling in `Recording`.\r\n- Simplified `TranscriptionControlsView` with extracted subviews.\r\n- Adjusted padding and alignment in `RecordingDetailsView`.\r\n- Removed unused `CombinedTranscriptionWorkerExecutor`.\r\n- Enhanced logging and error handling in `LocalTranscriptionWorkExecutor`.\r\n- Updated text styles in `TextStyles.swift`.\r\n- Improved waveform image handling in `WaveformProgressView`.\r\n- Refactored model loading with progress callback in `RecordingTranscriptionStream`.\r\n- Enhanced transcription state management and logging in `TranscriptionStream`.\r\n- Added word data structure to `Transcription`.\r\n- Updated dependencies in `Package.resolved`.\r\n\r\n* feat: refactored `RecordingDetailsView` to modularize and simplify components\r\n\r\n### CHANGES\r\n- Made `Field` enum non-private for broader access.\r\n- Extracted header view into `RecordingDetailsHeaderView`.\r\n- Modularized `WaveformProgressView` and `PlayButton` into separate views.\r\n- Created `doneButton` for toolbar item.\r\n- Split transcription view into `textTranscriptionView` and `timelineTranscriptionView`.\r\n- Added `applyVerticalEdgeSofteningMask` extension for view masking.\r\n- Removed inline transcription controls, moved to `RecordingDetailsHeaderView`.\r\n- Simplified main view structure with modular components.\r\n\r\n* chore: refactored `ModelSelector` and added bulk delete functionality\r\n\r\n### CHANGES\r\n- Removed suffix from `bundleId` in `createAppTarget`\r\n- Added `deleteAllModelsButtonTapped` action in `ModelSelector`\r\n- Introduced `setModelsDirNotEmpty` action in `ModelSelector`\r\n- Added `hasAnythingInModelsDir` property in `ModelSelector.State`\r\n- Created `DownloadedSection`, `AvailableSection`, and `NotSupportedSection` views\r\n- Added `ModelRow` view for model display and actions\r\n- Updated color palette with new `code05` color\r\n- Refined text styles in `TextStyles.swift`\r\n- Added `deleteAllModels` method to `RecordingTranscriptionStream`\r\n- Introduced static `modelDirURL` in `TranscriptionStream`\r\n- Implemented directory existence check function\r\n\r\n* feat: added LLDB configurations for swift-composable-architecture benchmarks\r\n\r\n### CHANGES\r\n- Added LLDB launch config for debug swift-composable-architecture\r\n- Added LLDB launch config for release swift-composable-architecture\r\n- Removed `goToNewRecordingTapped` delegate case from RecordScreen\r\n- Removed `isGoToNewRecordingPopupPresented` state from RecordingControls\r\n- Removed go-to-new-recording button handling in RecordingControls\r\n- Updated iCloud sync logic to use shared state and async functions\r\n- Added popover for new recording in RootView\r\n- Removed minimum scale factor from ModelInfoView\r\n- Added shared state for iCloud sync progress in SettingsScreen\r\n- Added `isICloudSyncInProgress` key to PersistenceReaderKeys\r\n\r\n* feat: added auto-dismiss animation for new recording popup\r\n\r\n### CHANGES\r\n- Added `onChange` handler for `isGoToNewRecordingPopupPresented`\r\n- Implemented spring animation with 5-second delay\r\n- Auto-dismisses new recording popup after presentation\r\n\r\n* chore: added logging to `RecordingStream` for better debugging and error tracking\r\n\r\n### CHANGES\r\n- Added error log for recording already in progress.\r\n- Added error log for microphone access not granted.\r\n- Added info log for starting recording at file URL.\r\n- Added info log for audio file creation at URL.\r\n- Added info log for successful recording start.\r\n- Added info log for resetting recording state and callback.\r\n- Added debug log for received audio buffer's relative energy.\r\n- Added debug log for writing audio buffer to file.\r\n- Added debug log for updated recording duration.\r\n- Added debug log for resetting duration when audio file is nil.\r\n\r\n* feat: added new debug and release configurations for swift-case-paths benchmark\r\n\r\n### CHANGES\r\n- Added debug configuration for swift-case-paths benchmark.\r\n- Added release configuration for swift-case-paths benchmark.\r\n- Introduced `modelProgress` and `currentText` computed properties.\r\n- Removed `isLiveTranscription` flag from Recording state.\r\n- Simplified `startRecording` action by removing transcription flag.\r\n- Refactored live transcription handling in `startRecording`.\r\n- Added `toggleModelLoadingInfo` action to RecordingControls.\r\n- Updated UI to always show waveform and transcription view.\r\n- Enhanced model loading view with toggleable info popover.\r\n- Simplified `RecordingTranscriptionStream` to use direct state streams.\r\n\r\n* feat: improved recording and transcription handling in `RecordButton` and `Recording`\r\n\r\n### CHANGES\r\n- Added permission check to `RecordButton` expansion logic.\r\n- Refactored live transcription state handling in `Recording`.\r\n- Simplified `RecordingControls.State` by removing unused `TranscriptionViewMode`.\r\n- Streamlined recording permission handling in `RecordingControls`.\r\n- Replaced `startFileTranscription` with `startBufferTranscription`.\r\n- Updated `RecordingTranscriptionStream` API for better modularity.\r\n- Enhanced `RecordingTranscriptionStreamContainer` with actor-based concurrency.\r\n- Simplified `RecordingInfo` initialization and default title handling.\r\n- Removed redundant properties from `TranscriptionTaskEnvelope`.\r\n\r\n* feat: refactored `Makefile` and `Project.swift` for streamlined dev and app store builds\r\n\r\n### CHANGES\r\n- Removed `dev` target from `Makefile`\r\n- Renamed `build_debug` to `build_dev_debug`\r\n- Renamed `build_release` to `build_dev_release`\r\n- Renamed `build_server` to `build_dev_server`\r\n- Added `isDev` parameter to `createAppTarget` function\r\n- Updated debug and release settings in `createAppTarget`\r\n- Simplified package inclusion logic in `Project.swift`\r\n- Added new debug settings for development builds\r\n- Refactored `Recording` state and actions\r\n- Introduced `RecordingView` for better UI separation\r\n- Removed redundant code from `RecordingControlsView`\r\n- Added `_printChanges` for state logging in `RootStore`\r\n- Improved transcription handling in `TranscriptionStream`\r\n\r\nFor more details, visit the [GitHub repository](https://github.com/SolaWing/xcode-build-server).\r\n\r\n* feat: added recording loop and removed defer log in transcription\r\n\r\n### CHANGES\r\n- Added recording loop with 0.3-second sleep interval.\r\n- Removed defer log statement in `transcribeCurrentBuffer`.\r\n\r\n* chore: refactored RecordingTranscriptionStream to improve performance and reduce memory usage\r\n\r\nCHANGES:\r\n- Lazy load RecordingStream and TranscriptionStream instances\r\n- Reset stream state before starting recording or transcription\r\n- Use weak self references in continuation closures to avoid retain cycles\r\n- Remove unnecessary setRecordingStream and setTranscriptionStream methods\r\n- Directly access recordingStream and transcriptionStream properties instead of optionals\r\n- Use new resumeRecordingLive method in RecordingStream\r\n- Add resetState method to RecordingStream and TranscriptionStream\r\n- Improve logging for model loading in LocalTranscriptionWorkExecutor\r\n\r\n* chore: refactored `LocalTranscriptionWorkExecutor` and `TranscriptionStream` to support new transcription processing\r\n\r\nCHANGES:\r\n\r\n- Added `readAndProcessAudioFile` method to process audio files in chunks\r\n- Updated `startBufferTranscription` to support non-VAD chunked transcription\r\n- Refactored `startRealtimeLoop` to use `transcribeCurrentBuffer` with callback\r\n- Added `transcribeCurrentBuffer` method to transcribe current audio buffer\r\n- Updated transcription status text to include more detailed segment information\r\n- Removed commented out code and added more debug logging statements\r\n\r\n* chore: refactored LocalTranscriptionWorkExecutor to use WhisperKit for transcription\r\n\r\nCHANGES:\r\n\r\n- Removed dependency on AudioProcessing and RecordingTranscriptionStream\r\n- Implemented WhisperKit for model loading and transcription\r\n- Added audio file loading and processing using AudioProcessor\r\n- Introduced streaming transcription with result merging\r\n- Implemented word agreement algorithm for confirmed transcriptions\r\n- Updated progress reporting mechanism\r\n- Removed commented-out code and TODOs\r\n\r\nThis refactoring significantly changes the transcription process, moving from a stream-based approach to a more direct WhisperKit implementation. The new implementation includes features like word agreement, result merging, and more granular control over the transcription process.\r\n\r\n* Error: Error code: 500 - {'type': 'error', 'error': {'type': 'api_error', 'message': 'Internal server error'}}\r\nError code: 500 - {'type': 'error', 'error': {'type': 'api_error', 'message': 'Internal server error'}}\r\n\r\n* chore: refactor RecordingTranscriptionStream and TranscriptionStream for improved performance\r\n\r\nCHANGES:\r\n\r\n- Added build_server target to Makefile for WhisperBoard scheme\r\n- Simplified LiveTranscriptionState in Recording struct\r\n- Refactored RecordingView to use updated LiveTranscriptionState\r\n- Improved transcription process in TranscriptionWorker\r\n- Streamlined RecordingTranscriptionStream and removed unused methods\r\n- Optimized TranscriptionStream for better performance and memory usage\r\n- Removed unused TranscriptionTaskEnvelope struct\r\n- Updated TranscriptionTask to remove remoteID property\r\n\r\nThis refactoring aims to improve the overall performance and efficiency of the transcription process, while removing unused code and simplifying the state management.","shortMessageHtmlLink":"Whisperkit (#36)"}},{"before":null,"after":"ece2492da87fc7d8acbe177d99c34087e8723403","ref":"refs/heads/whisperkit_clean","pushedAt":"2024-06-22T17:45:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"chore: refactor RecordingTranscriptionStream and TranscriptionStream for improved performance\n\nCHANGES:\n\n- Added build_server target to Makefile for WhisperBoard scheme\n- Simplified LiveTranscriptionState in Recording struct\n- Refactored RecordingView to use updated LiveTranscriptionState\n- Improved transcription process in TranscriptionWorker\n- Streamlined RecordingTranscriptionStream and removed unused methods\n- Optimized TranscriptionStream for better performance and memory usage\n- Removed unused TranscriptionTaskEnvelope struct\n- Updated TranscriptionTask to remove remoteID property\n\nThis refactoring aims to improve the overall performance and efficiency of the transcription process, while removing unused code and simplifying the state management.","shortMessageHtmlLink":"chore: refactor RecordingTranscriptionStream and TranscriptionStream …"}},{"before":"276356a8c45c3c6c77f2129872ad536558561bf0","after":"f56a23be8e11648cfdfecca60ece61f0c5f2b7ef","ref":"refs/heads/whisperkit","pushedAt":"2024-06-07T01:24:03.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"Removed all files that are in the .gitignore","shortMessageHtmlLink":"Removed all files that are in the .gitignore"}},{"before":"ca8e1315c0d9377e7ba72a2ed727ab1da1694be3","after":"276356a8c45c3c6c77f2129872ad536558561bf0","ref":"refs/heads/whisperkit","pushedAt":"2024-06-04T04:44:03.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"♻️ (Project.swift): refactor app target dependencies to conditionally include ShareExtension based on suffix value","shortMessageHtmlLink":"♻️ (Project.swift): refactor app target dependencies to conditionally…"}},{"before":"ba3090f5e77bef83ff10c107e49746509125e55e","after":"ca8e1315c0d9377e7ba72a2ed727ab1da1694be3","ref":"refs/heads/whisperkit","pushedAt":"2024-05-31T02:52:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"Massive refactoring, whispercpp removed, full whisperkit integration, new project structure","shortMessageHtmlLink":"Massive refactoring, whispercpp removed, full whisperkit integration,…"}},{"before":"cf80d9bfc225b71aec3499cb0ff4112924e8e7fd","after":"ba3090f5e77bef83ff10c107e49746509125e55e","ref":"refs/heads/whisperkit","pushedAt":"2024-05-29T23:54:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"⬆️ Upgrade dependencies by removing unused packages\n✨ Add conditional import and usage of RollbarNotifier for enhanced error tracking\n♻️ Refactor FileImportClient to include synchronous file import method\n✨ Introduce Voice Activity Detection (VAD) setting in Settings entity for improved audio processing\n♻️ Refactor AudioFileStreamRecorder and AudioProcessor for better audio file handling and processing efficiency\n\n✨ (RecordingTranscriptionStream.swift): Add live transcription and model management features\n♻️ (RecordScreenView.swift, Recording.swift): Refactor dependencies and state management for clarity and efficiency\n\n✨ (RecordingControlsView.swift): add infinite maxHeight to improve UI layout\n♻️ (LocalTranscriptionWorkExecutor.swift): refactor transcription process into whisperCPPProcess method for clarity\n♻️ (WhisperContext.swift): refactor audio file decoding to use WhisperKit for improved efficiency\n🔥 (RemoteTranscriptionWorkerExecutor.swift): remove unused Remote transcription worker executor\n✨ (Makefile): add 'dev' target for development environment setup\n\n✨ (Project.swift): Introduce environment-based configuration for app builds\n♻️ (Project.swift): Refactor RevealServer support check and appInfoPlist setup\n✨ (Project.swift): Add conditional package dependencies for AppStore and Dev environments\n📝 (Project.swift): Update appInfoPlist with new configurations and permissions\n\n♻️ (Project.swift): Refactor build settings for conditional compilation\n✨ (Project.swift): Add conditional compilation flags for AppStore builds\n🔧 (Project.swift): Update debug and release settings based on environment\n✨ (Project.swift): Integrate RollbarNotifier conditionally for AppStore builds\n\n⬆️ (Tuist/Package.resolved): Upgrade dependencies to newer versions for better functionality and bug fixes","shortMessageHtmlLink":"⬆️ Upgrade dependencies by removing unused packages"}},{"before":"5627efd43e3e0c34a1d7a35f33929f65636a90f6","after":"cf80d9bfc225b71aec3499cb0ff4112924e8e7fd","ref":"refs/heads/whisperkit","pushedAt":"2024-05-22T03:51:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"♻️ (Playback.swift): Simplify equality check in PlaybackPosition by removing explicit return\n📝 (AudioRecorderClient.swift): Add MARK comment for RecordingState enum to improve code organization\n♻️ (Task++.swift): Reorder imports for consistency\n♻️ (AudioFileStreamRecorder.swift): Remove unused error property and redundant type declarations for isRecording and isPaused\n♻️ (RecordingTranscriptionStream.swift): Annotate loadModelAsync function with @Sendable and improve readability by adding line breaks\n♻️ (Recording.swift): Remove unused Alert enum cases and handling, streamline error logging\n♻️ (RecordingControlsView.swift): Replace bufferEnergy property usage with samples, enhance visualization with WithPerceptionTracking, comment out defaultScrollAnchor for future review","shortMessageHtmlLink":"♻️ (Playback.swift): Simplify equality check in PlaybackPosition by r…"}},{"before":"a6c135202d98ae465a1205a829b311a954c94f93","after":"5627efd43e3e0c34a1d7a35f33929f65636a90f6","ref":"refs/heads/whisperkit","pushedAt":"2024-05-21T21:41:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"🔧 Update .gitignore to exclude App/Support/Reveal/ directory\n⬆️ Upgrade swiftlint and swiftformat to latest versions in .mise.toml\n✨ Add new dependencies in .package.resolved for enhanced functionality\n💡 Improve log message format in Logging.swift by showing only the file's last component\n✨ Introduce project_cache_warmup target in Makefile for faster build initialization\n✨ Detect RevealServer.xcframework support dynamically in Project.swift\n✨ Add ETTrace package dependency in Project.swift for enhanced tracing capabilities\n♻️ Refine Swift compiler flags in Project.swift for better debug information\n✨ Add XCLogParser post-build script in Project.swift for detailed build logs analysis","shortMessageHtmlLink":"🔧 Update .gitignore to exclude App/Support/Reveal/ directory"}},{"before":"463fb91f2e6290f4176f79dc649908180156e6d1","after":"a6c135202d98ae465a1205a829b311a954c94f93","ref":"refs/heads/whisperkit","pushedAt":"2024-05-19T22:29:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"✨ (Task++.swift): Add ComposableArchitecture import and synchronous task utility\n✨ (AudioFileStreamRecorder.swift): Simplify audio file recording process\n✨ (AudioProcessor+setup.swift): Refactor audio recording setup to start recording and return AVAudioFile\n✨ (RecordingTranscriptionStream.swift): Implement async model loading with progress updates\n♻️ (Various): Refactor and clean up code for clarity and efficiency\n\n♻️ (Recording.swift): Simplify live transcription flow by removing model loading tasks and directly starting transcription, improving performance and code readability.\n\n✨ (RecordingControlsView.swift): Introduce a new energy buffer visualizer for live transcription, enhancing user feedback by displaying energy levels in a scrollable horizontal view.","shortMessageHtmlLink":"✨ (Task++.swift): Add ComposableArchitecture import and synchronous t…"}},{"before":"77fd89da3f194e59baf09bd889e864fa74ee485b","after":"463fb91f2e6290f4176f79dc649908180156e6d1","ref":"refs/heads/whisperkit","pushedAt":"2024-05-16T21:10:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"✨ (AudioFileStreamRecorder.swift): Add relativeEnergyWindow setting to enhance audio processing\n♻️ (AudioFileStreamRecorder.swift & Recording.swift): Refactor waveSamples calculation and duration assignment for clarity and accuracy","shortMessageHtmlLink":"✨ (AudioFileStreamRecorder.swift): Add relativeEnergyWindow setting t…"}},{"before":"67e1fb9210eca792993aa566a30dd0ea193523e7","after":"77fd89da3f194e59baf09bd889e864fa74ee485b","ref":"refs/heads/whisperkit","pushedAt":"2024-05-16T20:33:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"♻️ Refactor AudioSession and Logging for cleaner architecture and efficiency\n✨ Add Double extension for rounding to specific places\n🔥 Remove AudioPlayer.swift to consolidate playback logic\n✅ Update Playback.swift to improve equality comparison precision\n💡 Update comments and logging for clarity and maintainability\n\n✨ (AudioFileStreamRecorder.swift): add new AudioFileStreamRecorder for audio processing and transcription support\n\n✨ (AudioProcessor+setup.swift, RecordingTranscriptionStream.swift): add audio processing and transcription streaming features\n\n♻️ Refactor Recording.swift by removing commented-out code for clarity and maintenance\n♻️ Update RecordingListScreenView.swift to modularize view code for better readability\n🔧 Adjust Project.swift by reordering external dependencies for consistency","shortMessageHtmlLink":"♻️ Refactor AudioSession and Logging for cleaner architecture and eff…"}},{"before":"d7626e99aaaf6aa5e610c1d70db56475cd157619","after":"67e1fb9210eca792993aa566a30dd0ea193523e7","ref":"refs/heads/whisperkit","pushedAt":"2024-05-15T23:05:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"♻️ Refactor AppView and AudioPlayerClient for better code organization and clarity\n✨ Introduce WhisperKitError for unified error handling across the app\n🚚 Move AudioPlayer implementation to AudioPlayerClient for encapsulation\n🔥 Remove duplicate RecordingState definition to avoid redundancy\n♻️ Make audioPlayer property fileprivate in AudioPlayerClient for encapsulation\n\n✨ (AudioFileStreamRecorder.swift): integrate AudioKit for enhanced audio processing\n♻️ (AudioFileStreamRecorder.swift): refactor recording logic to use NodeRecorder\n🐛 (AudioFileStreamRecorder.swift): fix recording state management with NodeRecorder\n✨ (AudioFileStreamRecorder.swift): add error handling for recording start conditions\n📝 (AudioFileStreamRecorder.swift): update state management and recording flow comments\n\n✨ (AudioProcessor+setup.swift): Add new audio processing setup for recording\n♻️ (MicSelectorView.swift): Remove redundant task initiation in view setup\n♻️ (Recording.swift): Refactor recording state management and update transcription handling logic\n\n✨ (RecordingControlsView.swift): introduce RecordingControlsView with live transcription and waveform display\n✨ (RecordingTranscriptionStream.swift): adjust transcription stream settings for better accuracy and responsiveness\n\n✨ (RecordingListScreenView.swift, RootStore.swift, RootView.swift, SettingsScreenView.swift, TranscriptionWorker.swift): Enhance app functionality and improve code quality\n\n- Removed unused `.messagePopup` and `.task` modifiers in `RecordingListScreenView.swift` to clean up the view layer.\n- Updated recording URL path in `RootStore.swift` to reflect changes in data model structure, ensuring correct file handling.\n- Added logic in `RootStore.swift` to automatically mark transcriptions as done if they were transcribed during recording, improving user experience by reducing manual steps.\n- Implemented removal of a recording from the list and navigation stack upon deletion in `RootStore.swift`, enhancing app navigation and data consistency.\n- Marked `RootView.swift` with `@MainActor` to ensure UI updates are performed on the main thread, improving app stability.\n- Expanded `.task` modifier in `RootView.swift` to initialize multiple features at once, streamlining app startup process.\n- Removed redundant `.task` modifier in `SettingsScreenView.swift` that was causing unnecessary initializations.\n- Simplified background and foreground task handling in `TranscriptionWorker.swift` by removing redundant async task management, focusing on essential task processing and improving code maintainability.","shortMessageHtmlLink":"♻️ Refactor AppView and AudioPlayerClient for better code organizatio…"}},{"before":"30bddb495718413ad7f9f6c8f483a2c43553319e","after":"d7626e99aaaf6aa5e610c1d70db56475cd157619","ref":"refs/heads/whisperkit","pushedAt":"2024-05-14T22:39:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"✨ (AudioFileStreamRecorder.swift): update audio file and buffer format for recording\n\n- Change audio file writing settings to use a more flexible format, specifically `pcmFormatFloat32`, to improve audio quality and compatibility.\n- Modify the way audio buffers are written to the audio file to support the new format, enhancing the efficiency and reliability of audio data handling.","shortMessageHtmlLink":"✨ (AudioFileStreamRecorder.swift): update audio file and buffer forma…"}},{"before":"98b19693db4f942db7a942bbe3d4e3c91709c008","after":"30bddb495718413ad7f9f6c8f483a2c43553319e","ref":"refs/heads/whisperkit","pushedAt":"2024-05-14T22:38:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"🔧 Update .gitignore to exclude .aider files\n✨ Add new debug configurations for swift-composable-architecture in .vscode/launch.json\n✨ Introduce signpost in AppView.swift for better performance analysis\n♻️ Refactor AudioRecorderClient to use background priority tasks for better resource management\n♻️ Make RecordingState public for wider accessibility in AudioRecorderClient\n♻️ Update AudioSessionClient to notify others on deactivation for better audio session management\n♻️ Refactor NotificationCenterClient for cleaner code formatting\n♻️ Make EquatableError public and refactor Error extensions for broader usage\n✨ Integrate PulseLogHandler for enhanced logging capabilities in Logging.swift\n\n✨ (AudioFileStreamRecorder.swift): add new AudioFileStreamRecorder for screen recording feature\n\n🔥 (LiveTranscriptionStream.swift): remove LiveTranscriptionStream feature due to redundancy\n\n✨ (Recording.swift): Integrate live transcription feature with UI updates\n♻️ (Recording.swift): Refactor Recording action and state management for clarity\n📝 (Recording.swift): Add comprehensive comments and documentation for new features\n\n✨ (RecordingControls.swift): Add live transcription feature with view modes\n\n- Introduce `TranscriptionViewMode` enum to toggle between simple and technical views.\n- Add `isLiveTranscriptionEnabled` flag to toggle live transcription feature.\n- Implement `transcriptionViewMode` to store current view mode.\n- Use `CancelID` enum for cancellable recording actions.\n- Refactor `startRecording` to support live transcription based on user settings.\n- Update UI to include live transcription view and toggle switch.\n- Enhance recording controls with transcription state management and UI updates.\n\n✨ Add `RecordingTranscriptionStream.swift` for live transcription features\n♻️ Refactor `SettingsScreenView.swift` to use `ConsoleView` for logs\n🔥 Remove commented code blocks in transcription worker features\n\n✨ (Project.swift, Package.swift, Package.resolved): Add Pulse and PulseLogHandler dependencies for improved logging\n\n✨ (Project.swift): Dynamically add NSLocalNetworkUsageDescription and NSBonjourServices to plist for non-App Store builds to support debugging\n\n♻️ (Project.swift): Reorder external dependencies alphabetically for better organization","shortMessageHtmlLink":"🔧 Update .gitignore to exclude .aider files"}},{"before":"34a93423613464c6762be95dc56e0f25c58fa35a","after":"98b19693db4f942db7a942bbe3d4e3c91709c008","ref":"refs/heads/whisperkit","pushedAt":"2024-05-14T06:50:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"✨ (StorageClient.swift): Add setCurrentRecordingURL function to StorageClient\n♻️ (StorageClient.swift): Refactor UserDefaults usage for uploadedFiles storage\n✨ (LiveTranscriptionStream.swift): Introduce LiveTranscriptionStream for real-time transcription\n🔥 (RecordingStream.swift): Remove obsolete RecordingStream implementation\n\n✨ (RootStore.swift): Implement onChange for recording URL updates\n✨ (RootStore.swift): Insert new recordings at top of list for better visibility\n♻️ (RootStore.swift): Refactor action cases for consistency and readability\n✨ (CombinedTranscriptionWorkerExecutor.swift, LocalTranscriptionWorkExecutor.swift, TranscriptionParameters+whisper.swift): Add local transcription worker feature for processing transcription tasks locally\n\n✨ Add WhisperContext and helper extensions for audio transcription feature\n\n✨ Add new TranscriptionWorker feature with remote execution and task management capabilities\n\n⬆️ (Workspace.swift): Update lastXcodeUpgradeCheck to Version(15, 4, 0) to reflect the latest Xcode version upgrade","shortMessageHtmlLink":"✨ (StorageClient.swift): Add setCurrentRecordingURL function to Stora…"}},{"before":"8bb501e18016bcd4792623349e45ad7cfb24673d","after":"34a93423613464c6762be95dc56e0f25c58fa35a","ref":"refs/heads/whisperkit","pushedAt":"2024-05-14T03:45:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"✨ (AppView.swift, NotificationCenterClient.swift, TranscriptionWorkExecutor.swift): Add background task identifier update, foreground and background notification support, and transcription work executor dependency\n\n- Update task identifier for clarity and consistency\n- Introduce foreground and background notification handling for better app state management\n- Implement dependency injection for transcription work executor to enhance modularity and testability\n\n♻️ Refactor TranscriptionWorkerClient to use Reducer pattern for better state management and action handling\n🔥 Remove unused isProcessing PersistenceReaderKey following refactor\n\n✨ (RecordingStream.swift): Add new `RecordingStream` feature for audio transcription\n♻️ (RecordingCard.swift): Refactor transcription actions to use delegate pattern\n♻️ (RecordingListScreenView.swift): Improve recording list update logic and sorting\n📝 (RecordingListScreenView.swift): Update animations for empty state view with delay\n\n✨ (RootStore.swift): Integrate `DependenciesAdditions` and refactor transcription worker management\n♻️ (RootStore.swift): Refactor idle timer management to use application dependency\n♻️ (SettingsScreen.swift): Use `WhisperContext` for fetching available languages\n🔧 (Makefile): Update build server command for better vscode support\n⬆️ (Package.resolved, Package.swift): Upgrade dependencies for better stability and features","shortMessageHtmlLink":"✨ (AppView.swift, NotificationCenterClient.swift, TranscriptionWorkEx…"}},{"before":"1c16d52ae3a728a51584303337f409497dd7bca7","after":null,"ref":"refs/heads/upgrade_tca_1.9","pushedAt":"2024-05-08T21:40:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"}},{"before":"03edbd9e21865948e6acc05d8036f7f8bf662df4","after":null,"ref":"refs/heads/migrate_project_setup","pushedAt":"2024-05-08T21:40:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"}},{"before":null,"after":"03edbd9e21865948e6acc05d8036f7f8bf662df4","ref":"refs/heads/migrate_project_setup","pushedAt":"2024-05-08T21:39:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"✨ Add .mise.toml for tool and plugin configuration management\n⬆️ Update Swift version from 5.8 to 5.10 in .swift-version\n🔧 Add .swiftlint.yml for SwiftLint configuration\n♻️ Replace .swift-format with .swiftformat for formatting configuration\n🔥 Remove .tuist-version and App/Package.swift as part of project cleanup\n\n♻️ Refactor Project.swift and ShareExtension.swift for better maintainability\n✨ Add ProjectDescriptionHelpers import for shared settings\n✨ Implement async/await in ShareExtension for URL loading\n🔥 Remove unused Package.swift in AppKit\n🐛 Fix typo in LocalTranscriptionWorkExecutor.swift (`currentTaslId` to `currentTaskId`)\n\n♻️ Refactor WhisperContext to use AsyncThrowingStream for transcription actions\n\n- Remove ContextDataStore and related container management to simplify state handling.\n- Change fullTranscribe method to return AsyncThrowingStream for better Swift concurrency integration.\n- Update WhisperContext from actor to final class for streamlined reference and memory management.\n- Implement static references management directly within WhisperContext for improved clarity and control.\n- Adjust error handling and callback implementations to align with AsyncThrowingStream usage.\n- Simplify WhisperContext initialization and deinitialization processes for better resource management.\n- Enhance logging and error messages for clearer debugging and operational transparency.\n\n✨ (Makefile): Add bootstrap step to install dependencies with mise\n♻️ (Makefile): Replace tuist fetch with tuist install for better clarity\n🔧 (Makefile): Use mise for linting and formatting to streamline dev tools\n✨ (Package.resolved): Track dependencies for better reproducibility and version control\n\n✨ Add Package.swift for Swift Package Manager configuration\n🔧 Update Tuist config to support Xcode 15.3.0 and Swift 5.10\n♻️ Remove Tuist/Dependencies.swift in favor of direct Package.swift management\n✨ Add ProjectDescriptionHelpers with constants for deployment targets and version\n🔧 Update CI scripts to streamline bootstrap and build processes","shortMessageHtmlLink":"✨ Add .mise.toml for tool and plugin configuration management"}},{"before":null,"after":"1c16d52ae3a728a51584303337f409497dd7bca7","ref":"refs/heads/upgrade_tca_1.9","pushedAt":"2024-05-08T21:39:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"⬆️ (Project.swift): bump project version from 1.11.9 to 1.12.0 to mark a new release","shortMessageHtmlLink":"⬆️ (Project.swift): bump project version from 1.11.9 to 1.12.0 to mar…"}},{"before":"5a2a8f52a4ffd60481c1d4785ebe7ea941fe083d","after":"8bb501e18016bcd4792623349e45ad7cfb24673d","ref":"refs/heads/whisperkit","pushedAt":"2024-05-08T21:39:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Saik0s","name":"Igor Tarasenko","path":"/Saik0s","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5645636?s=80&v=4"},"commit":{"message":"⬆️ (Project.swift): bump project version from 1.12.0 to 1.12.1","shortMessageHtmlLink":"⬆️ (Project.swift): bump project version from 1.12.0 to 1.12.1"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbHvx5wA","startCursor":null,"endCursor":null}},"title":"Activity · Saik0s/Whisperboard"}