• 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
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
AGENTS.md 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...