diff --git a/internal/provider/gemini-web/client.go b/internal/provider/gemini-web/client.go index 4f453268..0b29dbae 100644 --- a/internal/provider/gemini-web/client.go +++ b/internal/provider/gemini-web/client.go @@ -225,7 +225,7 @@ func MaskToken28(s string) string { } var NanoBananaModel = map[string]struct{}{ - "gemini-2.5-flash-image-preview": {}, + "gemini-2.5-flash-image-web": {}, } // NewGeminiClient creates a client. Pass empty strings to auto-detect via browser cookies (not implemented in Go port). diff --git a/internal/provider/gemini-web/conversation/alias.go b/internal/provider/gemini-web/conversation/alias.go index b0481883..8cb31c86 100644 --- a/internal/provider/gemini-web/conversation/alias.go +++ b/internal/provider/gemini-web/conversation/alias.go @@ -21,7 +21,7 @@ func EnsureGeminiWebAliasMap() { continue } if m.ID == "gemini-2.5-flash" { - aliasMap["gemini-2.5-flash-image-preview"] = "gemini-2.5-flash" + aliasMap["gemini-2.5-flash-image-web"] = "gemini-2.5-flash" } alias := AliasFromModelID(m.ID) aliasMap[strings.ToLower(alias)] = strings.ToLower(m.ID) @@ -65,8 +65,8 @@ func GetGeminiWebAliasedModels() []*registry.ModelInfo { continue } else if m.ID == "gemini-2.5-flash" { cpy := *m - cpy.ID = "gemini-2.5-flash-image-preview" - cpy.Name = "gemini-2.5-flash-image-preview" + cpy.ID = "gemini-2.5-flash-image-web" + cpy.Name = "gemini-2.5-flash-image-web" cpy.DisplayName = "Nano Banana" cpy.Description = "Gemini 2.5 Flash Preview Image" aliased = append(aliased, &cpy) diff --git a/internal/provider/gemini-web/state.go b/internal/provider/gemini-web/state.go index dca69992..bc15790c 100644 --- a/internal/provider/gemini-web/state.go +++ b/internal/provider/gemini-web/state.go @@ -460,10 +460,10 @@ func (s *GeminiWebState) Send(ctx context.Context, modelName string, reqPayload return nil, s.wrapSendError(err), nil } - // Hook: For gemini-2.5-flash-image-preview, if the API returns only images without any text, + // Hook: For gemini-2.5-flash-image-web, if the API returns only images without any text, // inject a small textual summary so that conversation persistence has non-empty assistant text. // This helps conversation recovery (conv store) to match sessions reliably. - if strings.EqualFold(modelName, "gemini-2.5-flash-image-preview") { + if strings.EqualFold(modelName, "gemini-2.5-flash-image-web") { if len(output.Candidates) > 0 { c := output.Candidates[output.Chosen] hasNoText := strings.TrimSpace(c.Text) == ""