docs: Add multi-fix deployment verification to VERIFICATION MANDATE
- Extended verification checklist for sessions with multiple related fixes - Added requirement to verify container newer than ALL commits - Included example from Nov 16 session (3 fixes deployed together) - Added bash commands for complete deployment verification - Emphasized that ALL fixes must be deployed, not just latest commit - Updated Common Pitfall #47 with deployment verification commands - Prevents declaring fixes 'working' when only some are deployed
This commit is contained in:
51
.github/copilot-instructions.md
vendored
51
.github/copilot-instructions.md
vendored
@@ -84,6 +84,7 @@
|
|||||||
3. Comparing calculated values to source data
|
3. Comparing calculated values to source data
|
||||||
4. Testing with real trades when applicable
|
4. Testing with real trades when applicable
|
||||||
5. **CONFIRMING CODE IS DEPLOYED** - Check container start time vs commit time
|
5. **CONFIRMING CODE IS DEPLOYED** - Check container start time vs commit time
|
||||||
|
6. **VERIFYING ALL RELATED FIXES DEPLOYED** - Multi-fix sessions require complete deployment verification
|
||||||
|
|
||||||
**CODE COMMITTED ≠ CODE DEPLOYED**
|
**CODE COMMITTED ≠ CODE DEPLOYED**
|
||||||
- Git commit at 15:56 means NOTHING if container started at 15:06
|
- Git commit at 15:56 means NOTHING if container started at 15:06
|
||||||
@@ -92,6 +93,42 @@
|
|||||||
- If container older than commit: **CODE NOT DEPLOYED, FIX NOT ACTIVE**
|
- If container older than commit: **CODE NOT DEPLOYED, FIX NOT ACTIVE**
|
||||||
- Never say "fixed" or "protected" until deployment verified
|
- Never say "fixed" or "protected" until deployment verified
|
||||||
|
|
||||||
|
**MULTI-FIX DEPLOYMENT VERIFICATION**
|
||||||
|
When multiple related fixes are developed in same session:
|
||||||
|
```bash
|
||||||
|
# 1. Check container start time
|
||||||
|
docker inspect trading-bot-v4 --format='{{.State.StartedAt}}'
|
||||||
|
# Example: 2025-11-16T09:28:20.757451138Z
|
||||||
|
|
||||||
|
# 2. Check all commit timestamps
|
||||||
|
git log --oneline --format='%h %ai %s' -5
|
||||||
|
# Example output:
|
||||||
|
# b23dde0 2025-11-16 09:25:10 fix: Add needsVerification field
|
||||||
|
# c607a66 2025-11-16 09:00:42 critical: Fix close verification
|
||||||
|
# 673a493 2025-11-16 08:45:21 critical: Fix breakeven SL
|
||||||
|
|
||||||
|
# 3. Verify container newer than ALL commits
|
||||||
|
# Container 09:28:20 > Latest commit 09:25:10 ✅ ALL FIXES DEPLOYED
|
||||||
|
|
||||||
|
# 4. Test-specific verification for each fix
|
||||||
|
docker logs -f trading-bot-v4 | grep "expected log message from fix"
|
||||||
|
```
|
||||||
|
|
||||||
|
**DEPLOYMENT CHECKLIST FOR MULTI-FIX SESSIONS:**
|
||||||
|
- [ ] All commits pushed to git
|
||||||
|
- [ ] Container rebuilt successfully (no TypeScript errors)
|
||||||
|
- [ ] Container restarted with `--force-recreate`
|
||||||
|
- [ ] Container start time > ALL commit timestamps
|
||||||
|
- [ ] Specific log messages from each fix observed (if testable)
|
||||||
|
- [ ] Database state reflects changes (if applicable)
|
||||||
|
|
||||||
|
**Example: Nov 16, 2025 Session (Breakeven SL + Close Verification)**
|
||||||
|
- Fix 1: Breakeven SL (commit 673a493, 08:45:21)
|
||||||
|
- Fix 2: Close verification (commit c607a66, 09:00:42)
|
||||||
|
- Fix 3: TypeScript interface (commit b23dde0, 09:25:10)
|
||||||
|
- Container restart: 09:28:20 ✅ All three fixes deployed
|
||||||
|
- Verification: Log messages include "Using original entry price" and "Waiting 5s for Drift state"
|
||||||
|
|
||||||
### Critical Path Verification Requirements
|
### Critical Path Verification Requirements
|
||||||
|
|
||||||
**Position Manager Changes:**
|
**Position Manager Changes:**
|
||||||
@@ -2013,7 +2050,19 @@ trade.realizedPnL += actualRealizedPnL // NOT: result.realizedPnL from SDK
|
|||||||
- **TypeScript interface:** Added `needsVerification?: boolean` to ClosePositionResult interface
|
- **TypeScript interface:** Added `needsVerification?: boolean` to ClosePositionResult interface
|
||||||
- **Git commits:** c607a66 (verification logic), b23dde0 (TypeScript interface fix)
|
- **Git commits:** c607a66 (verification logic), b23dde0 (TypeScript interface fix)
|
||||||
- **Deployed:** Nov 16, 2025 09:28:20 CET
|
- **Deployed:** Nov 16, 2025 09:28:20 CET
|
||||||
- **Lesson:** In DEX trading, always verify state changes actually propagated before updating local state
|
- **Verification Required:**
|
||||||
|
```bash
|
||||||
|
# MANDATORY: Verify fixes are actually deployed before declaring working
|
||||||
|
docker logs trading-bot-v4 | grep "Server starting" | head -1
|
||||||
|
# Expected: 2025-11-16T09:28:20 or later
|
||||||
|
|
||||||
|
# Verify close verification logs on next trade close:
|
||||||
|
docker logs -f trading-bot-v4 | grep -E "(Waiting 5s for Drift|Position verified closed|needsVerification)"
|
||||||
|
|
||||||
|
# Verify breakeven SL uses database entry:
|
||||||
|
docker logs -f trading-bot-v4 | grep "Breakeven SL: Using original entry price"
|
||||||
|
```
|
||||||
|
- **Lesson:** In DEX trading, always verify state changes actually propagated before updating local state. ALWAYS verify container restart timestamp matches or exceeds commit timestamps before declaring fixes deployed.
|
||||||
|
|
||||||
46. **100% position sizing causes InsufficientCollateral (Fixed Nov 16, 2025):**
|
46. **100% position sizing causes InsufficientCollateral (Fixed Nov 16, 2025):**
|
||||||
- **Symptom:** Bot configured for 100% position size gets InsufficientCollateral errors, but Drift UI can open same size position
|
- **Symptom:** Bot configured for 100% position size gets InsufficientCollateral errors, but Drift UI can open same size position
|
||||||
|
|||||||
Reference in New Issue
Block a user