History

fix(gemini): gate callback prompt on project_id

Supra4E8C committed 10 months ago

Commit 05d201e1 parent cd0c94f1 file · +10 −5Browse files

Unified · Split

internal/cmd/login.go+10−5
@@ -58,14 +58,19 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) { · 57 unmodified lines
5858 promptFn := options.Prompt
5959 if promptFn == nil {
6060 promptFn = defaultProjectPrompt()
61− options.Prompt = promptFn
61+ }
62+
63+ trimmedProjectID := strings.TrimSpace(projectID)
64+ callbackPrompt := promptFn
65+ if trimmedProjectID == "" {
66+ callbackPrompt = nil
6267 }
6368
6469 loginOpts := &sdkAuth.LoginOptions{
6570 NoBrowser: options.NoBrowser,
66− ProjectID: strings.TrimSpace(projectID),
71+ ProjectID: trimmedProjectID,
6772 Metadata: map[string]string{},
68− Prompt: promptFn,
73+ Prompt: callbackPrompt,
6974 }
7075
7176 authenticator := sdkAuth.NewGeminiAuthenticator()
@@ -84,7 +89,7 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) { · 12 unmodified lines
8489 geminiAuth := gemini.NewGeminiAuth()
8590 httpClient, errClient := geminiAuth.GetAuthenticatedClient(ctx, storage, cfg, &gemini.WebLoginOptions{
8691 NoBrowser: options.NoBrowser,
87− Prompt: promptFn,
92+ Prompt: callbackPrompt,
8893 })
8994 if errClient != nil {
9095 log.Errorf("Gemini authentication failed: %v", errClient)
@@ -99,7 +104,7 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) { · 8 unmodified lines
99104 return
100105 }
101106
102− selectedProjectID := promptForProjectSelection(projects, strings.TrimSpace(projectID), promptFn)
107+ selectedProjectID := promptForProjectSelection(projects, trimmedProjectID, promptFn)
103108 projectSelections, errSelection := resolveProjectSelections(selectedProjectID, projects)
104109 if errSelection != nil {
105110 log.Errorf("Invalid project selection: %v", errSelection)