Commit Graph

2 Commits

  • refactor(types): rename AppType to AppId for semantic clarity
    Rename `AppType` to `AppId` across the entire frontend codebase to better
    reflect its purpose as an application identifier rather than a type category.
    This aligns frontend naming with backend command parameter conventions.
    
    Changes:
    - Rename type `AppType` to `AppId` in src/lib/api/types.ts
    - Remove `AppType` export from src/lib/api/index.ts
    - Update all component props from `appType` to `appId` (43 files)
    - Update all variable names from `appType` to `appId`
    - Synchronize documentation (CHANGELOG, refactoring plans)
    - Update test files and MSW mocks
    
    BREAKING CHANGE: `AppType` type is no longer exported. Use `AppId` instead.
    All component props have been renamed from `appType` to `appId`.
  • fix(providers): preserve custom endpoints in meta during add/edit operations
    Fixed two critical data loss bugs where user-added custom endpoints were discarded:
    
    1. **AddProviderDialog**: Form submission ignored values.meta from ProviderForm and
       re-inferred URLs only from presets/config, causing loss of endpoints added via
       speed test modal. Now prioritizes form-collected meta and uses fallback inference
       only when custom_endpoints is missing.
    
    2. **ProviderForm**: Edit mode always returned initialData.meta, discarding any
       changes made in the speed test modal. Now uses mergeProviderMeta to properly
       merge customEndpointsMap with existing meta fields.
    
    Changes:
    - Extract mergeProviderMeta utility to handle meta field merging logic
    - Preserve other meta fields (e.g., usage_script) during endpoint updates
    - Unify new/edit code paths to use consistent meta handling
    - Add comprehensive unit tests for meta merging scenarios
    - Add integration tests for AddProviderDialog submission flow
    
    Impact:
    - Third-party and custom providers can now reliably manage multiple endpoints
    - Edit operations correctly reflect user modifications
    - No data loss for existing meta fields like usage_script