• Adeniji Adekunle James's avatar
    Pick different location for storing dyad-apps (#2000) · 2dc478cd
    Adeniji Adekunle James 提交于
    To do list:
    Clean up and try to reuse the existing fnc to avoid altering many files.
    
    Closes #1991 
    
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Let users pick where each app is stored and move apps safely. Adds a
    simple “Change location” flow, supports absolute paths, and shows each
    app’s resolved path.
    
    - **New Features**
    - Paths: getDyadAppPath accepts absolute paths; apps include
    resolvedPath; removed global appBasePath from list-apps and state.
    - UI: App Details shows full path with “Show in folder” and a “Change
    location” dialog. We stop the app, copy without node_modules, check
    conflicts, and update DB to an absolute path.
    - IPC: Added select-app-location and change-app-location. Rename blocks
    absolute paths; copy/rename exclude node_modules; conflict checks use
    resolved paths.
      - Tests: Added e2e test for moving an app to a custom folder.
    
    <sup>Written for commit 8a417fb2b5a28efebed2778d8e5715180dfd6bc7.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    
    
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > Introduces per-app folder relocation with safety checks and exposes
    each app’s resolved path for clarity.
    > 
    > - **IPC/Backend**: Adds `select-app-location` and
    `change-app-location` to move app folders (stop app, validate absolute
    destination, conflict checks via `getDyadAppPath`, copy without
    `node_modules`, cleanup/rollback, store absolute `path`).
    `list-apps`/`get-app` now include `resolvedPath`. `getDyadAppPath`
    accepts absolute paths. `rename-app` forbids absolute targets, preserves
    dir for existing absolute paths, adds robust conflict checks and
    cleanup; copy/rename exclude `node_modules`.
    > - **UI**: App Details shows `resolvedPath`, adds "Move folder" dialog
    and "Show in folder" action; removes reliance on `appBasePath`.
    > - **Client/Preload**: `IpcClient` methods for new handlers; preload
    whitelists new channels.
    > - **Tests**: New e2e covers moving an app and verifying path update.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    8a417fb2b5a28efebed2778d8e5715180dfd6bc7. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    ---------
    Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
    2dc478cd
app-details.tsx 27.2 KB