世界 608b7e7fa2 fix(ccm,ocm): stop cascading 429 retry storm on token refresh
When the access token expires and refreshToken() gets 429, getAccessToken()
returned the error but left credentials unchanged with no cooldown. Every
subsequent request re-attempted the refresh, creating a burst that overwhelmed
the token endpoint.

- refreshToken() now returns Retry-After duration from 429 response headers
  (-1 when no header present, meaning permanently blocked)
- getAccessToken() caches the 429 and blocks further refresh attempts until
  Retry-After expires (or permanently if no header)
- reloadCredentials() clears the block when new credentials are loaded from file
- Remove go pollUsage() on upstream errors (unrelated to usage state)
2026-03-21 09:31:05 +08:00
2026-03-15 17:56:37 +08:00
2026-02-26 14:13:32 +08:00
2026-03-14 21:38:38 +08:00
2026-03-15 17:56:37 +08:00
2026-03-15 17:57:53 +08:00
2026-03-01 12:30:43 +08:00
2026-02-27 14:58:06 +08:00
2025-07-08 13:14:43 +08:00
2026-02-15 21:10:44 +08:00
2024-02-24 13:20:27 +08:00
2026-02-26 14:13:32 +08:00
2025-04-29 20:45:19 +08:00
2023-12-29 18:00:40 +08:00
2023-12-29 18:00:40 +08:00
2026-02-26 14:13:32 +08:00
2023-03-27 08:20:51 +08:00

Sponsored by Warp, built for coding with multiple AI agents

Warp sponsorship

sing-box

The universal proxy platform.

Packaging status

Documentation

https://sing-box.sagernet.org

License

Copyright (C) 2022 by nekohasekai <contact-sagernet@sekai.icu>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

In addition, no derivative work may use the name or imply association
with this application without prior consent.
Description
GitHub mirror of sing-box
Readme 52 MiB
Languages
Go 96.4%
Shell 2%
Objective-C 1.2%
Makefile 0.3%
C 0.1%