fix(models): complete GPT-5 Chat registration
Some checks failed
Lint / SwiftLint (push) Has been cancelled
CI / Desktop Swift (${{ matrix.os }}) (macos-15) (push) Has been cancelled
CI / Desktop Swift (${{ matrix.os }}) (ubuntu-22.04) (push) Has been cancelled
CI / Build Examples on ${{ matrix.os }} (macos-15) (push) Has been cancelled
CI / SwiftLint (push) Has been cancelled
Cross-Platform CI / test-macos-14 (push) Has been cancelled
Cross-Platform CI / test-macos-15 (push) Has been cancelled
Cross-Platform CI / Ubuntu 22.04 LTS (push) Has been cancelled
Cross-Platform CI / Ubuntu 24.04 LTS (push) Has been cancelled
Lint / SwiftFormat (push) Has been cancelled
Lint / Swift 6 Compatibility Check (push) Has been cancelled
Lint / Package Validation (push) Has been cancelled
Tests / Test Apple Platforms (platform=macOS, macOS, macosx) (push) Has been cancelled
Tests / Test Linux (6.2.1) (push) Has been cancelled
Tests / Validate Swift Package (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
CI / Apple Platforms (${{ matrix.platform }}) (iOS Simulator) (push) Has been cancelled
Cross-Platform CI / build-release (push) Has been cancelled

This commit is contained in:
Peter Steinberger 2026-06-13 02:41:53 -04:00
parent 0326be775e
commit a6c5cb90b1
5 changed files with 5 additions and 1 deletions

View File

@ -15,7 +15,7 @@ All notable changes to the Tachikoma project will be documented in this file.
- Removed stale direct model support for retired or non-canonical IDs including GPT-5.1/5.2/pseudo-thinking models, deprecated Claude Sonnet/Opus 4 snapshots, Grok 2/3/4-fast rows, old Groq Llama/Mixtral/Gemma aliases, stale Mistral aliases, and invalid LM Studio `current`.
### Fixed
- OpenAI `gpt-5-chat-latest` now preserves its distinct model identity instead of being rewritten to `chat-latest`.
- OpenAI `gpt-5-chat-latest` now preserves its distinct model identity, appears in model listings, and applies GPT-5 parameter filtering instead of being rewritten to `chat-latest`.
- SwiftPM consumers now resolve Commander from the package URL instead of accidentally inheriting a sibling local checkout.
- Ollama model parsing now preserves explicit custom vision model IDs such as `qwen2.5vl:3b` instead of falling back to `llama3.3` (#16).
- Auth resolution now snapshots environment-ignore state consistently, preventing parallel tests and concurrent callers from falling back to stored OpenRouter credentials when an environment override is present.

View File

@ -242,6 +242,7 @@ public final class ModelCapabilityRegistry: @unchecked Sendable {
)
self.capabilities["openai:chat-latest"] = gpt5Capabilities
self.capabilities["openai:gpt-5-chat-latest"] = gpt5Capabilities
self.capabilities["openai:gpt-5.5"] = gpt5Capabilities
self.capabilities["openai:gpt-5.4"] = gpt5Capabilities
self.capabilities["openai:gpt-5.4-mini"] = gpt5Capabilities

View File

@ -57,6 +57,7 @@ public enum LanguageModel: Sendable, CustomStringConvertible, Hashable {
public static var allCases: [OpenAI] {
[
.chatLatest,
.gpt5ChatLatest,
.gpt55,
.gpt54,
.gpt54Mini,

View File

@ -6,6 +6,7 @@ struct LanguageModelCoverageTests {
func `OpenAI enum exposes properties`() {
let models = LanguageModel.OpenAI.allCases
#expect(!models.isEmpty)
#expect(models.contains(.gpt5ChatLatest))
for model in models {
#expect(!model.modelId.isEmpty)
_ = model.supportsVision

View File

@ -7,6 +7,7 @@ enum ModelCapabilitiesTests {
@Test
func `GPT-5 models exclude temperature and topP`() {
let models: [LanguageModel] = [
.openai(.gpt5ChatLatest),
.openai(.gpt55),
.openai(.gpt54),
.openai(.gpt54Mini),