{ "$schema_comment": "OSGKeyboard test suite: each test class belongs to exactly one atomic group. Presets only compose groups (no duplicated class lists).", "version": 1, "defaults": { "ios_scheme": "OSGKeyboard", "ios_project": "OSGKeyboard.xcodeproj", "ios_destination": "platform=iOS Simulator,name=iPhone 17", "mac_scheme": "OSGKeyboardMac", "mac_destination": "platform=macOS" }, "groups": { "config": { "description": "App Group configuration, onboarding flags, ConfigurationStore, Keychain", "platform": "ios", "tests": [ "OSGKeyboardTests/AppGroupConfigurationTests", "OSGKeyboardTests/AppGroupOnboardingStoreTests", "OSGKeyboardTests/ConfigurationStoreTests", "OSGKeyboardTests/KeychainTests", "OSGKeyboardTests/ProviderToolRequestCoordinatorTests" ] }, "account": { "description": "Host-private session, Apple integrity protocol, account center, and referral links", "platform": "ios", "tests": [ "OSGKeyboardTests/AccountAPIClientTests", "OSGKeyboardTests/AccountCenterViewModelTests", "OSGKeyboardTests/AccountCreditPurchaseManagerTests", "OSGKeyboardTests/AccountSecurityPrimitiveTests", "OSGKeyboardTests/AccountSignInCoordinatorTests", "OSGKeyboardTests/AccountSnapshotLoaderTests", "OSGKeyboardTests/DeviceIntegrityTests", "OSGKeyboardTests/ReferralProfileTests" ] }, "managed_gateway": { "description": "Scope-limited grants and managed LLM transport", "platform": "ios", "tests": [ "OSGKeyboardExtTests/ManagedGatewayTests" ] }, "analytics": { "description": "Privacy-safe analytics schema, durable queue, uploader, identity lifecycle, and anonymous extension runtime", "platform": "ios", "tests": [ "OSGKeyboardTests/AnalyticsModelTests", "OSGKeyboardTests/AnalyticsAttributionTests", "OSGKeyboardTests/AnalyticsRepositoryTests", "OSGKeyboardTests/AnalyticsUploadCoordinatorTests", "OSGKeyboardTests/AnalyticsUploadSchedulingTests", "OSGKeyboardTests/AnalyticsAIOperationTests", "OSGKeyboardTests/KeyboardUsageModelTests", "OSGKeyboardTests/KeyboardUsageRepositoryTests", "OSGKeyboardTests/KeyboardUsageUploadCoordinatorTests", "OSGKeyboardExtTests/AnalyticsExtensionPrivacyTests" ] }, "sync": { "description": "iCloud KVS merge/sync for settings, local-only clipboard consent, dictionary, speech history, usage stats", "platform": "ios", "tests": [ "OSGKeyboardTests/SettingsCloudSyncTests", "OSGKeyboardTests/PersonalDictionaryCloudSyncTests", "OSGKeyboardTests/PersonalDictionaryMergeTests", "OSGKeyboardTests/SpeechHistoryCloudSyncTests", "OSGKeyboardTests/SpeechHistoryDayDeletionTests", "OSGKeyboardTests/UsageStatisticsCloudSyncTests", "OSGKeyboardTests/AIHistoryAndUsageTests" ] }, "polish": { "description": "Intelligent polish pipeline, prompt composer, validator, style packs, LLM HTTP client (stubbed)", "platform": "ios", "tests": [ "OSGKeyboardTests/IntelligentPolishTests", "OSGKeyboardTests/PolishPromptComposerQuestionTests", "OSGKeyboardTests/PolishOutputValidatorTests", "OSGKeyboardTests/PolishStylePackTests", "OSGKeyboardTests/PolishStyleLearningServiceTests", "OSGKeyboardTests/LLMClientTests", "OSGKeyboardTests/TranscriptLanguageDetectorTests", "OSGKeyboardTests/AIModeLLMClientTests", "OSGKeyboardTests/AIQuestionServiceTests", "OSGKeyboardTests/AIClipboardPromptTests" ] }, "edit_last_input": { "description": "Long-press edit prompt, target validation, gestures, and Flow start transactions", "platform": "ios", "tests": [ "OSGKeyboardTests/EditLastInputPromptTests", "OSGKeyboardTests/EditableInputReferenceTests", "OSGKeyboardTests/FlowStartTransactionPolicyTests", "OSGKeyboardTests/SpeechHistoryRevisionTests", "OSGKeyboardTests/EditTransactionStoreTests", "OSGKeyboardTests/RecordButtonGesturePolicyTests", "OSGKeyboardExtTests/EditHintSchedulerTests" ] }, "cloud_asr": { "description": "Cloud ASR catalog/routing helpers, streaming fixtures/event parsers, HTTP clients, vocabulary sync (hermetic; live API is live_api)", "platform": "ios", "tests": [ "OSGKeyboardTests/CloudASRTests", "OSGKeyboardTests/CloudASRStreamingHelpersTests", "OSGKeyboardTests/CloudASRStreamingEventParsingTests", "OSGKeyboardTests/CloudASRHTTPClientTests", "OSGKeyboardTests/AlibabaVocabularySyncTests", "OSGKeyboardTests/CloudASRServiceTests" ] }, "local_asr": { "description": "Local ASR catalog, bias adapter, download source order, PCM conversion, dictation controller stop contract", "platform": "ios", "tests": [ "OSGKeyboardTests/LocalASRModelCatalogTests", "OSGKeyboardTests/LocalASRBiasAdapterTests", "OSGKeyboardTests/LocalASRDownloadSourceSorterTests", "OSGKeyboardTests/ASRConversionTests", "OSGKeyboardTests/PreviewASRControllerStateTests" ] }, "utterance": { "description": "Chunked utterance pipeline, stitch/guard/fallback policies (Host pipeline vs Ext short-final recovery are different layers)", "platform": "ios", "tests": [ "OSGKeyboardTests/ChunkedUtterancePipelineTests", "OSGKeyboardTests/UtteranceStreamChunkerTests", "OSGKeyboardTests/UtteranceTranscriptStitcherTests", "OSGKeyboardTests/UtteranceTranscriptGuardTests", "OSGKeyboardTests/UtteranceBatchFallbackPolicyTests", "OSGKeyboardTests/ProgressiveDictationTranscriptAccumulatorTests", "OSGKeyboardTests/FlowASRPostProcessorTests", "OSGKeyboardExtTests/FinalChunkRecoveryTests" ] }, "flow": { "description": "Flow handoff policy, App Group session bridge, budgets, tail drain, mic availability, keyboard↔host decision helpers", "platform": "ios", "tests": [ "OSGKeyboardTests/FlowHandoffPolicyTests", "OSGKeyboardTests/FlowHomePiPStatusPolicyTests", "OSGKeyboardTests/FlowPiPRecoveryPolicyTests", "OSGKeyboardTests/FlowSessionBridgeTests", "OSGKeyboardTests/FlowSessionPolicyTests", "OSGKeyboardTests/FlowBudgetAndMergeTests", "OSGKeyboardTests/FlowCaptureTailDrainTests", "OSGKeyboardTests/FlowUtteranceEndCoordinatorTests", "OSGKeyboardTests/FlowUtterancePCMStoreTests", "OSGKeyboardTests/MicVoiceAvailabilityTests", "OSGKeyboardTests/FlowKeyboardPoliciesTests", "OSGKeyboardTests/FlowReliabilityTests", "OSGKeyboardTests/FlowSessionManagerAnalyticsTests", "OSGKeyboardTests/AISessionStateTests" ] }, "keyboard": { "description": "Typing surface, clipboard privacy/storage policy, secure-field UI, English lexicon, Rime, cursor navigation", "platform": "ios", "tests": [ "OSGKeyboardExtTests/EnglishTypingTests", "OSGKeyboardTests/EnglishTypingOnDeviceTests", "OSGKeyboardExtTests/CandidatePanelExpandTests", "OSGKeyboardExtTests/ClipboardSuggestionLifecycleTests", "OSGKeyboardExtTests/KeyboardStateTests", "OSGKeyboardExtTests/KeyboardUsageTypingTests", "OSGKeyboardExtTests/KeyboardSurfaceStateTests", "OSGKeyboardExtTests/KeyHitTestingTests", "OSGKeyboardExtTests/LibrimeIntegrationTests", "OSGKeyboardExtTests/PinyinNextKeyResolverTests", "OSGKeyboardExtTests/RimeSchemaGeneratorTests", "OSGKeyboardExtTests/RimePersonalDictionaryExporterTests", "OSGKeyboardExtTests/TypingTouchTrackerTests", "OSGKeyboardTests/AssistantFieldActionTests", "OSGKeyboardTests/AppleNaturalLanguageCapabilityTests", "OSGKeyboardTests/KeyboardTranslationConfigProtectionTests", "OSGKeyboardTests/AIHintPoolTests", "OSGKeyboardTests/AIHintKeywordExtractorTests", "OSGKeyboardTests/AIAgentSkillLayoutTests", "OSGKeyboardTests/AIUserSkillTests", "OSGKeyboardTests/AIUserSkillStoreTests", "OSGKeyboardTests/AIEventExtractionTests", "OSGKeyboardTests/AIAddressExtractionTests", "OSGKeyboardTests/AINoteExportTests", "OSGKeyboardTests/ClipboardSemanticAnalyzerTests", "OSGKeyboardTests/ClipboardSkillSemanticRankerTests", "OSGKeyboardTests/ClipboardHistoryPolicyTests", "OSGKeyboardTests/ClipboardHistoryStoreTests", "OSGKeyboardTests/KeyboardExtensionMemoryBudgetTests", "OSGKeyboardTests/OfficialSkillCatalogTests", "OSGKeyboardTests/RimeFrequentTermStoreTests" ] }, "host_misc": { "description": "Host deep links, tips, open-source license catalog (not on the PR critical path)", "platform": "ios", "tests": [ "OSGKeyboardTests/HostAppURLRegistryTests", "OSGKeyboardTests/PublicContentRefreshServiceTests", "OSGKeyboardTests/TipProductTests", "OSGKeyboardTests/OpenSourceLicenseCatalogTests" ] }, "pipeline_perf": { "description": "Hermetic voice→polish stage timings (synthetic PCM, stub ASR/LLM; no mic/live network)", "platform": "ios", "tests": [ "OSGKeyboardTests/VoicePipelinePerformanceTests" ] }, "mac": { "description": "macOS host recorder, dictation VM, text insertion", "platform": "mac", "tests": [ "OSGKeyboardMacTests/MacAudioRecorderSnapshotStreamTests", "OSGKeyboardMacTests/MacDictationViewModelTests", "OSGKeyboardMacTests/MacTextInsertionServiceTests", "OSGKeyboardMacTests/ProviderToolRequestCoordinatorTests" ] }, "live_api": { "description": "Optional live network and physical-device smoke; excluded from all/pr by design", "platform": "ios", "tests": [ "OSGKeyboardTests/FlowPhysicalAudioStressTests" ] } }, "presets": { "all": { "description": "Full iOS + Ext hermetic suite (includes host_misc + pipeline_perf; excludes mac and live_api)", "groups": [ "config", "account", "managed_gateway", "analytics", "sync", "polish", "edit_last_input", "cloud_asr", "local_asr", "utterance", "flow", "keyboard", "host_misc", "pipeline_perf" ] }, "pr": { "description": "Default CI / PR gate: critical path without host_misc, pipeline_perf, or mac", "groups": [ "config", "account", "managed_gateway", "analytics", "sync", "polish", "edit_last_input", "cloud_asr", "local_asr", "utterance", "flow", "keyboard" ] }, "api": { "description": "Online API contracts + polish/LLM stubs", "groups": ["cloud_asr", "polish", "managed_gateway"] }, "account": { "description": "Account, Apple integrity, and referral-link contracts", "groups": ["account"] }, "managed": { "description": "Managed gateway grant and provider transports", "groups": ["managed_gateway", "cloud_asr"] }, "asr": { "description": "Cloud + local ASR + utterance stitching", "groups": ["cloud_asr", "local_asr", "utterance"] }, "polish": { "description": "Polish-only", "groups": ["polish"] }, "edit": { "description": "Long-press editing lifecycle and prompt contract only", "groups": ["edit_last_input"] }, "keyboard": { "description": "Keyboard typing/Rime plus flow handoff/mic (keyboard-critical)", "groups": ["keyboard", "flow"] }, "flow": { "description": "Flow session / handoff only", "groups": ["flow"] }, "sync": { "description": "iCloud sync only", "groups": ["sync"] }, "perf": { "description": "Hermetic voice→polish pipeline stage timings only", "groups": ["pipeline_perf"] }, "mac": { "description": "macOS host tests only", "groups": ["mac"] } } }