hkfires
1bbbd16df6
chore(logging): clarify 429 rate-limit retries in Gemini executor
2025-10-29 19:19:18 +08:00
hkfires
5cb378256b
feat(gemini-translators): set include_thoughts when mapping thinking
2025-10-29 19:19:18 +08:00
hkfires
3ac5f05e8c
feat(gemini): prefer official reasoning fields, add extra_body(cherry studio) fallback
2025-10-29 19:19:18 +08:00
hkfires
58d30369b4
fix(gemini-cli): correctly strip/normalize thinking config by model
2025-10-29 19:19:18 +08:00
hkfires
7dd93a4a25
fix(executor): only apply thinking config to supported models
2025-10-29 19:19:17 +08:00
hkfires
2a3ee8d0e3
fix(translators): normalize thinking budgets
2025-10-29 19:19:17 +08:00
hkfires
41577bce07
feat(claude): map Anthropic 'thinking' to Gemini thinkingBudget
2025-10-29 19:19:17 +08:00
hkfires
3d7aca22c0
feat(registry): add thinking budget support; populate Gemini models
2025-10-29 19:19:17 +08:00
hkfires
680b3f5010
fix(translator): avoid default thinkingConfig in Gemini requests
2025-10-29 19:19:17 +08:00
hkfires
c99d0dfb33
fix(aistudio): remove no-op executor unregister on WS disconnect
2025-10-28 19:51:05 +08:00
hkfires
663b9b35ab
fix(executor): pass authID to relay instead of provider
2025-10-28 19:28:26 +08:00
hkfires
5dced4c0a6
feat(registry): unify Gemini models and add AI Studio set
2025-10-28 19:00:25 +08:00
hkfires
e370f86f63
fix(gemini-executor): uppercase responseModalities
2025-10-26 21:26:15 +08:00
hkfires
7f266aa19e
fix(aistudio): ensure colon-spaced JSON in responses
2025-10-26 20:21:45 +08:00
hkfires
f3f31274e8
refactor(wsrelay): rename RoundTrip to NonStream
2025-10-26 20:01:46 +08:00
hkfires
7061cd6058
fix(gemini): map responseModalities to uppercase IMAGE/TEXT
2025-10-26 19:35:22 +08:00
hkfires
7459c2c81a
fix(aistudio): remove generationConfig and tools when action is countTokens
2025-10-26 16:28:20 +08:00
hkfires
359b8de44e
feat(ws): add WebSocket auth
2025-10-26 07:46:04 +08:00
hkfires
ea6065f1b1
fix(aistudio): strip usage metadata from non-final stream chunks
2025-10-26 07:46:04 +08:00
hkfires
8aaed4cf09
feat(aistudio): support non-streaming responses
2025-10-26 07:46:04 +08:00
hkfires
c32e013605
feat(aistudio): track Gemini usage and improve stream errors
2025-10-26 07:46:04 +08:00
hkfires
3839d93ba0
feat: add websocket routing and executor unregister API
...
- Introduce Server.AttachWebsocketRoute(path, handler) to mount websocket
upgrade handlers on the Gin engine.
- Track registered WS paths via wsRoutes with wsRouteMu to prevent
duplicate registrations; initialize in NewServer and import sync.
- Add Manager.UnregisterExecutor(provider) for clean executor lifecycle
management.
- Add github.com/gorilla/websocket v1.5.3 dependency and update go.sum.
Motivation: enable services to expose WS endpoints through the core server
and allow removing auth executors dynamically while avoiding duplicate
route setup. No breaking changes.
2025-10-26 07:46:03 +08:00
hkfires
f8dcd707a6
feat(mgmt): support YAML config retrieval and updates via /config.yaml
2025-10-19 21:56:29 +08:00
hkfires
4504ba5329
feat(iflow): add masked token logs; increase refresh lead to 24h
2025-10-19 10:56:29 +08:00
hkfires
d16599fa1d
feat: prefer util.WritablePath() for logs and local storage
2025-10-19 10:19:55 +08:00
hkfires
9f45806106
feat(logging): centralize sensitive header masking
2025-10-18 17:16:00 +08:00
hkfires
9319602812
UPDATE README
2025-10-16 22:57:44 +08:00
Chén Mù and GitHub
8e95c5e0a8
Merge pull request #134 from router-for-me/hg
...
feat(managementasset): add MANAGEMENT_STATIC_PATH override
2025-10-16 22:25:05 +08:00
hkfires
93f0e65cef
docs: document MANAGEMENT_STATIC_PATH for management.html location
2025-10-16 22:15:17 +08:00
hkfires
c75e524fe5
feat(managementasset): add MANAGEMENT_STATIC_PATH override
2025-10-16 21:52:59 +08:00
Chén Mù and GitHub
f58d0faf8c
Merge pull request #130 from router-for-me/log
...
feat(management): add log retrieval and cleanup endpoints
2025-10-16 12:39:06 +08:00
hkfires
df3b00621a
fix(logs): ignore ENOENT when truncating default log file
2025-10-16 12:35:29 +08:00
hkfires
72cb2689e8
feat(management): add log retrieval and cleanup endpoints
2025-10-16 11:55:58 +08:00
hkfires
84fa497169
fix(server): snapshot config with YAML to handle in-place mutations
...
- Add oldConfigYaml to store previous config snapshot
- Rebuild oldCfg from YAML in UpdateClients for reliable change detection
- Initialize and refresh snapshot on startup and after updates
- Prevents change detection bugs when Management API mutates cfg in place
- Import gopkg.in/yaml.v3
2025-10-15 18:26:23 +08:00
hkfires
9ef76dcc61
Add Object Storage
2025-10-15 11:47:35 +08:00
hkfires
1cd275f4c1
Merge branch 'dev'
2025-10-14 15:47:39 +08:00
hkfires
4bc1ed6031
feat(config): use block style for YAML maps/lists; keep [] for empty
2025-10-14 15:43:58 +08:00
hkfires
78989d6c0d
feat(store)!: Lock AuthDir when use gitstore/pgstore
2025-10-14 15:43:58 +08:00
hkfires
d6aa1e5ba0
fix(postgresstore): normalize config line endings for DB/disk writes
2025-10-14 15:43:58 +08:00
hkfires
50c1c50dbd
docs: document PostgreSQL-backed config/token store
2025-10-14 15:43:58 +08:00
hkfires
5123cfd47e
feat(store): add PostgreSQL-backed config store with env selection
2025-10-14 15:43:58 +08:00
Chén Mù and GitHub
9072accc43
Merge pull request #118 from router-for-me/config
...
feat(config): use block style for YAML maps/lists
2025-10-14 13:44:00 +08:00
hkfires
0d8134aabe
feat(config): use block style for YAML maps/lists; keep [] for empty
2025-10-14 13:17:04 +08:00
Chén Mù and GitHub
4fdbdf7925
Merge pull request #117 from router-for-me/pg
...
feat(store): add PostgreSQL-backed config store with env selection
2025-10-14 11:28:19 +08:00
hkfires
50c84485c3
feat(store)!: Lock AuthDir when use gitstore/pgstore
2025-10-14 10:46:45 +08:00
hkfires
f335aeeedb
fix(postgresstore): normalize config line endings for DB/disk writes
2025-10-14 08:38:15 +08:00
hkfires
61f6a612e3
docs: document PostgreSQL-backed config/token store
2025-10-13 22:31:01 +08:00
hkfires
42087d5387
feat(store): add PostgreSQL-backed config store with env selection
2025-10-13 21:05:43 +08:00
hkfires
39abde2413
refactor(watcher): remove redundant quota-exceeded change logs
2025-10-13 14:02:55 +08:00
hkfires
0aa8706ef7
feat(config): Treat empty BaseURL for Codex keys as deletion
2025-10-13 13:48:27 +08:00
hkfires
5fd4a8b974
feat(config): Remove OpenAI providers with empty BaseURL
2025-10-13 13:48:27 +08:00
hkfires
06e6f0a5f2
refactor(watcher): Extract config change logging to new function
2025-10-13 13:48:27 +08:00
hkfires
b5ad978d44
feat(managementasset): Authenticate GitHub API requests
2025-10-12 21:21:51 +08:00
hkfires
4c033b3af7
feat(config): disable logging and usage stats by default
2025-10-11 22:11:08 +08:00
hkfires
843a81f68d
fix(server): Handle empty/invalid config in cloud deploy mode
2025-10-11 22:07:08 +08:00
hkfires
fc6aa8ef77
feat(config): Gracefully handle empty or invalid optional config
2025-10-11 20:49:15 +08:00
hkfires
c3f88126e6
refactor(provider): remove Gemini Web cookie-based support
2025-10-11 12:56:07 +08:00
hkfires
b895018ff5
refactor(provider): remove Gemini Web cookie-based provider
2025-10-11 12:53:03 +08:00
hkfires
78738ca3f0
fix(config): treat directory as absent for optional config in cloud deploy mode
2025-10-10 19:40:02 +08:00
hkfires
ac01c74c02
feat(server): Add cloud deploy mode
2025-10-10 18:52:43 +08:00
hkfires
01be94a0de
feat(translator): Map OpenAI modalities to Gemini responseModalities
2025-10-09 19:38:07 +08:00
hkfires
d1933075c3
Revert "feat(translator): Pass through imageConfig"
2025-10-09 16:35:08 +08:00
hkfires
a602ae859b
feat(translator): Add support for openrouter image_config
2025-10-09 15:47:06 +08:00
hkfires
c5d7137d66
feat(translator): Pass through imageConfig
2025-10-09 13:50:43 +08:00
hkfires
514f5a8ad4
feat(cliproxy): Rebind auth executors on config change
2025-10-07 21:23:21 +08:00
hkfires
75d7763c5c
refactor(gemini-web): Rename flash image preview model ID
2025-10-07 20:35:53 +08:00
hkfires
9bb7df7af7
feat(gemini-web): Enable config hot-reload and fix Gem selection
2025-10-07 20:23:33 +08:00
hkfires
43665cb649
feat(gemini-web): Replace code-mode with flexible gem-mode
2025-10-07 19:36:22 +08:00
hkfires
31659c790d
feat(translator/gemini-cli): support inline image data in responses
2025-10-06 17:06:04 +08:00
hkfires
c62ecc2442
fix(gemini): Disable thinking config for incompatible models
2025-10-06 16:32:03 +08:00
hkfires
8ca041cfcf
feat(auth): Use user info for iFlow auth identifier
2025-10-05 20:11:30 +08:00
hkfires
eac8b1a27f
fix(auth): Correct iFlow OAuth callback port to 11451
2025-10-05 18:53:22 +08:00
hkfires
c8029b7166
feat(iflow): Add User-Agent header to API requests
2025-10-05 18:50:35 +08:00
hkfires
64f4c18fea
fix(auth): Return error if iFlow API key fetch fails
2025-10-05 16:34:27 +08:00
hkfires
9abcaf177f
feat(registry): Add display names and descriptions for iFlow models
2025-10-05 16:11:40 +08:00
hkfires
b839e351c4
feat: Add support for iFlow provider
2025-10-05 15:51:09 +08:00
hkfires
4657c98821
feat: Add option to disable management control panel
2025-10-04 19:55:07 +08:00
hkfires
dd1e0da155
fix(cliproxy): Use model name as fallback for ID if alias is empty
2025-10-04 19:42:11 +08:00
hkfires
cf9a748159
fix(watcher): Prevent infinite reload loop on rapid config changes
2025-10-04 13:58:15 +08:00
hkfires
2e328dd462
feat(management): Improve logging for management route status
2025-10-04 13:48:34 +08:00
hkfires
edd4b4d97f
refactor(api): Lazily register management routes
2025-10-04 13:41:49 +08:00
hkfires
608d745159
fix(api): Enable management routes based on secret key presence
2025-10-04 13:32:54 +08:00
hkfires
fd795caf76
refactor(api): Use middleware to control management route availability
...
Previously, management API routes were conditionally registered at server startup based on the presence of the `remote-management-key`. This static approach meant a server restart was required to enable or disable these endpoints.
This commit refactors the route handling by:
1. Introducing an `atomic.Bool` flag, `managementRoutesEnabled`, to track the state.
2. Always registering the management routes at startup.
3. Adding a new `managementAvailabilityMiddleware` to the management route group.
This middleware checks the `managementRoutesEnabled` flag for each request, rejecting it if management is disabled. This change provides the same initial behavior but creates a more flexible architecture that will allow for dynamically enabling or disabling management routes at runtime in the future.
2025-10-04 13:08:08 +08:00
hkfires
f2201dabfa
feat(gemini-web): Index and look up conversations by suffix
2025-09-30 12:21:51 +08:00
hkfires
108dcb7f70
fix(gemini-web): Correct history on conversation reuse
2025-09-30 12:21:51 +08:00
hkfires
8858e07d8b
feat(gemini-web): Add support for custom auth labels
2025-09-30 12:21:51 +08:00
hkfires
d33a89b89f
fix(gemini-web): Ignore tool messages to fix sticky selection
2025-09-30 12:21:51 +08:00
hkfires
1d70336a91
fix(gemini-web): Correct ambiguity check in conversation lookup
2025-09-30 12:21:51 +08:00
hkfires
6080527e9e
feat(gemini-web): Namespace conversation index by account label
2025-09-30 12:21:51 +08:00
hkfires
82187bffba
feat(gemini-web): Add conversation affinity selector
2025-09-30 12:21:51 +08:00
hkfires
f4977e5ef6
Ignore GEMINI.md file
2025-09-30 12:21:51 +08:00
hkfires
ad4d045101
feat: Restore API key config in config file
2025-09-28 09:11:58 +08:00
hkfires
5888e04654
refactor(cliproxy): remove unused access provider refresh logic
2025-09-28 08:59:17 +08:00
hkfires
19b10cb894
feat(sdk/auth): extend Gemini Web refresh lead to 1 hour
2025-09-28 08:40:32 +08:00
hkfires
aa25820698
chore(log): Refine debug messages for config reloads
2025-09-28 08:40:25 +08:00
hkfires
da72ac1f6d
fix(config): Inline SDKConfig for proper YAML parsing
2025-09-27 12:23:20 +08:00
hkfires
f9a170a3c4
chore(watcher): Clarify API key client reload log message
2025-09-27 11:25:40 +08:00
hkfires
88f06fc305
feat(watcher): Log detailed diff for openai-compatibility on reload
2025-09-27 11:15:30 +08:00
hkfires
562a49a194
feat(provider/gemini-web): Prioritize explicit label for account identification
2025-09-27 10:56:15 +08:00
hkfires
6136a77eb3
refactor(util): Centralize auth directory path resolution
...
Introduces a new utility function, `util.ResolveAuthDir`, to handle the normalization and resolution of the authentication directory path.
Previously, the logic for expanding the tilde (~) to the user's home directory was implemented inline in `main.go`. This refactoring extracts that logic into a reusable function within the `util` package.
The new `ResolveAuthDir` function is now used consistently across the application:
- During initial server startup in `main.go`.
- When counting authentication files in `util.CountAuthFiles`.
- When the configuration is reloaded by the watcher.
This change eliminates code duplication, improves consistency, and makes the path resolution logic more robust and maintainable.
2025-09-27 09:06:51 +08:00