@@ -219,21 +219,22 @@ func TestBuildConfigChangeDetails_SecretsAndCounts(t *testing.T) {
219219
220220func TestBuildConfigChangeDetails_FlagsAndKeys (t * testing.T ) {
221221 oldCfg := & config.Config {
222- Port : 1000 ,
223- AuthDir : "/old" ,
224- Debug : false ,
225- LoggingToFile : false ,
226- UsageStatisticsEnabled : false ,
227- DisableCooling : false ,
228- RequestRetry : 1 ,
229- MaxRetryCredentials : 1 ,
230- MaxRetryInterval : 1 ,
231- WebsocketAuth : false ,
232- QuotaExceeded : config.QuotaExceeded {SwitchProject : false , SwitchPreviewModel : false , AntigravityCredits : false },
233- ClaudeKey : []config.ClaudeKey {{APIKey : "c1" }},
234- CodexKey : []config.CodexKey {{APIKey : "x1" }},
235- AmpCode : config.AmpCode {UpstreamAPIKey : "keep" , RestrictManagementToLocalhost : false },
236- RemoteManagement : config.RemoteManagement {DisableControlPanel : false , PanelGitHubRepository : "old/repo" , SecretKey : "keep" },
222+ Port : 1000 ,
223+ AuthDir : "/old" ,
224+ Debug : false ,
225+ LoggingToFile : false ,
226+ UsageStatisticsEnabled : false ,
227+ DisableCooling : false ,
228+ TransientErrorCooldownSeconds : 60 ,
229+ RequestRetry : 1 ,
230+ MaxRetryCredentials : 1 ,
231+ MaxRetryInterval : 1 ,
232+ WebsocketAuth : false ,
233+ QuotaExceeded : config.QuotaExceeded {SwitchProject : false , SwitchPreviewModel : false , AntigravityCredits : false },
234+ ClaudeKey : []config.ClaudeKey {{APIKey : "c1" }},
235+ CodexKey : []config.CodexKey {{APIKey : "x1" }},
236+ AmpCode : config.AmpCode {UpstreamAPIKey : "keep" , RestrictManagementToLocalhost : false },
237+ RemoteManagement : config.RemoteManagement {DisableControlPanel : false , PanelGitHubRepository : "old/repo" , SecretKey : "keep" },
237238 SDKConfig : sdkconfig.SDKConfig {
238239 RequestLog : false ,
239240 ProxyURL : "http://old-proxy" ,
@@ -243,17 +244,18 @@ func TestBuildConfigChangeDetails_FlagsAndKeys(t *testing.T) {
243244 },
244245 }
245246 newCfg := & config.Config {
246- Port : 2000 ,
247- AuthDir : "/new" ,
248- Debug : true ,
249- LoggingToFile : true ,
250- UsageStatisticsEnabled : true ,
251- DisableCooling : true ,
252- RequestRetry : 2 ,
253- MaxRetryCredentials : 3 ,
254- MaxRetryInterval : 3 ,
255- WebsocketAuth : true ,
256- QuotaExceeded : config.QuotaExceeded {SwitchProject : true , SwitchPreviewModel : true , AntigravityCredits : true },
247+ Port : 2000 ,
248+ AuthDir : "/new" ,
249+ Debug : true ,
250+ LoggingToFile : true ,
251+ UsageStatisticsEnabled : true ,
252+ DisableCooling : true ,
253+ TransientErrorCooldownSeconds : 0 ,
254+ RequestRetry : 2 ,
255+ MaxRetryCredentials : 3 ,
256+ MaxRetryInterval : 3 ,
257+ WebsocketAuth : true ,
258+ QuotaExceeded : config.QuotaExceeded {SwitchProject : true , SwitchPreviewModel : true , AntigravityCredits : true },
257259 ClaudeKey : []config.ClaudeKey {
258260 {APIKey : "c1" , BaseURL : "http://new" , ProxyURL : "http://p" , Headers : map [string ]string {"H" : "1" }, ExcludedModels : []string {"a" }},
259261 {APIKey : "c2" },
@@ -288,6 +290,7 @@ func TestBuildConfigChangeDetails_FlagsAndKeys(t *testing.T) {
288290 expectContains (t , details , "logging-to-file: false -> true" )
289291 expectContains (t , details , "usage-statistics-enabled: false -> true" )
290292 expectContains (t , details , "disable-cooling: false -> true" )
293+ expectContains (t , details , "transient-error-cooldown-seconds: 60 -> 0" )
291294 expectContains (t , details , "disable-image-generation: false -> true" )
292295 expectContains (t , details , "request-log: false -> true" )
293296 expectContains (t , details , "request-retry: 1 -> 2" )
@@ -313,17 +316,18 @@ func TestBuildConfigChangeDetails_FlagsAndKeys(t *testing.T) {
313316
314317func TestBuildConfigChangeDetails_AllBranches (t * testing.T ) {
315318 oldCfg := & config.Config {
316- Port : 1 ,
317- AuthDir : "/a" ,
318- Debug : false ,
319- LoggingToFile : false ,
320- UsageStatisticsEnabled : false ,
321- DisableCooling : false ,
322- RequestRetry : 1 ,
323- MaxRetryCredentials : 1 ,
324- MaxRetryInterval : 1 ,
325- WebsocketAuth : false ,
326- QuotaExceeded : config.QuotaExceeded {SwitchProject : false , SwitchPreviewModel : false , AntigravityCredits : false },
319+ Port : 1 ,
320+ AuthDir : "/a" ,
321+ Debug : false ,
322+ LoggingToFile : false ,
323+ UsageStatisticsEnabled : false ,
324+ DisableCooling : false ,
325+ TransientErrorCooldownSeconds : 60 ,
326+ RequestRetry : 1 ,
327+ MaxRetryCredentials : 1 ,
328+ MaxRetryInterval : 1 ,
329+ WebsocketAuth : false ,
330+ QuotaExceeded : config.QuotaExceeded {SwitchProject : false , SwitchPreviewModel : false , AntigravityCredits : false },
327331 GeminiKey : []config.GeminiKey {
328332 {APIKey : "g-old" , BaseURL : "http://g-old" , ProxyURL : "http://gp-old" , Headers : map [string ]string {"A" : "1" }},
329333 },
@@ -367,17 +371,18 @@ func TestBuildConfigChangeDetails_AllBranches(t *testing.T) {
367371 },
368372 }
369373 newCfg := & config.Config {
370- Port : 2 ,
371- AuthDir : "/b" ,
372- Debug : true ,
373- LoggingToFile : true ,
374- UsageStatisticsEnabled : true ,
375- DisableCooling : true ,
376- RequestRetry : 2 ,
377- MaxRetryCredentials : 3 ,
378- MaxRetryInterval : 3 ,
379- WebsocketAuth : true ,
380- QuotaExceeded : config.QuotaExceeded {SwitchProject : true , SwitchPreviewModel : true , AntigravityCredits : true },
374+ Port : 2 ,
375+ AuthDir : "/b" ,
376+ Debug : true ,
377+ LoggingToFile : true ,
378+ UsageStatisticsEnabled : true ,
379+ DisableCooling : true ,
380+ TransientErrorCooldownSeconds : 0 ,
381+ RequestRetry : 2 ,
382+ MaxRetryCredentials : 3 ,
383+ MaxRetryInterval : 3 ,
384+ WebsocketAuth : true ,
385+ QuotaExceeded : config.QuotaExceeded {SwitchProject : true , SwitchPreviewModel : true , AntigravityCredits : true },
381386 GeminiKey : []config.GeminiKey {
382387 {APIKey : "g-new" , BaseURL : "http://g-new" , ProxyURL : "http://gp-new" , Headers : map [string ]string {"A" : "2" }, ExcludedModels : []string {"x" , "y" }},
383388 },
@@ -434,6 +439,7 @@ func TestBuildConfigChangeDetails_AllBranches(t *testing.T) {
434439 expectContains (t , changes , "logging-to-file: false -> true" )
435440 expectContains (t , changes , "usage-statistics-enabled: false -> true" )
436441 expectContains (t , changes , "disable-cooling: false -> true" )
442+ expectContains (t , changes , "transient-error-cooldown-seconds: 60 -> 0" )
437443 expectContains (t , changes , "disable-image-generation: false -> true" )
438444 expectContains (t , changes , "request-retry: 1 -> 2" )
439445 expectContains (t , changes , "max-retry-credentials: 1 -> 3" )
0 commit comments