docs: update copilot instructions with Docker container dev environment and Git workflow

- Emphasize Docker container development as required environment
- Add Docker Compose v2 usage with specific port mappings (9001:3000 dev, 9000:3000 prod)
- Define Git branch strategy: development branch for active work, main for stable code
- Include complete development workflow with Git commands
- Clarify external/internal port configuration for both environments
This commit is contained in:
mindesbunister
2025-07-18 10:28:02 +02:00
parent 451e6c87b3
commit 5bd2f97c26

View File

@@ -1,5 +1,3 @@
<!-- Use this file to provide workspace-specific custom instructions to Copilot. For more details, visit https://code.visualstudio.com/docs/copilot/copilot-customization#_use-a-githubcopilotinstructionsmd-file -->
# AI-Powered Trading Bot Dashboard # AI-Powered Trading Bot Dashboard
This is a Next.js 15 App Router application with TypeScript, Tailwind CSS, and API routes. It's a production-ready trading bot with AI analysis, automated screenshot capture, and real-time trading execution via Drift Protocol and Jupiter DEX. This is a Next.js 15 App Router application with TypeScript, Tailwind CSS, and API routes. It's a production-ready trading bot with AI analysis, automated screenshot capture, and real-time trading execution via Drift Protocol and Jupiter DEX.
@@ -11,28 +9,43 @@ This is a Next.js 15 App Router application with TypeScript, Tailwind CSS, and A
- **DIY Layout**: `vWVvjLhP` - Stochastic RSI (top), VWAP, OBV (bottom) - **DIY Layout**: `vWVvjLhP` - Stochastic RSI (top), VWAP, OBV (bottom)
- Parallel browser sessions for multi-layout capture in `lib/enhanced-screenshot.ts` - Parallel browser sessions for multi-layout capture in `lib/enhanced-screenshot.ts`
- TradingView automation with session persistence in `lib/tradingview-automation.ts` - TradingView automation with session persistence in `lib/tradingview-automation.ts`
- Session data stored in `.tradingview-session/` volume mount to avoid captchas
### AI Analysis Pipeline ### AI Analysis Pipeline
- OpenAI GPT-4o mini for cost-effective chart analysis (~$0.006 per analysis) - OpenAI GPT-4o mini for cost-effective chart analysis (~$0.006 per analysis)
- Multi-layout comparison and consensus detection - Multi-layout comparison and consensus detection in `lib/ai-analysis.ts`
- Professional trading setups with exact entry/exit levels and risk management - Professional trading setups with exact entry/exit levels and risk management
- Layout-specific indicator analysis (RSI vs Stochastic RSI, MACD vs OBV) - Layout-specific indicator analysis (RSI vs Stochastic RSI, MACD vs OBV)
### Trading Integration ### Trading Integration
- **Drift Protocol**: Perpetual futures trading via `@drift-labs/sdk` - **Drift Protocol**: Perpetual futures trading via `@drift-labs/sdk`
- **Jupiter DEX**: Spot trading on Solana - **Jupiter DEX**: Spot trading on Solana
- Position management and P&L tracking - Position management and P&L tracking in `lib/drift-trading-final.ts`
- Real-time account balance and collateral monitoring - Real-time account balance and collateral monitoring
## Critical Development Patterns ## Critical Development Patterns
### Docker Environment ### Docker Container Development (Required)
Use Docker for consistency: `npm run docker:dev` (port 9001) or `npm run docker:up` (port 9000) **All development happens inside Docker containers** using Docker Compose v2. Browser automation requires specific system dependencies that are only available in the containerized environment:
- Multi-stage builds with browser automation optimizations
- Session persistence via volume mounts ```bash
- Chromium path: `/usr/bin/chromium` # Development environment - Docker Compose v2 dev setup
npm run docker:dev # Port 9001:3000, hot reload, debug mode
# Production environment
npm run docker:up # Port 9000:3000, optimized build
# Debugging commands
npm run docker:logs # View container logs
npm run docker:exec # Shell access for debugging inside container
```
**Port Configuration:**
- **Development**: External port `9001` → Internal port `3000` (http://localhost:9001)
- **Production**: External port `9000` → Internal port `3000` (http://localhost:9000)
### API Route Structure ### API Route Structure
All core functionality exposed via Next.js API routes:
```typescript ```typescript
// Enhanced screenshot with progress tracking // Enhanced screenshot with progress tracking
POST /api/enhanced-screenshot POST /api/enhanced-screenshot
@@ -42,63 +55,122 @@ POST /api/enhanced-screenshot
layouts: ["ai", "diy"], layouts: ["ai", "diy"],
analyze: true analyze: true
} }
// Returns: { screenshots, analysis, sessionId } // Returns: { screenshots, analysis, sessionId }
// Drift trading endpoints
GET /api/balance # Account balance/collateral
POST /api/trading # Execute trades
GET /api/status # Trading status
``` ```
### Progress Tracking System ### Progress Tracking System
- `lib/progress-tracker.ts` manages real-time analysis progress Real-time operation tracking for long-running tasks:
- `lib/progress-tracker.ts` manages EventEmitter-based progress
- SessionId-based tracking for multi-step operations - SessionId-based tracking for multi-step operations
- Steps: init → auth → navigation → loading → capture → analysis - Steps: init → auth → navigation → loading → capture → analysis
- Stream endpoint: `/api/progress/[sessionId]/stream`
### Timeframe Mapping ### TradingView Automation Patterns
Critical: Always use minute values first to avoid TradingView confusion Critical timeframe handling to avoid TradingView confusion:
```typescript ```typescript
'4h': ['240', '240m', '4h', '4H'] // 240 minutes FIRST, not "4h" // ALWAYS use minute values first, then alternatives
'4h': ['240', '240m', '4h', '4H'] // 240 minutes FIRST
'1h': ['60', '60m', '1h', '1H'] // 60 minutes FIRST '1h': ['60', '60m', '1h', '1H'] // 60 minutes FIRST
'15m': ['15', '15m']
```
Layout URL mappings for direct navigation:
```typescript
const LAYOUT_URLS = {
'ai': 'Z1TzpUrf', // RSI + EMAs + MACD
'diy': 'vWVvjLhP' // Stochastic RSI + VWAP + OBV
}
``` ```
### Component Architecture ### Component Architecture
- `app/layout.js` - Root layout with gradient styling and navigation
- `components/Navigation.tsx` - Multi-page navigation system
- `components/AIAnalysisPanel.tsx` - Multi-timeframe analysis interface - `components/AIAnalysisPanel.tsx` - Multi-timeframe analysis interface
- `components/Dashboard.tsx` - Main trading dashboard with real Drift positions - `components/Dashboard.tsx` - Main trading dashboard with real Drift positions
- `components/AdvancedTradingPanel.tsx` - Drift Protocol trading interface - `components/AdvancedTradingPanel.tsx` - Drift Protocol trading interface
- Layout: `app/layout.js` with gradient styling and navigation
## Environment Variables ## Environment Variables
```bash ```bash
OPENAI_API_KEY= # Required for AI analysis # AI Analysis (Required)
TRADINGVIEW_EMAIL= # Required for automation OPENAI_API_KEY=sk-... # OpenAI API key for chart analysis
TRADINGVIEW_PASSWORD= # Required for automation
SOLANA_RPC_URL= # Drift trading # TradingView Automation (Required)
DRIFT_PRIVATE_KEY= # Drift trading (base58 encoded) TRADINGVIEW_EMAIL= # TradingView account email
TRADINGVIEW_PASSWORD= # TradingView account password
# Trading Integration (Optional)
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
DRIFT_PRIVATE_KEY= # Base58 encoded Solana private key
SOLANA_PRIVATE_KEY= # JSON array format for Jupiter DEX
# Docker Environment Detection
DOCKER_ENV=true # Auto-set in containers
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
``` ```
## Build & Development Commands ## Testing & Debugging Workflow
Test files follow specific patterns - use them to validate changes:
```bash ```bash
# Development (recommended) # Test dual-session screenshot capture
npm run docker:dev # Port 9001, hot reload node test-enhanced-screenshot.js
npm run docker:logs # View container logs
npm run docker:exec # Shell access
# Production deployment # Test Docker environment
npm run docker:prod:up # Port 9000, optimized build ./test-docker-comprehensive.sh
# Testing automation # Test API endpoints directly
node test-enhanced-screenshot.js # Test dual-session capture node test-analysis-api.js
./test-docker-comprehensive.sh # Full system test
# Test Drift trading integration
node test-drift-trading.js
``` ```
## Code Style Guidelines Browser automation debugging:
- Use `"use client"` for client components with state/effects - Screenshots automatically saved to `screenshots/` with timestamps
- Tailwind with gradient backgrounds and glassmorphism effects - Debug screenshots: `takeDebugScreenshot('prefix')`
- TypeScript interfaces for all trading parameters and API responses - Session persistence prevents repeated logins/captchas
- Error handling with detailed logging for browser automation - Use `npm run docker:logs` to view real-time automation logs
- Session persistence to avoid TradingView captchas
## Code Style & Architecture Patterns
- **Client Components**: Use `"use client"` for state/effects, server components by default
- **Styling**: Tailwind with gradient backgrounds (`bg-gradient-to-br from-gray-900 via-blue-900 to-purple-900`)
- **Error Handling**: Detailed logging for browser automation with fallbacks
- **File Structure**: Mixed `.js`/`.tsx` - components in TypeScript, API routes in JavaScript
- **Database**: Prisma with SQLite (`DATABASE_URL=file:./prisma/dev.db`)
## Key Integration Points ## Key Integration Points
- Session data: `.tradingview-session/` (volume mounted) - **Session Persistence**: `.tradingview-session/` directory volume-mounted
- Screenshots: `screenshots/` directory - **Screenshots**: `screenshots/` directory for chart captures
- Progress tracking: EventEmitter-based real-time updates - **Progress Tracking**: EventEmitter-based real-time updates via SSE
- Database: Prisma with SQLite (file:./prisma/dev.db) - **Multi-Stage Docker**: Development vs production builds with browser optimization
- **CAPTCHA Handling**: Manual CAPTCHA mode with X11 forwarding (`ALLOW_MANUAL_CAPTCHA=true`)
Generate code that follows these patterns and integrates seamlessly with the existing trading infrastructure. ## Development vs Production Modes
- **Development**: Port 9001:3000, hot reload, debug logging, headless: false option
- **Production**: Port 9000:3000, optimized build, minimal logging, always headless
### Git Branch Strategy (Required)
**Primary development workflow:**
- **`development` branch**: Use for all active development and feature work
- **`main` branch**: Stable, production-ready code only
- **Workflow**: Develop on `development` → test thoroughly → merge to `main` when stable
```bash
# Standard development workflow
git checkout development # Always start here
git pull origin development # Get latest changes
# Make your changes...
git add . && git commit -m "feat: description"
git push origin development
# Only merge to main when features are stable and tested and you have asked the user to merge to main
git checkout main
git merge development # When ready for production
git push origin main
```
When working with this codebase, prioritize Docker consistency, understand the dual-session architecture, and leverage the comprehensive test suite to validate changes.