feat(keyboard): improve typing, voice flow, and polish reliability
Reduce extension memory pressure and delivery races while adding richer candidates, tactile feedback, and safer two-level creative polishing.
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"$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"
|
||||
]
|
||||
},
|
||||
"sync": {
|
||||
"description": "iCloud KVS merge/sync for settings, dictionary, speech history, usage stats",
|
||||
"platform": "ios",
|
||||
"tests": [
|
||||
"OSGKeyboardTests/SettingsCloudSyncTests",
|
||||
"OSGKeyboardTests/PersonalDictionaryCloudSyncTests",
|
||||
"OSGKeyboardTests/PersonalDictionaryMergeTests",
|
||||
"OSGKeyboardTests/SpeechHistoryCloudSyncTests",
|
||||
"OSGKeyboardTests/SpeechHistoryDayDeletionTests",
|
||||
"OSGKeyboardTests/UsageStatisticsCloudSyncTests"
|
||||
]
|
||||
},
|
||||
"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/LLMClientTests",
|
||||
"OSGKeyboardTests/TranscriptLanguageDetectorTests"
|
||||
]
|
||||
},
|
||||
"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",
|
||||
"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/FlowSessionBridgeTests",
|
||||
"OSGKeyboardTests/FlowSessionPolicyTests",
|
||||
"OSGKeyboardTests/FlowBudgetAndMergeTests",
|
||||
"OSGKeyboardTests/FlowCaptureTailDrainTests",
|
||||
"OSGKeyboardTests/FlowUtteranceEndCoordinatorTests",
|
||||
"OSGKeyboardTests/FlowUtterancePCMStoreTests",
|
||||
"OSGKeyboardTests/MicVoiceAvailabilityTests",
|
||||
"OSGKeyboardTests/FlowKeyboardPoliciesTests",
|
||||
"OSGKeyboardTests/FlowReliabilityTests"
|
||||
]
|
||||
},
|
||||
"keyboard": {
|
||||
"description": "Typing surface, English lexicon, Rime schema/integration, candidate panel, cursor navigation, translation chip grace",
|
||||
"platform": "ios",
|
||||
"tests": [
|
||||
"OSGKeyboardExtTests/EnglishTypingTests",
|
||||
"OSGKeyboardExtTests/CandidatePanelExpandTests",
|
||||
"OSGKeyboardExtTests/KeyboardStateTests",
|
||||
"OSGKeyboardExtTests/KeyboardSurfaceStateTests",
|
||||
"OSGKeyboardExtTests/LibrimeIntegrationTests",
|
||||
"OSGKeyboardExtTests/RimeSchemaGeneratorTests",
|
||||
"OSGKeyboardTests/CursorNavigationTests",
|
||||
"OSGKeyboardTests/KeyboardTranslationConfigProtectionTests"
|
||||
]
|
||||
},
|
||||
"host_misc": {
|
||||
"description": "Host deep links, tips, open-source license catalog (not on the PR critical path)",
|
||||
"platform": "ios",
|
||||
"tests": [
|
||||
"OSGKeyboardTests/HostAppURLRegistryTests",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"live_api": {
|
||||
"description": "Optional live network and physical-device smoke; excluded from all/pr by design",
|
||||
"platform": "ios",
|
||||
"tests": [
|
||||
"OSGKeyboardTests/FlowPhysicalAudioStressTests",
|
||||
"OSGKeyboardTests/DatingPolishLiveEvalTests",
|
||||
"OSGKeyboardTests/DatingPolish500LiveEvalTests"
|
||||
]
|
||||
}
|
||||
},
|
||||
"presets": {
|
||||
"all": {
|
||||
"description": "Full iOS + Ext hermetic suite (includes host_misc + pipeline_perf; excludes mac and live_api)",
|
||||
"groups": [
|
||||
"config",
|
||||
"sync",
|
||||
"polish",
|
||||
"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",
|
||||
"sync",
|
||||
"polish",
|
||||
"cloud_asr",
|
||||
"local_asr",
|
||||
"utterance",
|
||||
"flow",
|
||||
"keyboard"
|
||||
]
|
||||
},
|
||||
"api": {
|
||||
"description": "Online API contracts + polish/LLM stubs",
|
||||
"groups": ["cloud_asr", "polish"]
|
||||
},
|
||||
"asr": {
|
||||
"description": "Cloud + local ASR + utterance stitching",
|
||||
"groups": ["cloud_asr", "local_asr", "utterance"]
|
||||
},
|
||||
"polish": {
|
||||
"description": "Polish-only",
|
||||
"groups": ["polish"]
|
||||
},
|
||||
"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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user