908 Commits
Author SHA1 Message Date
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
Supra4E8CandGitHub 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
LTbinglingfeng 93f3b6b7ab perf(auth-files): sort locally without refetching the file list
Sorting is computed in a useMemo over already-loaded files; changing the sort mode does not need a network round-trip. Also drop a duplicated property read in the priority comparator.
2026-06-13 02:06:14 +08:00
LTbinglingfeng 521350505d refactor(login): drop ineffective guard around auto-login loading reset
The finally block read autoLoginSuccess from the mount-time closure, so the condition was always true and the guard never did anything. The splash stays visible through the autoLoginSuccess flag.
2026-06-13 02:05:21 +08:00
LTbinglingfeng 07cdc5a8c4 refactor(storage): remove unused helpers and legacy aliases
clear()/hasItem() and the secureStorage/encryptData/decryptData/isEncrypted aliases had no callers. migratePlaintextKeys now reuses isObfuscated instead of duplicating the prefix literal.
2026-06-13 02:04:45 +08:00
LTbinglingfeng 403c51c31b refactor(layout): drop transition rules for removed provider sub-routes
/ai-providers/* now redirects to the single workbench page, so the per-brand route ordering and the in-section slide variant can never apply. Generic prefix matching already covers the redirect flash.
2026-06-13 02:03:44 +08:00
LTbinglingfeng 9d908fcafd refactor(providers): remove dead issue and path scaffolding
snapshot.issues was always empty and group.issue always null, so the issue badges and warning panels could never render. group.path / PROVIDER_PATHS were written but never read. Strip the fields, their render branches and the orphan styles.
2026-06-13 02:02:43 +08:00
LTbinglingfeng 0b56b998a7 refactor(providers): remove unused index-based PATCH endpoints
updateGeminiKey, updateCodexConfig, updateClaudeConfig, updateVertexConfig and updateOpenAIProvider had no callers; the workbench saves whole lists via PUT and only updateOpenAIProviderDisabled is used for toggling.
2026-06-13 01:57:12 +08:00
LTbinglingfeng 242159b571 perf(quota): drop discarded config.yaml prefetch
The quota page fetched /config.yaml on mount and on every header refresh but ignored the response; quota sections never consume it. Remove the fetch to save a request per visit.
2026-06-13 01:56:07 +08:00
LTbinglingfeng 9fae287148 feat: add Plugin Store page for browsing and managing plugins
- Implemented PluginStorePage component for displaying available plugins.
- Added functionality to install and update plugins with user confirmation.
- Integrated plugin store API for fetching plugin data and handling installations.
- Enhanced PluginsPage to navigate to the new Plugin Store.
- Updated localization files for new plugin store strings in English, Russian, and Chinese.
- Added new types for plugin store entries and responses in TypeScript.
- Improved UI components and styles for better user experience in the plugin store.
2026-06-13 01:21:36 +08:00
LTbinglingfeng c7051aeb68 feat(quota): enhance quota reset functionality with UI updates and styling improvements 2026-06-12 17:38:47 +08:00
LTbinglingfeng f3959a0b19 feat(quota): implement manual quota reset functionality with confirmation and UI updates 2026-06-12 17:26:23 +08:00
LTbinglingfeng 67c4041939 feat(quota): add subscription expiry handling and improve UI elements 2026-06-12 17:03:19 +08:00
LTbinglingfeng 4b3daa0010 feat(plugins): enhance plugin logo handling with fallback and improve sidebar layout 2026-06-11 22:36:34 +08:00
LTbinglingfeng 7418fac6be feat(plugins): implement plugin resource management with dynamic routing and UI enhancements 2026-06-11 22:16:51 +08:00
LTbinglingfeng 848eefb6e8 feat(ui): restructure PluginsPage layout with improved styling and new section headers 2026-06-11 21:31:26 +08:00