Releases: Luminoid/Sophon
Releases · Luminoid/Sophon
Release list
0.2.0
[0.2.0] - 2026-09-06
Added
GeminiModelpresets for Gemini 3.5 Flash-Lite, 3.6 Flash, 3.7 Flash, and 3.8 Flash (all free-tier). Stored 3 Flash Preview selections resolve to 3.6 Flash and 3.1 Flash-Lite to 3.5 Flash-Lite.
Fixed
LLMDecoding.intno longer traps on out-of-range values; non-finite doubles are rejected and confidence is clamped to 0...1.
0.1.0
[0.1.0] - 2026-07-14
Initial release: a shared Gemini kernel extracted from three production iOS apps that previously each carried it as copy-pasted code.
Added
SophonCore:LLMDecodinglenient decoders,LLMJSONExtractor(markdown-fence stripping, outermost-brace extraction, truncated-JSON repair, decoding-error formatting),SophonKeychain(account-parameterized),SophonLoggerpluggable log handler (os.Logger default).SophonGemini:GeminiAPIClient(per-attempt request variants, Retry-After honoring, jitter, same-call 404 model fallback, truncated-JSON recovery, multi-turn, injectable URLSession),GeminiClientConfiguration(per-app keychain account, defaults keys, catalog, timeouts, retry policy, log handler),GeminiRetryPolicywith.defaultand.minimalpresets plus per-call override,generateStructured/generateTextconveniences, unionGeminiModelcatalog with successor-map resolution inGeminiModelStore, unifiedGeminiError, availability/masked-key helpers, UIKit-gated image encoding.- Localized error copy (en, es, zh-Hans, zh-Hant) resolved from the package bundle. Shipped as classic
.lproj/Localizable.strings: command-line SwiftPM copies.xcstringsraw without compiling, which breaksString(localized:bundle:)underswift test. - 110 tests: client and decoding behavior, both retry-policy presets, model-store resolution matrix, media-before-text part ordering,
propertyOrderingschema encoding, image-encoder pixel cap and ordering, string-catalog resolution lock. - Example app (
Example/, XcodeGen-generated): API key and model settings, schema-constrained structured output, multi-turn chat, and the offline JSON extractor.