feat(keyboard): add clipboard AI skills, hint keywords, and voice session fixes

Idle chips show entities with category icons; a fresh copy surfaces Reply/Summarize/Translate; abort/cancel/empty-tap no longer leave the mic stuck.
This commit is contained in:
Rocky
2026-08-13 15:47:32 +08:00
parent 9f308fadd2
commit 631617ee53
48 changed files with 1627 additions and 345 deletions
@@ -5,6 +5,15 @@ import XCTest
@testable import OSGKeyboardShared
final class AIClipboardPromptTests: XCTestCase {
func testInternalClipboardEnvelopeIsDetected() {
let prompt = AIClipboardPrompt.compose(
instruction: "请翻译剪贴板",
material: "hello"
)
XCTAssertTrue(AIClipboardPrompt.isInternalPrompt(prompt))
XCTAssertFalse(AIClipboardPrompt.isInternalPrompt("请翻译剪贴板"))
}
func testComposeKeepsInstructionAndMaterialInSeparateBlocks() {
let prompt = AIClipboardPrompt.compose(
instruction: "请翻译剪贴板",