922 Commits
Author SHA1 Message Date
Supra4E8C 32699c909d Merge pull request #321 from router-for-me/feat/config-editor-simple-full-mode
Feat/config editor simple full mode
v1.17.0
2026-06-19 03:34:32 +08:00
LTbinglingfeng 1a8e0595b5 fix(config): improve handling of jump requests and enhance collapsible component state management 2026-06-19 03:34:03 +08:00
LTbinglingfeng a1d2e11677 feat(search): enhance keyboard navigation and highlight for search results 2026-06-19 03:20:55 +08:00
LTbinglingfeng 96e41f5975 fix(config): jump correctly across horizontally snapped sections
Field-search jumps used a single scrollIntoView that fought the full-mode sections' horizontal scroll-snap (scroll-snap-type: x mandatory + scroll-snap-align: start), so jumping from one section to a field in another landed on the wrong place. Switch the snap container to the target section instantly first, then scroll the field vertically with inline:'nearest' on the next frame so it can't re-trigger horizontal snapping.
2026-06-19 01:59:18 +08:00
LTbinglingfeng aa114b2643 feat: add search index for visual config editor and update i18n translations
- Introduced a new search index for the visual config editor to facilitate "jump to field" functionality.
- Added a `searchConfigFields` function to perform searches over labels, hints, YAML keys, and keywords.
- Updated English, Russian, Simplified Chinese, and Traditional Chinese translations to include search-related strings.
2026-06-19 01:38:28 +08:00
LTbinglingfeng b5344a7586 refactor(config): flatten advanced section and card-style simple-mode fields
- Drop the inner Collapsible in the advanced section; surface Plugins and Antigravity Signature as labeled sub-groups instead of a nested disclosure
- Wrap bare simple-mode inputs in .simpleField cards for visual consistency with toggle rows and API-key blocks
2026-06-19 01:03:03 +08:00
LTbinglingfeng 9a154c7a84 feat(config): add simple/full editor modes and task-oriented sections
Default to a compact simple mode that surfaces only high-frequency fields (port, API keys, proxy, debug, log-to-file, quota fallbacks). Full mode reorganizes the visual editor into 7 task-oriented sections (connectivity, network, logging, quota, streaming, advanced, payload), promoting network to top level and collapsing TLS/remote, the advanced group, and each payload rule group by default. Mode choice persists in localStorage. Presentation-only: field semantics, onChange, and YAML sync are unchanged.
2026-06-18 23:58:04 +08:00
LTbinglingfeng 069eaf21b7 feat(quota): add subscription management and localization for Antigravity plans v1.16.11 2026-06-17 23:01:52 +08:00
LTbinglingfeng c74fa6d400 feat(quota): add Xai plan resolution and localization for SuperGrok plans v1.16.10 2026-06-17 13:52:09 +08:00
LTbinglingfeng 2d77fbe13c feat(quota): rename and update Xai usage formatting to reflect remaining amount 2026-06-17 13:46:59 +08:00
LTbinglingfeng d9045a7d01 feat(authFiles): add premium subscription badge styling and support 2026-06-17 13:44:03 +08:00
LTbinglingfeng c595ada80d feat(antigravity): add subscription management with UI integration and localization support v1.16.9 2026-06-17 13:14:04 +08:00
LTbinglingfeng e95cc2b621 feat(quota): enhance quota management with new data structures and improved UI components v1.16.8 2026-06-17 12:30:03 +08:00
LTbinglingfeng dbeefda721 fix(plugins): poll runtime state after plugin changes 2026-06-17 01:10:18 +08:00
LTbinglingfeng b0db1dfd5d feat(logs): enhance log fetching with incremental support using cursor and after parameters v1.16.7 2026-06-15 22:51:08 +08:00
LTbinglingfeng 1279cc1299 feat(pluginStore): add support for third-party plugin sources with localization and configuration updates 2026-06-15 17:23:54 +08:00
LTbinglingfeng cc16be4c7b feat(pluginInstall): enhance repository link display and update cautionary messages for third-party plugins 2026-06-15 15:23:05 +08:00
LTbinglingfeng b5d18d8ab5 feat(pluginStore): add default plugin store source identification and update localization strings 2026-06-15 14:36:09 +08:00
hkfires 729df08eca feat(logs): optimize fetchCompleteHomeLogs for improved pagination and performance v1.16.6 2026-06-15 07:53:29 +08:00
LTbinglingfeng 28ce5be3a6 feat(i18n): update expiration label to "Renewal time" in English, Simplified Chinese, and Traditional Chinese locales v1.16.5 2026-06-15 03:35:23 +08:00
LTbinglingfeng 67d3fe6221 feat(pluginInstall): add multi-step confirmation for third-party plugin installations with security warnings 2026-06-15 03:32:02 +08:00
LTbinglingfeng e4b872175e feat(quotaConfigs): update weekly window condition to include monthly windows 2026-06-15 01:43:42 +08:00
Supra4E8C ea018aefbd Merge pull request #316 from WenjieZhao1/fix/codex-team-weekly-quota-label
fix: label Codex secondary quota by window duration
2026-06-15 01:41:06 +08:00
LTbinglingfeng 6442c92784 feat(connectivityTest): add Codex connectivity test functionality and related state management 2026-06-15 01:40:31 +08:00
LTbinglingfeng 246069d128 feat(pluginStore): enhance plugin store entry with source information and update related functionality 2026-06-15 01:21:10 +08:00
LTbinglingfeng 22cbb91c2f feat(payloadRules): add raw JSON parameter styling and conditional class application 2026-06-15 01:05:18 +08:00
LTbinglingfeng 1969de4e28 Refactor: Remove Ampcode integration and related configurations
- Updated BaseProviderForm to accept all ProviderBrand types.
- Removed Ampcode references from ProviderResource and related types.
- Deleted ampcode API service and its associated methods.
- Cleaned up transformers by removing Ampcode normalization functions.
- Updated configuration store to eliminate Ampcode section.
- Adjusted DashboardPage to remove Ampcode-related statistics.
- Removed Ampcode localization strings from all language files.
2026-06-15 00:51:57 +08:00
“Jack 8891994ebf fix: label codex secondary quota by window duration 2026-06-14 15:08:40 +00:00
LTbinglingfeng b9b45e9034 feat(plugins): implement plugin deletion functionality with confirmation and error handling v1.16.4 2026-06-13 22:42:16 +08:00
LTbinglingfeng fa93d2e77b feat(pluginStore): add expandable description for plugins with toggle functionality v1.16.3 2026-06-13 13:17:27 +08:00
LTbinglingfeng 1dcf8fefe9 feat(logs): enhance log fetching with pagination and improve data normalization v1.16.2 2026-06-13 12:48:55 +08:00
LTbinglingfeng e99741ad7c feat(plugins): add event handling for plugin resource refresh and notification v1.16.1 2026-06-13 06:17:50 +08:00
LTbinglingfeng b273569f00 feat(visualConfig): add utility to check for dirty payload fields in visual config 2026-06-13 06:15:00 +08:00
LTbinglingfeng eb32567619 feat(plugins): add delay for loading plugins after mutation and improve loading state handling 2026-06-13 06:08:48 +08:00
LTbinglingfeng e62ed4dbac feat(provider): add support for disable cooling feature and enhance model configuration options 2026-06-13 06:02:15 +08:00
LTbinglingfeng b75d4084aa feat(config): add plugin system configuration options and localization support 2026-06-13 05:32:16 +08:00
LTbinglingfeng 6bca83f70a refactor(plugins): enhance plugin configuration handling and improve error messages 2026-06-13 05:20:30 +08:00
LTbinglingfeng 227a5679ad refactor(plugin): add support for plugin feature detection and routing 2026-06-13 04:31:20 +08:00
LTbinglingfeng 6513903ff5 refactor(quota): add monthly limits for team plans in quota windows v1.16.0 2026-06-13 02:43:56 +08:00
LTbinglingfeng c63c43c3a4 refactor(hooks): share floating action-bar height syncing
AuthFilesPage and ConfigPage duplicated the ResizeObserver-to-CSS-variable wiring for their bottom action bars; extract useActionBarHeightVar and use it in both.
2026-06-13 02:30:52 +08:00
LTbinglingfeng a984ce6ab7 refactor(layout): share popup menu dismiss handling
The language and theme menus carried two identical outside-click/Escape effects; fold them into one useMenuDismiss hook.
2026-06-13 02:28:40 +08:00
LTbinglingfeng bbd69ffa81 refactor(auth-files): reuse shared provider type label in OAuth edit pages
Both edit pages re-implemented getTypeLabel locally although the authFiles constants module already exports it (with provider-key normalization on top).
2026-06-13 02:27:43 +08:00
LTbinglingfeng ac9cc45736 refactor(config): table-drive scalar dirty-field tracking
getNextDirtyFields already had an updateScalarDirty list for twenty fields but spelled out twenty-seven more as identical hasOwnProperty/=== blocks. Fold them into the list; payload-rule and nested streaming comparisons keep their custom equality checks.
2026-06-13 02:26:56 +08:00
LTbinglingfeng c79f58a4ac perf(dashboard): derive stats from the cached config
The dashboard fired eight requests on every visit although seven of them (management keys, per-provider key lists, ampcode) are already present on the normalized config it subscribes to. Keep only the auth-files fetch and read everything else from the store; fetchConfig() is deduped and TTL-cached.
2026-06-13 02:25:39 +08:00
LTbinglingfeng a4fcd76998 refactor(hooks): extract shared api-key resolution for model fetching
DashboardPage and SystemPage carried byte-identical copies of normalizeApiKeyList plus a per-connection cache for resolving the key used by /models probes. Move the logic into useApiKeysForModels and reuse it from both pages.
2026-06-13 02:21:46 +08:00
LTbinglingfeng 297e29bcf3 refactor(providers): drop redundant cache invalidation in workbench
useConfigStore.updateConfigValue already invalidates the section cache internally; the 16 clearCache calls issued right after it were no-ops.
2026-06-13 02:17:45 +08:00
LTbinglingfeng 5e7225da21 refactor(providers): expose model names and priority on the resource view model
The workbench page reached back into resource.raw with brand-specific parsing to derive model names and priority, bypassing the adapter layer. Normalize both in the adapters and consume the typed fields.
2026-06-13 02:15:43 +08:00
LTbinglingfeng f62b09a57b refactor(providers): share the brand logo map
ProviderCategoryList and ProviderResourcePanel each kept an identical brand-to-logo table; move it to a single module.
2026-06-13 02:14:00 +08:00
LTbinglingfeng d268be1400 refactor(providers): unify upstream base-url normalization
normalizeOpenAIBaseUrl, normalizeClaudeBaseUrl and normalizeGeminiBaseUrl were identical except for the empty-input fallback; collapse them into one helper with a fallback parameter.
2026-06-13 02:12:17 +08:00
LTbinglingfeng cd44dca9c0 refactor(utils): share isRecord and getErrorMessage helpers
isRecord was declared locally in 15 modules (with two divergent shapes) and getErrorMessage in 7. Move a single canonical pair into utils/helpers and import it everywhere. The shared isRecord excludes arrays; the call sites that previously allowed them only read named properties, so behavior is unchanged.
2026-06-13 02:11:21 +08:00