Add local full-stack development section (pnpm dev:local) and move detailed content (credentials, CLI, skills/tools, time injection, development guide) into separate docs/ files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Development Guide
Dev Commands
pnpm dev # Desktop app (recommended)
pnpm dev:desktop # Same as above
pnpm dev:gateway # Gateway only
pnpm dev:web # Web app only
pnpm dev:all # Gateway + Web
pnpm build # Production build (turbo-orchestrated)
pnpm typecheck # Type check all packages
pnpm test # Run tests
pnpm test:watch # Watch mode
pnpm test:coverage # With v8 coverage
Local Full-Stack Development
pnpm dev:local starts Gateway + Desktop + Web together with isolated data directories.
Setup:
- Copy
.env.exampleto.envat the repo root - Fill in
TELEGRAM_BOT_TOKEN(get from @BotFather) - Run
pnpm dev:local
| Service | Address | Notes |
|---|---|---|
| Gateway | http://localhost:4000 |
Telegram long-polling mode |
| Web | http://localhost:3000 |
OAuth login flow |
| Desktop | — | Connects to local Gateway + Web |
Data is stored in ~/.super-multica-dev and ~/Documents/Multica-dev, isolated from production.
pnpm dev:local:archive # Archive dev data and start fresh
Environment Configuration
Desktop (apps/desktop/.env.*):
| Variable | Description |
|---|---|
MAIN_VITE_GATEWAY_URL |
WebSocket Gateway URL for remote device pairing |
MAIN_VITE_WEB_URL |
Web app URL for OAuth login redirect |
Web (apps/web/next.config.ts):
| Variable | Description |
|---|---|
API_URL |
Backend API URL (default: https://api-dev.copilothub.ai) |
Build for different environments:
# Desktop
pnpm --filter @multica/desktop build # Production (.env.production)
pnpm --filter @multica/desktop build:staging # Staging (.env.staging)
# Web (Vercel)
# Set API_URL in Vercel Dashboard → Settings → Environment Variables
See apps/desktop/.env.example for the full variable reference.
Monorepo Workflow
| Command | Purpose |
|---|---|
pnpm dev |
Full dev mode — watches core, types, utils packages |
pnpm dev:desktop |
Desktop only — skip package watching |
When modifying packages:
- Edit code in
packages/core,packages/types, orpackages/utils - Terminal shows
[core] ESM ⚡️ Build success(~100ms) - Restart Desktop to apply changes (Ctrl+C, then
pnpm dev)
Why restart? Electron main process does not support hot reload — this is an Electron limitation, not ours.