Skip to content

Commit a6bc3e5

Browse files
committed
fix(settings): wait for complete Jimeng login challenge
Do not return a device login challenge until both the URI and user code arrive. Force split CLI output in the regression test to cover Linux pipe timing.
1 parent e8b5bdc commit a6bc3e5

2 files changed

Lines changed: 2 additions & 1 deletion

File tree

services/server/internal/service/settings/store.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ func (service *Settings) startJimengLogin(ctx context.Context) (ProviderLoginCha
335335
select {
336336
case text := <-output.updates:
337337
login := parseJimengLoginChallenge([]byte(text))
338-
if login.Status == "pending" && login.VerificationURI != "" {
338+
if login.Status == "pending" && login.VerificationURI != "" && login.UserCode != "" {
339339
login.DeviceCode = ""
340340
if login.Message == "" {
341341
login.Message = "即梦登录链接已生成,请在浏览器中完成登录。"

services/server/internal/service/settings/store_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ func TestSettingsJimengBrowserLoginReturnsChallengeAndPersistsAfterCLICompletes(
333333
script := `#!/bin/sh
334334
if [ "$1" = "login" ] && [ "$#" -eq 1 ]; then
335335
echo "verification_uri: https://example.test/device"
336+
sleep 0.05
336337
echo "user_code: ABCD-EFGH"
337338
echo "device_code: device-123"
338339
sleep 0.2

0 commit comments

Comments
 (0)