feat(polish): add context safeguards, layered prompts, and output validation

Use redacted cursor neighborhood and pause-aware chunks for more natural polish,
validate protected terms with retry/local fallback, and structure bilingual prompts
for consistency and provider prefix caching.
This commit is contained in:
Rocky
2026-07-29 17:45:11 +08:00
parent 2d44423f4c
commit 34be2e8dd1
40 changed files with 1827 additions and 183 deletions
@@ -0,0 +1,20 @@
import XCTest
@testable import OSGKeyboardShared
final class TranscriptLanguageDetectorTests: XCTestCase {
func testChineseAndMixedInputPreferChineseGuidance() {
XCTAssertTrue(TranscriptLanguageDetector.prefersChineseGuidance("今天开会讨论 roadmap"))
XCTAssertTrue(TranscriptLanguageDetector.prefersChineseGuidance("把 PRD 发给 Ali review"))
}
func testEnglishJapaneseAndKoreanDoNotPreferChineseGuidance() {
XCTAssertFalse(TranscriptLanguageDetector.prefersChineseGuidance("ship it tomorrow"))
XCTAssertFalse(TranscriptLanguageDetector.prefersChineseGuidance("こんにちは"))
XCTAssertFalse(TranscriptLanguageDetector.prefersChineseGuidance("안녕하세요"))
}
func testNumbersHaveNoScriptSignal() {
XCTAssertEqual(TranscriptLanguageDetector.cjkRatio("12345"), 0)
XCTAssertEqual(TranscriptLanguageDetector.cjkRatio(""), 0)
}
}