Remove manual polish scenario UI; rely on auto AppContext only

- Hide AppContext chip and remove manual override from keyboard
- Remove polish scenario picker and custom system prompt from settings
- Remove scenario section from onboarding
- Translation prompt uses auto-detected AppContext instead of polish scenario
- Delete ScenarioPrompt, ScenarioStyleDirective, PolishScenario, and related views

Co-authored-by: Rocky <hkgood@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-07-03 09:26:51 +00:00
parent 74f33b480f
commit 4ab60ba3dc
18 changed files with 31 additions and 871 deletions
+3 -50
View File
@@ -476,60 +476,13 @@ final class LLMClientTests: XCTestCase {
XCTAssertEqual(calls, 1)
}
func testResolvedPolishSystemPromptUsesWorkScenario() {
let suiteName = "group.com.osgkeyboard.shared.tests.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suiteName)!
defaults.removePersistentDomain(forName: suiteName)
defer { defaults.removePersistentDomain(forName: suiteName) }
defaults.set("work", forKey: "config.polishScenarioId")
let store = AppGroupStore(defaults: defaults)
let prompt = store.resolvedPolishSystemPrompt(providerId: "openai")
XCTAssertTrue(prompt.localizedCaseInsensitiveContains("workplace"))
}
func testCustomPolishScenarioUsesStoredSystemPrompt() {
let suiteName = "group.com.osgkeyboard.shared.tests.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suiteName)!
defaults.removePersistentDomain(forName: suiteName)
defer { defaults.removePersistentDomain(forName: suiteName) }
defaults.set(PolishScenarioCatalog.customId, forKey: "config.polishScenarioId")
defaults.set("MY CUSTOM PROMPT", forKey: "config.systemPrompt")
let store = AppGroupStore(defaults: defaults)
XCTAssertEqual(store.resolvedPolishSystemPrompt(), "MY CUSTOM PROMPT")
}
func testPolishScenarioChipVisibleWhenCloudPolishEnabledLocally() {
let suiteName = "group.com.osgkeyboard.shared.tests.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suiteName)!
defaults.removePersistentDomain(forName: suiteName)
defer { defaults.removePersistentDomain(forName: suiteName) }
defaults.set("local", forKey: "config.engineMode")
defaults.set(true, forKey: "config.localModeCloudPolishEnabled")
let store = AppGroupStore(defaults: defaults)
XCTAssertTrue(store.isPolishScenarioChipVisible)
}
func testTranslationPromptIncludesWorkScenarioBullets() {
func testTranslationPromptIncludesAppContextGuideline() {
let prompt = TranslationPrompt.make(
target: TranslationLanguageCatalog.resolve("en"),
providerId: "openai",
scenarioId: "work"
appContext: .code
)
XCTAssertTrue(prompt.localizedCaseInsensitiveContains("MUST use markdown"))
XCTAssertTrue(prompt.localizedCaseInsensitiveContains("workplace"))
}
func testWorkScenarioPolishPromptRequiresBullets() {
let prompt = ScenarioPrompt.make(scenarioId: "work", providerId: "openai")
XCTAssertTrue(prompt.localizedCaseInsensitiveContains("MUST use markdown"))
}
func testTodoScenarioPolishPromptRequiresChecklist() {
let prompt = ScenarioPrompt.make(scenarioId: "todo", providerId: "deepseek")
XCTAssertTrue(prompt.contains("必须是 markdown"))
XCTAssertTrue(prompt.localizedCaseInsensitiveContains("preserve English identifiers"))
}
}