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:
Rocky
2026-08-05 21:39:31 +08:00
parent 38e5ad570d
commit 31f5937a7f
177 changed files with 8343 additions and 3904 deletions
@@ -66,6 +66,32 @@ final class MicVoiceAvailabilityTests: XCTestCase {
XCTAssertEqual(availability, .recording)
}
func testUnavailableWhenOnboardingIncomplete() {
let availability = MicVoiceAvailabilityResolver.resolve(
phase: .idle,
micDisabled: false,
hasFullAccess: true,
appGroupAvailable: true,
hostReady: true,
isPreparingSession: false,
hasCompletedOnboarding: false
)
XCTAssertEqual(availability, .unavailable(.onboardingIncomplete))
}
func testOnboardingIncompleteTakesPrecedenceOverMissingAPIKey() {
let availability = MicVoiceAvailabilityResolver.resolve(
phase: .idle,
micDisabled: true,
hasFullAccess: true,
appGroupAvailable: true,
hostReady: true,
isPreparingSession: false,
hasCompletedOnboarding: false
)
XCTAssertEqual(availability, .unavailable(.onboardingIncomplete))
}
func testProcessingOverridesUnavailable() {
let availability = MicVoiceAvailabilityResolver.resolve(
phase: .processing,