@@ -58,14 +58,19 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) {
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) {
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) {
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 )
0 commit comments