Status: Implemented (local key via gitignored xcconfig)
Date: 2026-10-12
OpenAIClient — async chat completions with JSON Schema response format, 30s timeoutgpt-6-luna (updated in Phase 4; reasoning_effort=none for structured JSON)OpenAISearchInterpreter — NL query → schema-validated SearchCriteriaSecretsProvider — XOR/base64 de-obfuscation of build-injected key (still extractable from binary)FeatureFlags.isAIInterpretationEnabled — disable AI and fall back to mock interpreterENABLE_OUTGOING_NETWORK_CONNECTIONS = YESConfig/Secrets.xcconfig.example → Config/Secrets.xcconfigSet OPENAI_API_KEY_OBFUSCATED using:
SecretsProvider.obfuscateForConfig("sk-...")
Build & run. App uses AppDependencies.live.
Secrets.xcconfig is gitignored. Never commit plaintext or obfuscated production keys.
FeatureFlags.isAIInterpretationEnabled = false // mock interpretation only