Supra4E8C
a14dfc779f
fix(docs): update Claude API registration links in README files
2026-07-25 12:13:03 +08:00
Supra4E8C
bc812e5f74
perf(usage): avoid parsing irrelevant stream chunks
2026-07-11 02:42:42 +08:00
Supra4E8C
ea20742e77
fix(usage): retain response tier without usage
2026-07-11 01:37:39 +08:00
Supra4E8C
dc4be1674a
feat(usage): report request and response service tiers
2026-07-11 00:49:30 +08:00
Supra4E8C
631f7a652c
fix(executor): enhance image generation tool handling for responses-lite requests
2026-07-10 18:54:31 +08:00
Supra4E8C
7115e7e00c
fix(oauth): make session completion idempotent
2026-07-10 16:20:15 +08:00
Supra4E8C
d1ef06cb5e
fix(oauth): hide completed sessions from legacy getter
2026-07-10 16:17:01 +08:00
Supra4E8C
f081b91e57
fix(plugin-store): preserve installed source identity
2026-07-10 15:48:09 +08:00
Supra4E8C
1af2334477
fix(oauth): reject unknown completed states
2026-07-10 15:37:44 +08:00
Supra4E8C
bc279c6130
feat(sponsorship): add Qiniu Cloud AI sponsorship details and logo to README files
2026-07-09 12:43:30 +08:00
Supra4E8C
53ebde0393
feat(sponsorship): add Fenno.ai sponsorship details and logo to README files
2026-07-09 12:38:33 +08:00
Supra4E8C
0d23f79151
fix(auth): keep jittered cooldown waits within max-retry-interval
...
shouldRetryAfterError approves a retry using the pre-jitter wait, so the jitter added in waitForCooldown could push the actual sleep up to 2s past the configured max-retry-interval ceiling. Clamp the jitter range to the remaining headroom below maxWait so the documented maximum stays a hard bound; waits at the ceiling simply sleep unjittered.
2026-07-06 00:16:08 +08:00
Supra4E8C
270869dd20
fix(auth): escalate quota backoff once per cooldown window and jitter cooldown waits
...
Previously every 429 incremented the backoff level unconditionally, so N concurrent in-flight failures from a single quota event inflated the level by N at once (12+ failures jump straight to the 30 minute plateau even when the upstream limit clears in seconds). Failures that land while a previous quota window is still open now reuse that window instead of escalating, so the ladder advances at most once per window. Provider supplied retry hints still take effect unchanged.
waitForCooldown also slept until the exact recovery deadline, waking every waiting request in lockstep against the single recovered credential and re-escalating it in one burst. Cooldown waits now carry a small random jitter (up to wait/4, capped at 2s) to spread the wakeups.
2026-07-06 00:05:51 +08:00
Supra4E8C
ac21758eee
feat(docs): add Code0 sponsorship information to README files in English, Chinese, and Japanese
2026-07-02 16:56:20 +08:00
Supra4E8C
87c091e267
fix(docs): correct formatting and wording for Claude API sponsorship in README files
2026-07-02 16:43:54 +08:00
Supra4E8C
00787ef99e
fix(docs): correct link formatting for Claude API sponsorship in README
2026-07-02 16:40:55 +08:00
Supra4E8C
c1b952daea
feat(docs): add Claude API sponsorship information to README files
2026-07-02 16:37:15 +08:00
Supra4E8C
810abe5e2a
feat(pluginhost): add OAuthProvider field to plugin metadata and update related functionality
2026-06-25 17:35:17 +08:00
LTbinglingfeng
09596d2f54
Treat loading plugins as busy
2026-06-17 03:19:31 +08:00
LTbinglingfeng
a3c87ceeb4
Fix management reload snapshot ordering
2026-06-17 03:17:56 +08:00
LTbinglingfeng
7b16321e50
Stabilize management reload race tests
2026-06-17 02:43:12 +08:00
LTbinglingfeng
a4756ab7a9
Use config snapshots for management reload
2026-06-17 02:40:34 +08:00
LTbinglingfeng
7f026e1aab
Add runtime config clone
2026-06-17 02:39:04 +08:00
LTbinglingfeng
a65ced4a92
fix(management): reload plugins asynchronously after changes
2026-06-17 01:06:57 +08:00
LTbinglingfeng
13f51d96cb
fix(pluginhost): avoid holding host lock during plugin lifecycle
2026-06-17 01:05:21 +08:00
LTbinglingfeng
0b21b07115
fix log cursor rotation gap
2026-06-15 18:37:21 +08:00
LTbinglingfeng
5036513bf9
Fix ambiguous empty log cursor handling
2026-06-15 16:53:50 +08:00
LTbinglingfeng
a47c386319
Avoid counting all logs for tail reads
2026-06-15 15:51:15 +08:00
LTbinglingfeng
db3fdea4a1
Disambiguate zero-offset log cursors
2026-06-15 15:50:03 +08:00
LTbinglingfeng
917cec3bf6
Continue log cursors across rotation
2026-06-15 15:46:58 +08:00
LTbinglingfeng
3b0cc913ec
feat(plugins): implement asynchronous config reload after plugin deletion
2026-06-15 15:35:55 +08:00
LTbinglingfeng
d417fa534f
Bound management log cursor reads
2026-06-15 02:18:58 +08:00
LTbinglingfeng
0d82daca6b
Preserve management log line counts
2026-06-15 02:17:57 +08:00
LTbinglingfeng
331daa24ad
Read management logs from cursors
2026-06-15 02:10:25 +08:00
LTbinglingfeng
95a72a47c8
Tail management logs with cursors
2026-06-15 02:08:06 +08:00
LTbinglingfeng
c61453a807
Add log cursor helpers
2026-06-15 02:06:25 +08:00
LTbinglingfeng
6f3bd7641b
feat(pluginstore): improve nil checks in pluginStoreSnapshot function
2026-06-15 01:21:07 +08:00
LTbinglingfeng
239d7ee0b0
feat(pluginstore): refactor plugin store source handling to use string URLs
2026-06-15 00:54:32 +08:00
LTbinglingfeng
303c0f2f53
feat(pluginstore): add support for third-party plugin store sources and enhance plugin management
2026-06-15 00:50:22 +08:00
LTbinglingfeng
9cdb18e1d6
refactor(plugin): remove timeout handling from plugin installation logic
2026-06-13 21:14:06 +08:00
LTbinglingfeng
b39ee66250
Add plugin store install timeout
2026-06-13 20:56:49 +08:00
LTbinglingfeng
b79647d886
Document plugin delete endpoint
2026-06-13 20:52:30 +08:00
LTbinglingfeng
c5cfdb15e5
Add plugin delete management endpoint
2026-06-13 20:52:07 +08:00
LTbinglingfeng
7cd5b15c9b
fix: precompute exposed CORS headers
2026-06-13 05:59:18 +08:00
LTbinglingfeng
2659e490a8
fix: expose plugin support header for CORS
2026-06-13 05:53:19 +08:00
LTbinglingfeng
b29851d415
docs(plugins): document config get endpoint in Chinese readme
2026-06-13 05:06:03 +08:00
LTbinglingfeng
4f5f1b8f2b
fix(plugins): guard config read with mutex
2026-06-13 05:05:49 +08:00
LTbinglingfeng
b60ec43944
fix(plugins): expose saved plugin config
2026-06-13 04:51:07 +08:00
LTbinglingfeng
b2b5d10b75
feat(pluginstore): make registry version field optional
...
The latest release is now the source of truth for plugin versions, so
the registry version only serves as a display fallback. Validate its
format only when present.
2026-06-13 04:10:11 +08:00
LTbinglingfeng
220b4e5bbd
feat(management): resolve plugin store versions from latest releases
...
List entries now show each plugin's latest release version and compute
update availability against it, falling back to the registry version
when the lookup fails. Lookups run concurrently and are cached per
repository with a short failure TTL to respect API rate limits.
2026-06-13 04:05:09 +08:00
LTbinglingfeng
40f4b8b856
feat(pluginstore): fetch and install plugins from latest release
...
Replace the tag-pinned release lookup with the repository latest
release endpoint. Derive the plugin version from the release tag,
validate it, and attach an optional token to API requests to raise
the rate limit.
2026-06-13 04:00:05 +08:00
LTbinglingfeng
e38ba28db5
feat(pluginstore): add plugin store support
2026-06-12 23:15:00 +08:00
Supra4E8C
a64141a9a6
fix(tests): remove obsolete config_auth_index_test file
2026-04-18 17:22:16 +08:00
Supra4E8C
c26936e2e6
fix(management): stabilize auth-index mapping
2026-04-18 17:12:14 +08:00
Supra4E8C
894baad829
feat(api): integrate auth index into key retrieval endpoints for Gemini, Claude, Codex, OpenAI, and Vertex
2026-04-18 16:44:33 +08:00
Supra4E8C
5331d51f27
fix(auth): ensure absolute paths for auth file handling
2026-03-22 13:58:16 +08:00
Supra4E8C
a9d0bb72da
feat(registry): add Qwen 3.5 Plus model definitions
2026-02-16 22:55:37 +08:00
Supra4E8C
d1f667cf8d
feat(registry): add support for 'kimi' channel in model definitions
2026-02-15 15:21:33 +08:00
LTbinglingfeng
fc7b6ef086
fix(kimi): add OAuth model-alias channel support and cover OAuth excluded-models with tests
2026-02-07 01:16:39 +08:00
LTbinglingfeng
5e5d8142f9
fix(auth): error when antigravity refresh token missing during refresh
2026-01-07 01:09:50 +08:00
LTbinglingfeng
b01619b441
fix(management): refresh antigravity token for api-call $TOKEN$
2026-01-07 00:14:02 +08:00
Supra4E8C
cd22c849e2
feat(management): 更新OAuth模型映射的清理逻辑以增强数据安全性
2026-01-04 17:57:34 +08:00
Supra4E8C
f0e73efda2
feat(management): add vertex api key and oauth model mappings endpoints
2026-01-04 17:32:00 +08:00
Supra4E8C
3156109c71
feat(management): 支持管理接口调整日志大小/强制前缀/路由策略
2026-01-04 12:21:49 +08:00
Supra4E8C
06ddf575d9
fix(antigravity): inject required placeholder when properties exist without required
2025-12-29 23:55:59 +08:00
Supra4E8C
781bc1521b
fix(oauth): prevent stale session timeouts after login
...
- stop callback forwarders by instance to avoid cross-session shutdowns
- clear pending sessions for a provider after successful auth
2025-12-21 10:48:40 +08:00
Supra4E8C
05d201ece8
fix(gemini): gate callback prompt on project_id
2025-12-21 07:21:12 +08:00
Supra4E8C
cd0c94f48a
fix(sdk/auth): prevent OAuth manual prompt goroutine leak,Use timer-based manual prompt per provider and remove oauth_callback helper.
2025-12-21 07:06:28 +08:00
Supra4E8C
24970baa57
management: allow prefix updates in provider PATCH handlers
2025-12-21 02:14:28 +08:00
Supra4E8C
9855615f1e
fix(gemini): avoid stale manual oauth prompt and accept schemeless callbacks
2025-12-20 19:03:38 +08:00
Supra4E8C
93414f1baa
feat (auth): CLI OAuth supports pasting callback URLs to complete login
...
- Added callback URL resolution and terminal prompt logic
- Codex/Claude/iFlow/Antigravity/Gemini login supports callback URL or local callback completion
- Update Gemini login option signature and manager call
- CLI default prompt function is compatible with null input to continue waiting
2025-12-20 18:25:55 +08:00
Supra4E8C
1b358c931c
fix: restore get-auth-status ok fallback and document it
2025-12-19 12:15:22 +08:00
Supra4E8C
cfa8ddb59f
feat(oauth): add remote OAuth callback support with session management
...
Introduce a centralized OAuth session store with TTL-based expiration
to replace the previous simple map-based status tracking. Add a new
/api/oauth/callback endpoint that allows remote clients to relay OAuth
callback data back to the CLI proxy, enabling OAuth flows when the
callback cannot reach the local machine directly.
- Add oauth_sessions.go with thread-safe session store and validation
- Add oauth_callback.go with POST handler for remote callback relay
- Refactor auth_files.go to use new session management APIs
- Register new callback route in server.go
2025-12-19 00:38:29 +08:00