The Swift Package Index logo.Swift Package Index

Build Information

Successful build of AiVoiceKit, reference master (574cad), with Swift 6.4 for macOS (SPM) on 9 Oct 2026 04:58:18 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NerdSnipe-Inc/AiVoiceKit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/NerdSnipe-Inc/AiVoiceKit
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 574cad2 docs: document the full set of command wake-word forms
Cloned https://github.com/NerdSnipe-Inc/AiVoiceKit.git
Revision (git rev-parse @):
574cad2da63c399fdfd941af12ec7d36e8fc230f
SUCCESS checkout https://github.com/NerdSnipe-Inc/AiVoiceKit.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/NerdSnipe-Inc/AiVoiceKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Constructing description]
[Pre-planning 1 / 662]
[Planning deferred tasks]
[142 / 274]
[151 / 274]
[162 / 280] InternalCollectionsUtilities
[163 / 291] EventSource
[165 / 317] Crypto
[165 / 338] SwiftWhisper
[170 / 413]
[180 / 512]
[190 / 512] InternalCollectionsUtilities
[206 / 526]
[219 / 594]
[235 / 594]
[249 / 594]
[264 / 594] InternalCollectionsUtilities
[279 / 594]
[290 / 594]
[297 / 594]
[301 / 594]
[307 / 594]
[316 / 594]
[331 / 594]
[339 / 594]
[346 / 594]
[352 / 594]
[361 / 594] yyjson
[367 / 594] yyjson
[376 / 594]
[385 / 594] OrderedCollections
[390 / 594]
[397 / 594] InternalCollectionsUtilities
[404 / 594]
[410 / 594] InternalCollectionsUtilities
[416 / 594] CoreAudioCaptureSupport
[418 / 595]
[426 / 606] OrderedCollections
[428 / 606]
[429 / 606] SwiftWhisper
[432 / 606]
[436 / 606] SwiftWhisper
[460 / 606]
[466 / 606] SwiftWhisper
[477 / 606] SwiftWhisper-product
[480 / 606] SwiftWhisper
[483 / 606]
[485 / 606] OrderedCollections
[493 / 606]
[497 / 606] whisper_cpp
[499 / 606] whisper_cpp
[508 / 606] OrderedCollections
[512 / 606] Jinja
[518 / 606] EventSource
[524 / 606] Crypto
[525 / 606] Crypto
[529 / 606] DynamicNotchKit
[531 / 606] DynamicNotchKit
[532 / 606] EventSource
[540 / 606] DynamicNotchKit
[541 / 606] DynamicNotchKit
[549 / 606] Crypto
[555 / 608] OrderedCollections
[557 / 608] Crypto
[559 / 608] DynamicNotchKit
[569 / 619] Jinja
[570 / 630] HuggingFace
[572 / 630] HuggingFace
[574 / 630] HuggingFace
[578 / 630] Jinja
[582 / 630] Jinja
[584 / 630] Jinja-product
[585 / 630] Jinja-product
[588 / 630] Jinja
[589 / 630] HuggingFace
[596 / 631] HuggingFace
[601 / 645]
[603 / 645]
[610 / 645] Hub
[618 / 646] HuggingFace
[619 / 646] Tokenizers
[629 / 657] Tokenizers
[630 / 657] Tokenizers
[641 / 658] Tokenizers
[641 / 658] FluidAudio
[651 / 684]
[652 / 684]
[653 / 684]
[655 / 684]
[656 / 684]
[667 / 684] FluidAudio
[668 / 684] FluidAudio
[674 / 685] FluidAudio
[674 / 685] AiVoiceKit
[682 / 699] AiVoiceKit
[684 / 699] AiVoiceKit
[686 / 699] AiVoiceKit
[689 / 699] AiVoiceKit
[694 / 699] AiVoiceKit
[696 / 699] FluidAudio
[696 / 699] AiVoiceKit
[699 / 699] AiVoiceKit-product
Build complete! (24.46 sec)
Fetching https://github.com/altic-dev/FluidAudio.git
[1/13487] Fetching fluidaudio
Fetched https://github.com/altic-dev/FluidAudio.git (51.55s)
Fetching https://github.com/altic-dev/DynamicNotchKit.git
[1/1072] Fetching dynamicnotchkit
Fetched https://github.com/altic-dev/DynamicNotchKit.git (3.27s)
Fetching https://github.com/huggingface/swift-transformers
Fetching https://github.com/exPHAT/SwiftWhisper.git
Fetching https://github.com/mxcl/PromiseKit
[1/591] Fetching swiftwhisper
[120/7675] Fetching swiftwhisper, swift-transformers
[309/24919] Fetching swiftwhisper, swift-transformers, promisekit
Fetched https://github.com/mxcl/PromiseKit (2.27s)
Fetched https://github.com/exPHAT/SwiftWhisper.git (2.27s)
Fetched https://github.com/huggingface/swift-transformers (2.27s)
Computing version for https://github.com/exPHAT/SwiftWhisper.git
Computed https://github.com/exPHAT/SwiftWhisper.git at 1.2.0 (5.17s)
Computing version for https://github.com/huggingface/swift-transformers
Computed https://github.com/huggingface/swift-transformers at 1.3.4 (0.63s)
Fetching https://github.com/huggingface/swift-jinja.git
Fetching https://github.com/huggingface/swift-huggingface.git
Fetching https://github.com/apple/swift-crypto.git
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/ibireme/yyjson.git
[1/1376] Fetching swift-jinja
[2/4343] Fetching swift-jinja, swift-huggingface
[3/22946] Fetching swift-jinja, swift-huggingface, swift-crypto
[805/28026] Fetching swift-jinja, swift-huggingface, swift-crypto, yyjson
[4106/56717] Fetching swift-jinja, swift-huggingface, swift-crypto, yyjson, swift-collections
Fetched https://github.com/ibireme/yyjson.git (3.27s)
Fetched https://github.com/huggingface/swift-huggingface.git (3.28s)
Fetched https://github.com/apple/swift-crypto.git (3.28s)
Fetched https://github.com/apple/swift-collections.git (3.28s)
Fetched https://github.com/huggingface/swift-jinja.git (3.28s)
Computing version for https://github.com/ibireme/yyjson.git
Computed https://github.com/ibireme/yyjson.git at 0.12.0 (3.98s)
Computing version for https://github.com/huggingface/swift-jinja.git
Computed https://github.com/huggingface/swift-jinja.git at 2.5.1 (0.57s)
Computing version for https://github.com/huggingface/swift-huggingface.git
Computed https://github.com/huggingface/swift-huggingface.git at 0.13.0 (0.61s)
Fetching https://github.com/mattt/EventSource.git
[1/303] Fetching eventsource
Fetched https://github.com/mattt/EventSource.git (0.91s)
Computing version for https://github.com/mattt/EventSource.git
Computed https://github.com/mattt/EventSource.git at 1.5.1 (1.54s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.2 (0.67s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 4.5.2 (2.22s)
Fetching https://github.com/apple/swift-asn1.git
[1/1995] Fetching swift-asn1
Fetched https://github.com/apple/swift-asn1.git (1.11s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.7.3 (1.79s)
Computing version for https://github.com/mxcl/PromiseKit
Computed https://github.com/mxcl/PromiseKit at 6.22.1 (0.67s)
Creating working copy for https://github.com/altic-dev/FluidAudio.git
Working copy of https://github.com/altic-dev/FluidAudio.git resolved at 3fd63887eef1dc25edea8263ce4b44aa854d898b
Creating working copy for https://github.com/exPHAT/SwiftWhisper.git
Working copy of https://github.com/exPHAT/SwiftWhisper.git resolved at 1.2.0
Creating working copy for https://github.com/huggingface/swift-huggingface.git
Working copy of https://github.com/huggingface/swift-huggingface.git resolved at 0.13.0
Creating working copy for https://github.com/huggingface/swift-jinja.git
Working copy of https://github.com/huggingface/swift-jinja.git resolved at 2.5.1
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 4.5.2
Creating working copy for https://github.com/mattt/EventSource.git
Working copy of https://github.com/mattt/EventSource.git resolved at 1.5.1
Creating working copy for https://github.com/huggingface/swift-transformers
Working copy of https://github.com/huggingface/swift-transformers resolved at 1.3.4
Creating working copy for https://github.com/ibireme/yyjson.git
Working copy of https://github.com/ibireme/yyjson.git resolved at 0.12.0
Creating working copy for https://github.com/mxcl/PromiseKit
Working copy of https://github.com/mxcl/PromiseKit resolved at 6.22.1
Creating working copy for https://github.com/altic-dev/DynamicNotchKit.git
Working copy of https://github.com/altic-dev/DynamicNotchKit.git resolved at 708f31da5319436c64059ee7ae566953407063d7
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.7.3
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.2
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/CommandModeService.swift:80:13: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 78 |     // MARK: - Dependencies
 79 |
 80 |     private nonisolated(unsafe) let terminalService = TerminalService()
    |             `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 81 |     /// Called when a complete command string is ready for the AI to act on.
 82 |     public var onCommandReceived: ((String) async -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Media/TranscriptionSoundPlayer.swift:9:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
  7 | /// Sounds are loaded from `Bundle.module` (package resources).
  8 | public final class TranscriptionSoundPlayer: @unchecked Sendable {
  9 |     public nonisolated(unsafe) static let shared = TranscriptionSoundPlayer()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
 10 |
 11 |     private let playbackQueue = DispatchQueue(label: "com.nerdsnipe.alric.voice.transcription-sounds", qos: .userInteractive)
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Persistence/ParakeetVocabularyStore.swift:11:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
  9 | /// Persists to Application Support so it survives app updates and can be user-edited.
 10 | public final class ParakeetVocabularyStore: @unchecked Sendable {
 11 |     public nonisolated(unsafe) static let shared = ParakeetVocabularyStore()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
 12 |
 13 |     public struct VocabularyConfig: Codable, Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/CommandModeService.swift:80:13: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 78 |     // MARK: - Dependencies
 79 |
 80 |     private nonisolated(unsafe) let terminalService = TerminalService()
    |             `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 81 |     /// Called when a complete command string is ready for the AI to act on.
 82 |     public var onCommandReceived: ((String) async -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/TextSelectionService.swift:66:16: warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 64 |               CFGetTypeID(ref) == AXUIElementGetTypeID()
 65 |         else { return nil }
 66 |         return unsafeBitCast(ref, to: AXUIElement.self)
    |                `- warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 67 |     }
 68 |
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/TextSelectionService.swift:75:16: warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 73 |               CFGetTypeID(ref) == AXUIElementGetTypeID()
 74 |         else { return nil }
 75 |         return unsafeBitCast(ref, to: AXUIElement.self)
    |                `- warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/TextSelectionService.swift:100:23: warning: 'unsafeBitCast' from 'AnyObject' to 'AXValue' can be replaced with 'unsafeDowncast'
 98 |         }
 99 |
