Skip to content

Commit f6c7238

Browse files
committed
修复新手破冰期问候重试循环
1 parent 721fb47 commit f6c7238

2 files changed

Lines changed: 40 additions & 3 deletions

File tree

static/app-websocket.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3160,9 +3160,6 @@
31603160
}
31613161
function _isTutorialBlockingGreeting() {
31623162
if (!_isHomeTutorialPage()) return false;
3163-
if (isNewUserIcebreakerBlockingGreeting()) {
3164-
return true;
3165-
}
31663163
try {
31673164
if (isHomeTutorialLockedForGreeting()) {
31683165
return true;
@@ -3211,11 +3208,24 @@
32113208
S._greetingCheckIsSwitch = !!isSwitch;
32123209
S._greetingCheckReason = reason || '';
32133210
}
3211+
function _consumeGreetingCheckForNewUserIcebreaker() {
3212+
if (!isNewUserIcebreakerBlockingGreeting()) return false;
3213+
sendHomeTutorialState('greeting-check-consumed-by-icebreaker');
3214+
S._greetingCheckPending = false;
3215+
S._greetingCheckIsSwitch = false;
3216+
S._greetingCheckReason = '';
3217+
_resetGreetingCheckRetry(true);
3218+
console.log('[greeting_check] consumed by new-user icebreaker period');
3219+
return true;
3220+
}
32143221
function _sendGreetingCheckIfReady() {
32153222
if (!S._greetingCheckPending || !S._modelReady) {
32163223
if (!S._greetingCheckPending) _resetGreetingCheckRetry(true);
32173224
return;
32183225
}
3226+
if (_consumeGreetingCheckForNewUserIcebreaker()) {
3227+
return;
3228+
}
32193229
if (_isGreetingCheckBlocked()) {
32203230
sendHomeTutorialState('greeting-check-blocked');
32213231
_scheduleGreetingCheckRetry();

tests/unit/test_app_websocket_static.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,33 @@ def test_blocked_greeting_check_reports_home_tutorial_state_before_retry():
5252
assert "_scheduleGreetingCheckRetry();" in blocked_branch
5353

5454

55+
def test_icebreaker_greeting_check_is_consumed_without_retry_loop():
56+
source = APP_WEBSOCKET_PATH.read_text(encoding="utf-8")
57+
58+
send_block = source.split("function _sendGreetingCheckIfReady()", 1)[1].split(
59+
"function _onModelReady()",
60+
1,
61+
)[0]
62+
assert send_block.index("if (_consumeGreetingCheckForNewUserIcebreaker())") < send_block.index(
63+
"if (_isGreetingCheckBlocked())"
64+
)
65+
66+
consume_block = source.split("function _consumeGreetingCheckForNewUserIcebreaker()", 1)[1].split(
67+
"function _sendGreetingCheckIfReady()",
68+
1,
69+
)[0]
70+
assert "sendHomeTutorialState('greeting-check-consumed-by-icebreaker')" in consume_block
71+
assert "S._greetingCheckPending = false;" in consume_block
72+
assert "_resetGreetingCheckRetry(true);" in consume_block
73+
assert "_scheduleGreetingCheckRetry();" not in consume_block
74+
75+
tutorial_block = source.split("function _isTutorialBlockingGreeting()", 1)[1].split(
76+
"function _isGreetingCheckBlocked()",
77+
1,
78+
)[0]
79+
assert "isNewUserIcebreakerBlockingGreeting()" not in tutorial_block
80+
81+
5582
def test_goodbye_blocks_stale_audio_session_started():
5683
source = APP_WEBSOCKET_PATH.read_text(encoding="utf-8")
5784

0 commit comments

Comments
 (0)