docs: Add workspace cleanup plan, safety analysis, and recovery procedures
- CLEANUP_PLAN.md: Detailed plan for organizing workspace structure - SAFETY_ANALYSIS.md: Analysis proving no runtime dependencies will break - RECOVERY_PLAN.md: Step-by-step recovery procedures if anything goes wrong All analysis complete - ready to execute cleanup safely. Files document current state and recovery methods.
This commit is contained in:
291
CLEANUP_PLAN.md
Normal file
291
CLEANUP_PLAN.md
Normal file
@@ -0,0 +1,291 @@
|
|||||||
|
# Workspace Cleanup Plan 🧹
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This workspace has accumulated many files during development phases. Here's a plan to organize everything better.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 PROPOSED STRUCTURE
|
||||||
|
|
||||||
|
```
|
||||||
|
/home/icke/traderv4/
|
||||||
|
├── README.md (keep - main entry point)
|
||||||
|
├── .env, .env.example, .env.telegram-bot (keep)
|
||||||
|
├── package.json, tsconfig.json, etc (keep - project config)
|
||||||
|
├── Dockerfile* (keep - Docker configs)
|
||||||
|
├── docker-compose*.yml (keep - Docker compose files)
|
||||||
|
├── app/ (keep - Next.js application)
|
||||||
|
├── config/ (keep - trading config)
|
||||||
|
├── lib/ (keep - core libraries)
|
||||||
|
├── prisma/ (keep - database)
|
||||||
|
├── node_modules/ (keep - dependencies)
|
||||||
|
│
|
||||||
|
├── docs/ (NEW - consolidated documentation)
|
||||||
|
│ ├── setup/
|
||||||
|
│ │ ├── SETUP.md
|
||||||
|
│ │ ├── DOCKER.md
|
||||||
|
│ │ ├── N8N_WORKFLOW_SETUP.md
|
||||||
|
│ │ ├── N8N_DATABASE_SETUP.md
|
||||||
|
│ │ ├── SETTINGS_SETUP.md
|
||||||
|
│ │ └── TELEGRAM_BOT_README.md
|
||||||
|
│ │
|
||||||
|
│ ├── guides/
|
||||||
|
│ │ ├── N8N_WORKFLOW_GUIDE.md
|
||||||
|
│ │ ├── TESTING.md
|
||||||
|
│ │ └── WORKFLOW_VERIFICATION.md
|
||||||
|
│ │
|
||||||
|
│ └── history/ (archive of completed phases)
|
||||||
|
│ ├── PHASE_1_COMPLETE.md
|
||||||
|
│ ├── PHASE_2_COMPLETE.md
|
||||||
|
│ ├── PHASE_2_SUMMARY.md
|
||||||
|
│ ├── QUICKREF_PHASE2.md
|
||||||
|
│ ├── EXIT_ORDERS_TEST_RESULTS.md
|
||||||
|
│ ├── TEST_STATUS_COMMAND.md
|
||||||
|
│ ├── TELEGRAM_STATUS_IMPLEMENTATION.md
|
||||||
|
│ └── STATUS_COMMAND_QUICKREF.txt
|
||||||
|
│
|
||||||
|
├── workflows/ (NEW - n8n workflow files)
|
||||||
|
│ ├── trading/
|
||||||
|
│ │ ├── n8n-complete-workflow.json (current main workflow)
|
||||||
|
│ │ └── Money_Machine.json (main workflow)
|
||||||
|
│ │
|
||||||
|
│ ├── analytics/
|
||||||
|
│ │ ├── n8n-daily-report.json
|
||||||
|
│ │ ├── n8n-database-analytics.json
|
||||||
|
│ │ ├── n8n-pattern-analysis.json
|
||||||
|
│ │ └── n8n-stop-loss-analysis.json
|
||||||
|
│ │
|
||||||
|
│ ├── telegram/
|
||||||
|
│ │ ├── telegram-manual-trade-FINAL.json (current)
|
||||||
|
│ │ └── telegram-webhook-FINAL.json (current)
|
||||||
|
│ │
|
||||||
|
│ └── archive/ (old/unused workflows)
|
||||||
|
│ ├── n8n-trader-workflow.json
|
||||||
|
│ ├── n8n-trader-workflow-updated.json
|
||||||
|
│ ├── n8n-workflow-simple.json
|
||||||
|
│ ├── telegram-listener-simple.json
|
||||||
|
│ ├── telegram-n8n-listener.json
|
||||||
|
│ ├── telegram-polling-addon.json
|
||||||
|
│ └── telegram-trigger-addon.json
|
||||||
|
│
|
||||||
|
├── scripts/ (NEW - utility scripts)
|
||||||
|
│ ├── docker/
|
||||||
|
│ │ ├── docker-build.sh
|
||||||
|
│ │ ├── docker-start.sh
|
||||||
|
│ │ ├── docker-stop.sh
|
||||||
|
│ │ └── docker-logs.sh
|
||||||
|
│ │
|
||||||
|
│ ├── setup/
|
||||||
|
│ │ ├── complete_telegram_setup.sh
|
||||||
|
│ │ ├── setup_telegram_bot.sh
|
||||||
|
│ │ └── GET_BOT_TOKEN.sh
|
||||||
|
│ │
|
||||||
|
│ └── testing/
|
||||||
|
│ ├── send_trade.sh
|
||||||
|
│ ├── trade.sh
|
||||||
|
│ └── test-exit-orders.sh
|
||||||
|
│
|
||||||
|
├── tests/ (NEW - test files)
|
||||||
|
│ ├── test-drift-v4.ts
|
||||||
|
│ ├── test-full-flow.ts
|
||||||
|
│ ├── test-position-manager.ts
|
||||||
|
│ └── test-price-monitor.ts
|
||||||
|
│
|
||||||
|
└── archive/ (NEW - old/unused files to keep for reference)
|
||||||
|
├── telegram_trade_bot.py (unused version)
|
||||||
|
├── telegram-to-webhook.py
|
||||||
|
├── quick-trade.html
|
||||||
|
├── webapp-trade.html
|
||||||
|
└── CREATE_NEW_BOT.md
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗑️ FILES TO DELETE (Empty/Obsolete)
|
||||||
|
|
||||||
|
### Empty Directories
|
||||||
|
- [x] `data/` - Empty, can be recreated if needed
|
||||||
|
- [x] `screenshots/` - Empty
|
||||||
|
|
||||||
|
### Obsolete Files
|
||||||
|
None identified - keeping everything in archive for reference
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 FILES TO MOVE
|
||||||
|
|
||||||
|
### Documentation → `docs/`
|
||||||
|
**Create `docs/setup/`:**
|
||||||
|
- SETUP.md
|
||||||
|
- DOCKER.md
|
||||||
|
- N8N_WORKFLOW_SETUP.md
|
||||||
|
- N8N_DATABASE_SETUP.md
|
||||||
|
- SETTINGS_SETUP.md
|
||||||
|
- TELEGRAM_BOT_README.md
|
||||||
|
|
||||||
|
**Create `docs/guides/`:**
|
||||||
|
- N8N_WORKFLOW_GUIDE.md
|
||||||
|
- TESTING.md
|
||||||
|
- WORKFLOW_VERIFICATION.md
|
||||||
|
|
||||||
|
**Create `docs/history/`:**
|
||||||
|
- PHASE_1_COMPLETE.md
|
||||||
|
- PHASE_2_COMPLETE.md
|
||||||
|
- PHASE_2_SUMMARY.md
|
||||||
|
- QUICKREF_PHASE2.md
|
||||||
|
- EXIT_ORDERS_TEST_RESULTS.md
|
||||||
|
- TEST_STATUS_COMMAND.md
|
||||||
|
- TELEGRAM_STATUS_IMPLEMENTATION.md
|
||||||
|
- STATUS_COMMAND_QUICKREF.txt
|
||||||
|
|
||||||
|
### n8n Workflows → `workflows/`
|
||||||
|
**Create `workflows/trading/`:**
|
||||||
|
- n8n-complete-workflow.json
|
||||||
|
- Money_Machine.json
|
||||||
|
|
||||||
|
**Create `workflows/analytics/`:**
|
||||||
|
- n8n-daily-report.json
|
||||||
|
- n8n-database-analytics.json
|
||||||
|
- n8n-pattern-analysis.json
|
||||||
|
- n8n-stop-loss-analysis.json
|
||||||
|
|
||||||
|
**Create `workflows/telegram/`:**
|
||||||
|
- telegram-manual-trade-FINAL.json
|
||||||
|
- telegram-webhook-FINAL.json
|
||||||
|
|
||||||
|
**Create `workflows/archive/`:**
|
||||||
|
- n8n-trader-workflow.json
|
||||||
|
- n8n-trader-workflow-updated.json
|
||||||
|
- n8n-workflow-simple.json
|
||||||
|
- telegram-listener-simple.json
|
||||||
|
- telegram-n8n-listener.json
|
||||||
|
- telegram-polling-addon.json
|
||||||
|
- telegram-trigger-addon.json
|
||||||
|
|
||||||
|
### Scripts → `scripts/`
|
||||||
|
**Create `scripts/docker/`:**
|
||||||
|
- docker-build.sh
|
||||||
|
- docker-start.sh
|
||||||
|
- docker-stop.sh
|
||||||
|
- docker-logs.sh
|
||||||
|
|
||||||
|
**Create `scripts/setup/`:**
|
||||||
|
- complete_telegram_setup.sh
|
||||||
|
- setup_telegram_bot.sh
|
||||||
|
- GET_BOT_TOKEN.sh
|
||||||
|
|
||||||
|
**Create `scripts/testing/`:**
|
||||||
|
- send_trade.sh
|
||||||
|
- trade.sh
|
||||||
|
- test-exit-orders.sh
|
||||||
|
|
||||||
|
### Test Files → `tests/`
|
||||||
|
- test-drift-v4.ts
|
||||||
|
- test-full-flow.ts
|
||||||
|
- test-position-manager.ts
|
||||||
|
- test-price-monitor.ts
|
||||||
|
|
||||||
|
### Archive → `archive/`
|
||||||
|
**Unused but keep for reference:**
|
||||||
|
- telegram_trade_bot.py (we use telegram_command_bot.py)
|
||||||
|
- telegram-to-webhook.py
|
||||||
|
- quick-trade.html
|
||||||
|
- webapp-trade.html
|
||||||
|
- CREATE_NEW_BOT.md
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ FILES TO KEEP IN ROOT (Essential)
|
||||||
|
|
||||||
|
### Core Configuration
|
||||||
|
- README.md (main documentation)
|
||||||
|
- package.json, package-lock.json
|
||||||
|
- tsconfig.json
|
||||||
|
- next.config.js
|
||||||
|
- postcss.config.js
|
||||||
|
- tailwind.config.js
|
||||||
|
|
||||||
|
### Environment Files
|
||||||
|
- .env
|
||||||
|
- .env.example
|
||||||
|
- .env.local
|
||||||
|
- .env.telegram-bot
|
||||||
|
|
||||||
|
### Docker Files
|
||||||
|
- Dockerfile
|
||||||
|
- Dockerfile.dev
|
||||||
|
- Dockerfile.telegram-bot
|
||||||
|
- docker-compose.yml
|
||||||
|
- docker-compose.dev.yml
|
||||||
|
- docker-compose.telegram-bot.yml
|
||||||
|
|
||||||
|
### Active Scripts (keep in root for easy access)
|
||||||
|
- watch-restart.sh (actively used by systemd)
|
||||||
|
- telegram_command_bot.py (active bot)
|
||||||
|
|
||||||
|
### System Files
|
||||||
|
- trading-bot-restart-watcher.service
|
||||||
|
- .dockerignore
|
||||||
|
- .gitignore
|
||||||
|
|
||||||
|
### Directories
|
||||||
|
- app/ (Next.js app)
|
||||||
|
- config/ (trading config)
|
||||||
|
- lib/ (core libraries)
|
||||||
|
- prisma/ (database)
|
||||||
|
- logs/ (active logs)
|
||||||
|
- node_modules/ (dependencies)
|
||||||
|
- .git/ (git repo)
|
||||||
|
- .github/ (GitHub config)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 BENEFITS
|
||||||
|
|
||||||
|
1. **Cleaner Root Directory**
|
||||||
|
- Only essential config and active files
|
||||||
|
- Easy to find what you need
|
||||||
|
|
||||||
|
2. **Better Organization**
|
||||||
|
- Documentation in one place
|
||||||
|
- Workflows grouped by purpose
|
||||||
|
- Scripts organized by function
|
||||||
|
|
||||||
|
3. **Clear History**
|
||||||
|
- Phase completion docs archived
|
||||||
|
- Easy to reference past work
|
||||||
|
|
||||||
|
4. **Easier Maintenance**
|
||||||
|
- Know where to add new files
|
||||||
|
- Clear separation of concerns
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚡ EXECUTION PLAN
|
||||||
|
|
||||||
|
1. Create new directory structure
|
||||||
|
2. Move files to new locations
|
||||||
|
3. Delete empty directories
|
||||||
|
4. Update any hardcoded paths (if needed)
|
||||||
|
5. Test that everything still works
|
||||||
|
6. Git commit with clear message
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 FILES REQUIRING PATH UPDATES
|
||||||
|
|
||||||
|
**None expected** - All imports use relative paths or npm packages.
|
||||||
|
- Scripts reference files by name, not path
|
||||||
|
- Docker configs use context
|
||||||
|
- No hardcoded absolute paths found
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❓ AWAITING YOUR APPROVAL
|
||||||
|
|
||||||
|
Please review this plan and let me know:
|
||||||
|
- ✅ Approve as-is
|
||||||
|
- 🔧 Suggest modifications
|
||||||
|
- ❌ Cancel cleanup
|
||||||
|
|
||||||
|
Once approved, I'll execute the plan systematically!
|
||||||
335
RECOVERY_PLAN.md
Normal file
335
RECOVERY_PLAN.md
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
# 🚨 CLEANUP RECOVERY PLAN
|
||||||
|
|
||||||
|
## 📋 Pre-Execution State (Backup)
|
||||||
|
|
||||||
|
**Date:** October 27, 2025
|
||||||
|
**Git Commit:** Current HEAD before cleanup
|
||||||
|
**System Status:** All containers running
|
||||||
|
|
||||||
|
### Current Git State
|
||||||
|
```bash
|
||||||
|
# Get current commit hash
|
||||||
|
git rev-parse HEAD
|
||||||
|
# This is our recovery point
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 RECOVERY METHODS
|
||||||
|
|
||||||
|
### Method 1: Git Revert (Safest - Use This First)
|
||||||
|
If anything breaks after cleanup:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Find the cleanup commit
|
||||||
|
git log --oneline -5
|
||||||
|
|
||||||
|
# Revert the cleanup commit (replace COMMIT_HASH)
|
||||||
|
git revert COMMIT_HASH
|
||||||
|
|
||||||
|
# This creates a new commit that undoes all file moves
|
||||||
|
# System returns to previous state
|
||||||
|
```
|
||||||
|
|
||||||
|
### Method 2: Git Reset (Nuclear Option)
|
||||||
|
If git revert doesn't work:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Get commit hash BEFORE cleanup
|
||||||
|
git log --oneline -10
|
||||||
|
|
||||||
|
# Reset to commit before cleanup (replace COMMIT_HASH)
|
||||||
|
git reset --hard COMMIT_HASH
|
||||||
|
|
||||||
|
# Force push if already pushed
|
||||||
|
git push --force origin master
|
||||||
|
```
|
||||||
|
|
||||||
|
### Method 3: Manual Recovery
|
||||||
|
If git fails, manual file restoration:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# All original file locations are documented below
|
||||||
|
# Simply move files back to root directory
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📍 ORIGINAL FILE LOCATIONS (Pre-Cleanup)
|
||||||
|
|
||||||
|
### Documentation Files (Currently in Root)
|
||||||
|
```
|
||||||
|
/home/icke/traderv4/SETUP.md
|
||||||
|
/home/icke/traderv4/DOCKER.md
|
||||||
|
/home/icke/traderv4/N8N_WORKFLOW_SETUP.md
|
||||||
|
/home/icke/traderv4/N8N_DATABASE_SETUP.md
|
||||||
|
/home/icke/traderv4/SETTINGS_SETUP.md
|
||||||
|
/home/icke/traderv4/TELEGRAM_BOT_README.md
|
||||||
|
/home/icke/traderv4/N8N_WORKFLOW_GUIDE.md
|
||||||
|
/home/icke/traderv4/TESTING.md
|
||||||
|
/home/icke/traderv4/WORKFLOW_VERIFICATION.md
|
||||||
|
/home/icke/traderv4/PHASE_1_COMPLETE.md
|
||||||
|
/home/icke/traderv4/PHASE_2_COMPLETE.md
|
||||||
|
/home/icke/traderv4/PHASE_2_SUMMARY.md
|
||||||
|
/home/icke/traderv4/QUICKREF_PHASE2.md
|
||||||
|
/home/icke/traderv4/EXIT_ORDERS_TEST_RESULTS.md
|
||||||
|
/home/icke/traderv4/TEST_STATUS_COMMAND.md
|
||||||
|
/home/icke/traderv4/TELEGRAM_STATUS_IMPLEMENTATION.md
|
||||||
|
/home/icke/traderv4/STATUS_COMMAND_QUICKREF.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### n8n Workflow Files (Currently in Root)
|
||||||
|
```
|
||||||
|
/home/icke/traderv4/Money_Machine.json
|
||||||
|
/home/icke/traderv4/n8n-complete-workflow.json
|
||||||
|
/home/icke/traderv4/n8n-daily-report.json
|
||||||
|
/home/icke/traderv4/n8n-database-analytics.json
|
||||||
|
/home/icke/traderv4/n8n-pattern-analysis.json
|
||||||
|
/home/icke/traderv4/n8n-stop-loss-analysis.json
|
||||||
|
/home/icke/traderv4/telegram-manual-trade-FINAL.json
|
||||||
|
/home/icke/traderv4/telegram-webhook-FINAL.json
|
||||||
|
/home/icke/traderv4/n8n-trader-workflow.json
|
||||||
|
/home/icke/traderv4/n8n-trader-workflow-updated.json
|
||||||
|
/home/icke/traderv4/n8n-workflow-simple.json
|
||||||
|
/home/icke/traderv4/telegram-listener-simple.json
|
||||||
|
/home/icke/traderv4/telegram-n8n-listener.json
|
||||||
|
/home/icke/traderv4/telegram-polling-addon.json
|
||||||
|
/home/icke/traderv4/telegram-trigger-addon.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### Shell Scripts (Currently in Root)
|
||||||
|
```
|
||||||
|
/home/icke/traderv4/docker-build.sh
|
||||||
|
/home/icke/traderv4/docker-start.sh
|
||||||
|
/home/icke/traderv4/docker-stop.sh
|
||||||
|
/home/icke/traderv4/docker-logs.sh
|
||||||
|
/home/icke/traderv4/complete_telegram_setup.sh
|
||||||
|
/home/icke/traderv4/setup_telegram_bot.sh
|
||||||
|
/home/icke/traderv4/GET_BOT_TOKEN.sh
|
||||||
|
/home/icke/traderv4/send_trade.sh
|
||||||
|
/home/icke/traderv4/trade.sh
|
||||||
|
/home/icke/traderv4/test-exit-orders.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test Files (Currently in Root)
|
||||||
|
```
|
||||||
|
/home/icke/traderv4/test-drift-v4.ts
|
||||||
|
/home/icke/traderv4/test-full-flow.ts
|
||||||
|
/home/icke/traderv4/test-position-manager.ts
|
||||||
|
/home/icke/traderv4/test-price-monitor.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
### Archive Files (Currently in Root)
|
||||||
|
```
|
||||||
|
/home/icke/traderv4/telegram_trade_bot.py
|
||||||
|
/home/icke/traderv4/telegram-to-webhook.py
|
||||||
|
/home/icke/traderv4/quick-trade.html
|
||||||
|
/home/icke/traderv4/webapp-trade.html
|
||||||
|
/home/icke/traderv4/CREATE_NEW_BOT.md
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 NEW FILE LOCATIONS (Post-Cleanup)
|
||||||
|
|
||||||
|
Documented in CLEANUP_PLAN.md - see proposed structure
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ VALIDATION CHECKLIST
|
||||||
|
|
||||||
|
After cleanup, verify these are working:
|
||||||
|
|
||||||
|
### 1. Docker Containers
|
||||||
|
```bash
|
||||||
|
docker ps | grep -E "(trading-bot|telegram-trade-bot|postgres)"
|
||||||
|
# All 3 should be running
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Trading Bot API
|
||||||
|
```bash
|
||||||
|
curl -s -H "Authorization: Bearer 2a344f0149442c857fb56c038c0c7d1b113883b830bec792c76f1e0efa15d6bb" \
|
||||||
|
http://localhost:3001/api/trading/positions | jq .success
|
||||||
|
# Should return: true
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Telegram Bot
|
||||||
|
```bash
|
||||||
|
docker logs telegram-trade-bot --tail 5
|
||||||
|
# Should show: "🤖 Bot ready! Send commands to your Telegram."
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Watch Restart Service
|
||||||
|
```bash
|
||||||
|
systemctl status trading-bot-restart-watcher.service
|
||||||
|
# Should be: active (running)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Critical Files in Root
|
||||||
|
```bash
|
||||||
|
ls -la /home/icke/traderv4/ | grep -E "(telegram_command_bot.py|watch-restart.sh|docker-compose.yml)"
|
||||||
|
# All 3 should exist in root
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚨 ROLLBACK PROCEDURE
|
||||||
|
|
||||||
|
### If System Breaks:
|
||||||
|
|
||||||
|
**Step 1: Check what's broken**
|
||||||
|
```bash
|
||||||
|
# Check containers
|
||||||
|
docker ps -a | grep trading-bot
|
||||||
|
|
||||||
|
# Check logs
|
||||||
|
docker logs trading-bot-v4 --tail 50
|
||||||
|
docker logs telegram-trade-bot --tail 50
|
||||||
|
|
||||||
|
# Check systemd
|
||||||
|
systemctl status trading-bot-restart-watcher.service
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 2: Quick Fix (If Docker Issue)**
|
||||||
|
```bash
|
||||||
|
# Restart containers
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Restart telegram bot
|
||||||
|
docker-compose -f docker-compose.telegram-bot.yml down
|
||||||
|
docker-compose -f docker-compose.telegram-bot.yml up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 3: Git Revert (If Files Missing)**
|
||||||
|
```bash
|
||||||
|
# See recent commits
|
||||||
|
git log --oneline -5
|
||||||
|
|
||||||
|
# Revert the cleanup commit
|
||||||
|
git revert HEAD
|
||||||
|
|
||||||
|
# Verify files back
|
||||||
|
ls -la *.md *.json *.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 4: Nuclear Option (If All Else Fails)**
|
||||||
|
```bash
|
||||||
|
# Get commit before cleanup
|
||||||
|
BEFORE_CLEANUP=$(git log --oneline -10 | grep "Add /status" | cut -d' ' -f1)
|
||||||
|
|
||||||
|
# Reset to that commit
|
||||||
|
git reset --hard $BEFORE_CLEANUP
|
||||||
|
|
||||||
|
# Restart everything
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 SYSTEM STATE SNAPSHOT
|
||||||
|
|
||||||
|
### Before Cleanup:
|
||||||
|
- **Containers Running:** 3 (trading-bot-v4, telegram-trade-bot, postgres)
|
||||||
|
- **Services Active:** trading-bot-restart-watcher.service
|
||||||
|
- **API Status:** Responding on port 3001
|
||||||
|
- **Files in Root:** 87 files (docs, scripts, workflows mixed)
|
||||||
|
|
||||||
|
### Expected After Cleanup:
|
||||||
|
- **Containers Running:** 3 (no change - containers don't rebuild)
|
||||||
|
- **Services Active:** trading-bot-restart-watcher.service (no change)
|
||||||
|
- **API Status:** Responding on port 3001 (no change)
|
||||||
|
- **Files in Root:** ~30 files (only essential configs)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 WHAT CAN'T BREAK
|
||||||
|
|
||||||
|
These will NOT be affected by cleanup:
|
||||||
|
- ✅ Running containers (not rebuilding)
|
||||||
|
- ✅ Database data (no schema changes)
|
||||||
|
- ✅ Environment variables (no changes)
|
||||||
|
- ✅ Docker networks (no changes)
|
||||||
|
- ✅ Active trades (Position Manager in memory)
|
||||||
|
- ✅ Systemd service (file it references stays in root)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 COMMIT MESSAGE
|
||||||
|
|
||||||
|
Will use this format:
|
||||||
|
```
|
||||||
|
chore: Organize workspace structure - move docs, workflows, scripts to subdirectories
|
||||||
|
|
||||||
|
- Created docs/ for all documentation (setup, guides, history)
|
||||||
|
- Created workflows/ for n8n JSON files (trading, analytics, telegram, archive)
|
||||||
|
- Created scripts/ for shell scripts (docker, setup, testing)
|
||||||
|
- Created tests/ for TypeScript test files
|
||||||
|
- Created archive/ for unused reference files
|
||||||
|
- Updated README.md documentation links
|
||||||
|
- Deleted empty directories (data, screenshots)
|
||||||
|
|
||||||
|
All critical files remain in root:
|
||||||
|
- telegram_command_bot.py (active bot)
|
||||||
|
- watch-restart.sh (systemd service)
|
||||||
|
- Dockerfiles and docker-compose files
|
||||||
|
- Environment files
|
||||||
|
|
||||||
|
No code changes - purely organizational.
|
||||||
|
System continues running without interruption.
|
||||||
|
|
||||||
|
Recovery: git revert HEAD to restore previous structure
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚡ EXECUTION LOG
|
||||||
|
|
||||||
|
Will document each step as executed:
|
||||||
|
1. [ ] Created directory structure
|
||||||
|
2. [ ] Moved documentation files
|
||||||
|
3. [ ] Moved workflow files
|
||||||
|
4. [ ] Moved script files
|
||||||
|
5. [ ] Moved test files
|
||||||
|
6. [ ] Moved archive files
|
||||||
|
7. [ ] Updated README.md
|
||||||
|
8. [ ] Deleted empty directories
|
||||||
|
9. [ ] Validated system still working
|
||||||
|
10. [ ] Git commit and push
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 FINAL SAFETY NET
|
||||||
|
|
||||||
|
**Before starting:**
|
||||||
|
```bash
|
||||||
|
# Create a manual backup tag
|
||||||
|
git tag -a cleanup-before -m "State before workspace cleanup - recovery point"
|
||||||
|
git push origin cleanup-before
|
||||||
|
```
|
||||||
|
|
||||||
|
**To recover using tag:**
|
||||||
|
```bash
|
||||||
|
git reset --hard cleanup-before
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ READY TO PROCEED
|
||||||
|
|
||||||
|
This recovery plan provides:
|
||||||
|
- 3 different recovery methods
|
||||||
|
- Complete file location documentation
|
||||||
|
- Validation checklist
|
||||||
|
- Step-by-step rollback procedure
|
||||||
|
- Git tag as safety net
|
||||||
|
|
||||||
|
**Shall I:**
|
||||||
|
1. Create the git tag (safety net)
|
||||||
|
2. Execute the cleanup
|
||||||
|
3. Validate everything works
|
||||||
|
4. Commit with detailed message
|
||||||
|
5. Push to remote
|
||||||
|
|
||||||
|
Type "proceed" to start, or any concerns to address first.
|
||||||
219
SAFETY_ANALYSIS.md
Normal file
219
SAFETY_ANALYSIS.md
Normal file
@@ -0,0 +1,219 @@
|
|||||||
|
# ✅ SAFETY ANALYSIS - Files Can Be Moved Without Breaking System
|
||||||
|
|
||||||
|
## 🔍 Analysis Performed
|
||||||
|
|
||||||
|
I've thoroughly analyzed the codebase for any references or dependencies on the files we plan to move.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ SAFE TO MOVE - No Breaking Changes
|
||||||
|
|
||||||
|
### **Documentation Files (*.md)**
|
||||||
|
**Status:** ✅ **COMPLETELY SAFE**
|
||||||
|
|
||||||
|
**Checked:**
|
||||||
|
- README.md references SETUP.md, DOCKER.md, TESTING.md, PHASE_*.md files
|
||||||
|
- These are **informational references only** - not runtime dependencies
|
||||||
|
- Moving them won't break the system
|
||||||
|
|
||||||
|
**Why Safe:**
|
||||||
|
- Markdown files are documentation only
|
||||||
|
- No code imports them
|
||||||
|
- No scripts read them at runtime
|
||||||
|
- They're only for human readers
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **n8n Workflow Files (*.json)**
|
||||||
|
**Status:** ✅ **COMPLETELY SAFE**
|
||||||
|
|
||||||
|
**Files to move:**
|
||||||
|
- All n8n-*.json files
|
||||||
|
- All telegram-*.json files
|
||||||
|
- Money_Machine.json
|
||||||
|
|
||||||
|
**Checked:**
|
||||||
|
- ❌ No Python imports found
|
||||||
|
- ❌ No shell script references found
|
||||||
|
- ❌ No TypeScript imports found
|
||||||
|
- ❌ No Docker COPY commands for these files
|
||||||
|
- ❌ No hardcoded paths in code
|
||||||
|
|
||||||
|
**References Found:**
|
||||||
|
1. `complete_telegram_setup.sh` line 12: References `telegram-manual-trade-FINAL.json` in **echo statement only** (informational)
|
||||||
|
2. `setup_telegram_bot.sh` line 34: References `telegram-manual-trade-FINAL.json` in **echo statement only** (informational)
|
||||||
|
|
||||||
|
**Why Safe:**
|
||||||
|
- These are import files for n8n (imported manually via UI)
|
||||||
|
- Not read by any running code
|
||||||
|
- Only referenced in echo statements telling users what to import
|
||||||
|
- Moving them won't affect runtime
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Shell Scripts (*.sh)**
|
||||||
|
**Status:** ✅ **SAFE WITH ONE NOTE**
|
||||||
|
|
||||||
|
**Files to move:**
|
||||||
|
- docker-build.sh
|
||||||
|
- docker-start.sh
|
||||||
|
- docker-stop.sh
|
||||||
|
- docker-logs.sh
|
||||||
|
- complete_telegram_setup.sh
|
||||||
|
- setup_telegram_bot.sh
|
||||||
|
- GET_BOT_TOKEN.sh
|
||||||
|
- send_trade.sh
|
||||||
|
- trade.sh
|
||||||
|
- test-exit-orders.sh
|
||||||
|
|
||||||
|
**Critical Check - Docker Compose Reference:**
|
||||||
|
- `complete_telegram_setup.sh` line 47: Uses `docker-compose -f docker-compose.telegram-bot.yml`
|
||||||
|
- **This is SAFE** - it references docker-compose file in root, which we're NOT moving
|
||||||
|
|
||||||
|
**Critical Check - Source Command:**
|
||||||
|
- `setup_telegram_bot.sh` line 16: `source .env.telegram-bot`
|
||||||
|
- **This is SAFE** - .env.telegram-bot stays in root
|
||||||
|
|
||||||
|
**Why Safe:**
|
||||||
|
- Scripts run from root directory (systemd WorkingDirectory=/home/icke/traderv4)
|
||||||
|
- We can update user documentation to run them from new location
|
||||||
|
- Docker compose files stay in root
|
||||||
|
- No script sources another script from the files we're moving
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Test Files (*.ts)**
|
||||||
|
**Status:** ✅ **COMPLETELY SAFE**
|
||||||
|
|
||||||
|
**Files to move:**
|
||||||
|
- test-drift-v4.ts
|
||||||
|
- test-full-flow.ts
|
||||||
|
- test-position-manager.ts
|
||||||
|
- test-price-monitor.ts
|
||||||
|
|
||||||
|
**Checked:**
|
||||||
|
- These are standalone test files
|
||||||
|
- No imports in other code
|
||||||
|
- No runtime dependencies
|
||||||
|
- Only run manually for testing
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Archive Files**
|
||||||
|
**Status:** ✅ **COMPLETELY SAFE**
|
||||||
|
|
||||||
|
**Files to move:**
|
||||||
|
- telegram_trade_bot.py (unused)
|
||||||
|
- telegram-to-webhook.py (unused)
|
||||||
|
- quick-trade.html (unused)
|
||||||
|
- webapp-trade.html (unused)
|
||||||
|
- CREATE_NEW_BOT.md (documentation)
|
||||||
|
|
||||||
|
**Why Safe:**
|
||||||
|
- These files are not used by the system
|
||||||
|
- telegram_trade_bot.py is NOT the active bot (telegram_command_bot.py is)
|
||||||
|
- HTML files are standalone demos
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔐 CRITICAL FILES STAYING IN ROOT
|
||||||
|
|
||||||
|
### **Files That MUST Stay in Root:**
|
||||||
|
✅ `telegram_command_bot.py` - Referenced by Dockerfile.telegram-bot line 9
|
||||||
|
✅ `watch-restart.sh` - Referenced by systemd service
|
||||||
|
✅ `docker-compose*.yml` - Referenced by scripts and systemd
|
||||||
|
✅ `Dockerfile*` - Referenced by docker-compose files
|
||||||
|
✅ `.env*` - Referenced by docker-compose and scripts
|
||||||
|
|
||||||
|
### **Verified:**
|
||||||
|
- Dockerfile.telegram-bot: `COPY telegram_command_bot.py .` ✅ (keeping in root)
|
||||||
|
- trading-bot-restart-watcher.service: `ExecStart=/home/icke/traderv4/watch-restart.sh` ✅ (keeping in root)
|
||||||
|
- All docker-compose files use `context: .` ✅ (stays in root)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 DOCUMENTATION UPDATES NEEDED
|
||||||
|
|
||||||
|
### **README.md References (Informational Only)**
|
||||||
|
|
||||||
|
The README.md mentions these files in the "Documentation" section:
|
||||||
|
- Line 281: `DOCKER.md` → Will update to `docs/setup/DOCKER.md`
|
||||||
|
- Line 282: `SETUP.md` → Will update to `docs/setup/SETUP.md`
|
||||||
|
- Line 283: `TESTING.md` → Will update to `docs/guides/TESTING.md`
|
||||||
|
- Line 327-330: Table references → Will update paths
|
||||||
|
|
||||||
|
**Impact:** ✅ Zero runtime impact - these are just documentation links
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 EXECUTION STRATEGY
|
||||||
|
|
||||||
|
### **Phase 1: Create Directory Structure**
|
||||||
|
```bash
|
||||||
|
mkdir -p docs/setup
|
||||||
|
mkdir -p docs/guides
|
||||||
|
mkdir -p docs/history
|
||||||
|
mkdir -p workflows/trading
|
||||||
|
mkdir -p workflows/analytics
|
||||||
|
mkdir -p workflows/telegram
|
||||||
|
mkdir -p workflows/archive
|
||||||
|
mkdir -p scripts/docker
|
||||||
|
mkdir -p scripts/setup
|
||||||
|
mkdir -p scripts/testing
|
||||||
|
mkdir -p tests
|
||||||
|
mkdir -p archive
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Phase 2: Move Files (Git mv)**
|
||||||
|
Using `git mv` to preserve history:
|
||||||
|
- Move all docs to docs/
|
||||||
|
- Move all workflows to workflows/
|
||||||
|
- Move all scripts to scripts/
|
||||||
|
- Move all tests to tests/
|
||||||
|
- Move archive files to archive/
|
||||||
|
|
||||||
|
### **Phase 3: Update README.md**
|
||||||
|
Update file path references in documentation section
|
||||||
|
|
||||||
|
### **Phase 4: Delete Empty Directories**
|
||||||
|
```bash
|
||||||
|
rmdir data screenshots
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Phase 5: Test**
|
||||||
|
- ✅ Verify containers still running
|
||||||
|
- ✅ Check docker-compose still works
|
||||||
|
- ✅ Test telegram bot still responds
|
||||||
|
- ✅ Verify watch-restart.sh still works
|
||||||
|
|
||||||
|
### **Phase 6: Git Commit**
|
||||||
|
Commit all changes with clear message
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ FINAL VERDICT
|
||||||
|
|
||||||
|
**100% SAFE TO PROCEED**
|
||||||
|
|
||||||
|
**Reasoning:**
|
||||||
|
1. ✅ No runtime code reads the files we're moving
|
||||||
|
2. ✅ All Docker COPY commands reference files staying in root
|
||||||
|
3. ✅ Systemd service references files staying in root
|
||||||
|
4. ✅ Shell script references are either:
|
||||||
|
- Informational echo statements, or
|
||||||
|
- Reference files staying in root
|
||||||
|
5. ✅ README.md references are documentation only (will update paths)
|
||||||
|
6. ✅ No imports/requires of files being moved
|
||||||
|
7. ✅ All critical files (telegram_command_bot.py, watch-restart.sh, Dockerfiles, docker-compose) stay in root
|
||||||
|
|
||||||
|
**The system will continue running without any interruption.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 READY TO EXECUTE
|
||||||
|
|
||||||
|
Shall I proceed with the cleanup?
|
||||||
|
- Phase 1-6 will be executed systematically
|
||||||
|
- Each step will be verified
|
||||||
|
- System will remain operational throughout
|
||||||
|
- Git history will be preserved
|
||||||
Reference in New Issue
Block a user