Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:28:42 +08:00
commit 8a4be47b6e
43 changed files with 10867 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
# Install Worktree
This command sets up an isolated worktree environment with custom port configuration.
## Parameters
- Worktree path: {0}
- Backend port: {1}
- Frontend port: {2}
## Read
- .env.sample (from parent repo)
- ./app/server/.env.sample (from parent repo)
- .mcp.json (from parent repo)
- playwright-mcp-config.json (from parent repo)
## Steps
1. **Navigate to worktree directory**
```bash
cd {0}
```
2. **Create port configuration file**
Create `.ports.env` with:
```
BACKEND_PORT={1}
FRONTEND_PORT={2}
VITE_BACKEND_URL=http://localhost:{1}
```
3. **Copy and update .env files**
- Copy `.env` from parent repo if it exists
- Append `.ports.env` contents to `.env`
- Copy `app/server/.env` from parent repo if it exists
- Append `.ports.env` contents to `app/server/.env`
4. **Copy and configure MCP files**
- Copy `.mcp.json` from parent repo if it exists
- Copy `playwright-mcp-config.json` from parent repo if it exists
- These files are needed for Model Context Protocol and Playwright automation
After copying, update paths to use absolute paths:
- Get the absolute worktree path: `WORKTREE_PATH=$(pwd)`
- Update `.mcp.json`:
- Find the line containing `"./playwright-mcp-config.json"`
- Replace it with `"${WORKTREE_PATH}/playwright-mcp-config.json"`
- Use a JSON-aware tool or careful string replacement to maintain valid JSON
- Update `playwright-mcp-config.json`:
- Find the line containing `"dir": "./videos"`
- Replace it with `"dir": "${WORKTREE_PATH}/videos"`
- Create the videos directory: `mkdir -p ${WORKTREE_PATH}/videos`
- This ensures MCP configuration works correctly regardless of execution context
5. **Install backend dependencies**
```bash
cd app/server && uv sync --all-extras
```
6. **Install frontend dependencies**
```bash
cd ../client && bun install
```
7. **Setup database**
```bash
cd ../.. && ./scripts/reset_db.sh
```
## Error Handling
- If parent .env files don't exist, create minimal versions from .env.sample files
- Ensure all paths are absolute to avoid confusion
## Report
- List all files created/modified (including MCP configuration files)
- Show port assignments
- Confirm dependencies installed
- Note any missing parent .env files that need user attention
- Note any missing MCP configuration files
- Show the updated absolute paths in:
- `.mcp.json` (should show full path to playwright-mcp-config.json)
- `playwright-mcp-config.json` (should show full path to videos directory)
- Confirm videos directory was created