Commit Graph
753 Commits
Author SHA1 Message Date
LTbinglingfeng b9b45e9034 feat(plugins): implement plugin deletion functionality with confirmation and error handling 2026-06-13 22:42:16 +08:00
LTbinglingfeng fa93d2e77b feat(pluginStore): add expandable description for plugins with toggle functionality 2026-06-13 13:17:27 +08:00
LTbinglingfeng 1dcf8fefe9 feat(logs): enhance log fetching with pagination and improve data normalization 2026-06-13 12:48:55 +08:00
LTbinglingfeng e99741ad7c feat(plugins): add event handling for plugin resource refresh and notification 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 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
LTbinglingfeng 947f9f880a feat: add plugin management feature with internationalization support
- Introduced new plugin management section in the application.
- Added translations for English, Russian, Simplified Chinese, and Traditional Chinese.
- Created new API endpoints for managing plugins, including listing, enabling/disabling, and configuring plugins.
- Updated routing to include a dedicated PluginsPage.
- Defined new types for plugin configuration and metadata in TypeScript.
- Enhanced the existing API client to handle plugin-related requests.
2026-06-11 01:45:10 +08:00
LTbinglingfeng 4586b1dec2 feat(logs): enhance error log viewer with open, copy, and download functionalities 2026-06-11 00:14:28 +08:00
LTbinglingfeng 483dad692b feat(uiState): implement provider UI state management with persistence 2026-06-10 18:55:46 +08:00
LTbinglingfeng 7f48799b69 fix(quota): hide duplicate idle card refresh action 2026-06-10 18:49:16 +08:00
LTbinglingfeng fa54b443e6 Merge remote-tracking branch 'origin/pr/311' into dev 2026-06-10 18:48:21 +08:00
LTbinglingfeng bc526a6924 Merge PR #300: feat: add fullscreen logs view 2026-06-10 17:19:46 +08:00
LTbinglingfeng 9c8690865e feat(toolbar): implement provider resource toolbar with sorting and filtering functionality 2026-06-10 16:53:16 +08:00
LTbinglingfeng a04ffb5298 feat(connectivity): add Gemini support and enhance test model handling 2026-06-10 16:33:20 +08:00
LTbinglingfeng 73066b517c feat(i18n): update provider keys detail and add duplicate alias message in multiple locales
feat(authFiles): refactor OAuth provider handling and improve alias validation

feat(config): implement unsaved changes guard in ConfigPage

feat(dashboard): extend provider stats to include vertex and ampcode

fix(logs): enhance incremental log merging and improve error handling

feat(system): format build time display using utility functions

feat(api): normalize OAuth provider keys in authFiles API

feat(provider): update OpenAI provider deletion method to use index

feat(format): add date formatting utilities for better date handling
2026-06-10 16:17:40 +08:00
MarvekG d0bb21000b feat(quota): add card refresh actions 2026-06-05 14:35:01 +00:00
LTbinglingfeng 657e5a82cb feat(provider-sheet): add mutationDisabled prop to control form submission 2026-06-02 22:07:21 +08:00
hkfires 8eada1cd2c feat(logs): enhance logging functionality and UI updates
- Refactored MainLayout to always show logs in the sidebar.
- Updated i18n files for English, Russian, Simplified Chinese, and Traditional Chinese to include new log-related messages.
- Improved LogsPage styling for better layout and added runtime notices.
- Enhanced LogsPage logic to handle different server runtime kinds (CPA and Home).
- Added new API methods to handle logs fetching and request log downloading with runtime checks.
- Introduced runtime kind detection during authentication and connection status updates.
- Updated types to include server runtime kind and adjusted API responses accordingly.
2026-06-02 16:52:14 +08:00
HYec 60092f3da0 feat: add fullscreen logs view 2026-06-01 16:38:34 +00:00
LTbinglingfeng 75da30311a refactor(forms): streamline imports and improve state handling for API keys 2026-06-01 00:22:09 +08:00