diff --git a/internal/registry/model_registry.go b/internal/registry/model_registry.go index 40221631..252aaffd 100644 --- a/internal/registry/model_registry.go +++ b/internal/registry/model_registry.go @@ -1161,7 +1161,7 @@ func (r *ModelRegistry) convertModelToMap(model *ModelInfo, handlerType string) "owned_by": model.OwnedBy, } if model.Created > 0 { - result["created_at"] = model.Created + result["created_at"] = time.Unix(model.Created, 0).UTC().Format(time.RFC3339) } if model.Type != "" { result["type"] = "model" diff --git a/internal/registry/model_registry_cache_test.go b/internal/registry/model_registry_cache_test.go index fc08c3d7..1951b433 100644 --- a/internal/registry/model_registry_cache_test.go +++ b/internal/registry/model_registry_cache_test.go @@ -25,7 +25,7 @@ func TestGetAvailableModelsReturnsClonedSnapshots(t *testing.T) { func TestGetAvailableModelsClaudeIncludesTokenLimits(t *testing.T) { r := newTestModelRegistry() r.RegisterClient("client-1", "Claude", []*ModelInfo{ - {ID: "claude-sonnet-4-6", OwnedBy: "anthropic", Type: "claude", ContextLength: 200000, MaxCompletionTokens: 64000}, + {ID: "claude-sonnet-4-6", OwnedBy: "anthropic", Type: "claude", Created: 1771372800, ContextLength: 200000, MaxCompletionTokens: 64000}, {ID: "claude-no-limits", OwnedBy: "anthropic", Type: "claude"}, }) @@ -46,6 +46,9 @@ func TestGetAvailableModelsClaudeIncludesTokenLimits(t *testing.T) { if got := withLimits["max_tokens"]; got != 64000 { t.Fatalf("expected max_tokens 64000, got %v", got) } + if got := withLimits["created_at"]; got != "2026-02-18T00:00:00Z" { + t.Fatalf("expected created_at as RFC 3339 string, got %v", got) + } withDefaults, ok := byID["claude-no-limits"] if !ok {