100 |         let axValue = unsafeBitCast(rangeRef, to: AXValue.self)
    |                       `- warning: 'unsafeBitCast' from 'AnyObject' to 'AXValue' can be replaced with 'unsafeDowncast'
101 |         var cfRange = CFRange()
102 |         guard AXValueGetValue(axValue, .cfRange, &cfRange),
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Media/TranscriptionSoundPlayer.swift:9:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
  7 | /// Sounds are loaded from `Bundle.module` (package resources).
  8 | public final class TranscriptionSoundPlayer: @unchecked Sendable {
  9 |     public nonisolated(unsafe) static let shared = TranscriptionSoundPlayer()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
 10 |
 11 |     private let playbackQueue = DispatchQueue(label: "com.nerdsnipe.alric.voice.transcription-sounds", qos: .userInteractive)
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/ModelDownloader.swift:173:45: warning: 'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
168 |         states[model] = .downloading(progress: 0)
169 |         let downloader = HuggingFaceModelDownloader(owner: owner, repo: repo, requiredItems: items)
170 |         Task {
    |              |- note: 'self' implicitly strongly captured here
    |              `- note: add 'self' as a capture list item to silence
171 |             do {
172 |                 try await downloader.ensureModelsPresent(at: dest) { @Sendable progress, _ in
173 |                     Task { @MainActor [weak self] in
    |                                             |- warning: 'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
    |                                             `- note: explicitly assign the capture list item to silence
174 |                         self?.states[model] = .downloading(progress: progress)
175 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Persistence/ParakeetVocabularyStore.swift:11:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
  9 | /// Persists to Application Support so it survives app updates and can be user-edited.
 10 | public final class ParakeetVocabularyStore: @unchecked Sendable {
 11 |     public nonisolated(unsafe) static let shared = ParakeetVocabularyStore()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
 12 |
 13 |     public struct VocabularyConfig: Codable, Sendable {
[#ImplicitStrongCapture]: <https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture>
Build complete.
{
  "dependencies" : [
    {
      "identity" : "fluidaudio",
      "requirement" : {
        "revision" : [
          "3fd63887eef1dc25edea8263ce4b44aa854d898b"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/altic-dev/FluidAudio.git"
    },
    {
      "identity" : "swiftwhisper",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/exPHAT/SwiftWhisper.git"
    },
    {
      "identity" : "dynamicnotchkit",
      "requirement" : {
        "revision" : [
          "708f31da5319436c64059ee7ae566953407063d7"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/altic-dev/DynamicNotchKit.git"
    },
    {
      "identity" : "promisekit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "6.0.0",
            "upper_bound" : "7.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/mxcl/PromiseKit"
    }
  ],
  "manifest_display_name" : "AiVoiceKit",
  "name" : "AiVoiceKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "15.0"
    },
    {
      "name" : "ios",
      "version" : "18.0"
    },
    {
      "name" : "visionos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "AiVoiceKit",
      "targets" : [
        "AiVoiceKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CoreAudioCaptureSupport",
      "module_type" : "ClangTarget",
      "name" : "CoreAudioCaptureSupport",
      "path" : "Sources/CoreAudioCaptureSupport",
      "product_memberships" : [
        "AiVoiceKit"
      ],
      "sources" : [
        "CoreAudioCaptureSupport.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AiVoiceKitTests",
      "module_type" : "SwiftTarget",
      "name" : "AiVoiceKitTests",
      "path" : "Tests/AiVoiceKitTests",
      "sources" : [
        "ASRModelTests.swift",
        "CommandModeRouterTests.swift",
        "HotkeyShortcutTests.swift",
        "LLMClientTests.swift",
        "ModelRepositoryTests.swift",
        "TranscriptionHistoryTests.swift",
        "VoiceSettingsTests.swift"
      ],
      "target_dependencies" : [
        "AiVoiceKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AiVoiceKit",
      "module_type" : "SwiftTarget",
      "name" : "AiVoiceKit",
      "path" : "Sources/AiVoiceKit",
      "product_dependencies" : [
        "FluidAudio",
        "SwiftWhisper",
        "DynamicNotchKit",
        "PromiseKit"
      ],
      "product_memberships" : [
        "AiVoiceKit"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/Resources/voice_end.m4a",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/Resources/voice_start.m4a",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Public/ASRModel.swift",
        "Public/VoiceEngine.swift",
        "Public/VoiceSettings.swift",
        "Shared/BackupService.swift",
        "Shared/ChatHistoryStore.swift",
        "Shared/DebugLogger.swift",
        "Shared/DictationAudioHistoryStore.swift",
        "Shared/FileLogger.swift",
        "Shared/HotkeyShortcut.swift",
        "Shared/KeychainService.swift",
        "Shared/ModelRepository.swift",
        "Shared/TranscriptionHistoryStore.swift",
        "Shared/VoiceEngineLanguageCatalog.swift",
        "Shared/VoiceSettingsStore.swift",
        "macOS/AI/AIProvider.swift",
        "macOS/AI/AppleIntelligenceProvider.swift",
        "macOS/AI/DictationAIPostProcessingGate.swift",
        "macOS/AI/DictationPostProcessingService.swift",
        "macOS/AI/DictationPromptTestCoordinator.swift",
        "macOS/AI/FunctionCallingProvider.swift",
        "macOS/AI/LLMClient.swift",
        "macOS/AI/RewriteModeService.swift",
        "macOS/AI/ThinkingParsers.swift",
        "macOS/AudioDeviceService.swift",
        "macOS/AudioStartupGate.swift",
        "macOS/Command/ActiveAppMonitor.swift",
        "macOS/Command/CommandModeService.swift",
        "macOS/Command/TerminalService.swift",
        "macOS/Command/TextSelectionService.swift",
        "macOS/CommandModeRouter.swift",
        "macOS/DirectCoreAudioInput.swift",
        "macOS/Hotkeys/VoiceHotkeyManager.swift",
        "macOS/HuggingFaceModelDownloader.swift",
        "macOS/Media/MediaPlaybackService.swift",
        "macOS/Media/TranscriptionSoundPlayer.swift",
        "macOS/ModelDownloader.swift",
        "macOS/Overlay/NotchOverlayManager.swift",
        "macOS/Overlay/OverlayScreenResolver.swift",
        "macOS/Persistence/DictionaryTransferService.swift",
        "macOS/Persistence/MeetingTranscriptionService.swift",
        "macOS/Persistence/ParakeetVocabularyStore.swift",
        "macOS/Providers/AppleSpeechAnalyzerProvider.swift",
        "macOS/Providers/AppleSpeechProvider.swift",
        "macOS/Providers/CohereProvider.swift",
        "macOS/Providers/ExternalCoreMLModelRegistry.swift",
        "macOS/Providers/ExternalCoreMLTranscriptionProvider.swift",
        "macOS/Providers/FluidAudioProvider.swift",
        "macOS/Providers/MicrophonePermission.swift",
        "macOS/Providers/NemotronProvider.swift",
        "macOS/Providers/ParakeetRealtimeProvider.swift",
        "macOS/Providers/TranscriptionProvider.swift",
        "macOS/Providers/WhisperProvider.swift",
        "macOS/ThreadSafeAudioBuffer.swift",
        "macOS/Typing/ClipboardService.swift",
        "macOS/Typing/TypingService.swift",
        "macOS/VoiceEngineMacOS.swift"
      ],
      "target_dependencies" : [
        "CoreAudioCaptureSupport"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.