No description
Issue: When refreshing the page after selecting a client, saved files would not display because init() was called without await, causing a race condition where loadSavedFiles() could execute before selectedClient was properly set. Fix: Added await to init() call in DOMContentLoaded handler (line 3280) to ensure init() completes before continuing. This guarantees that loadSavedFiles() is called after selectedClient is properly set. Also added debug logging to trace selectedClient value through the initialization process for easier troubleshooting. Testing: After this fix, refreshing the page should properly restore the selected client and display their saved files. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| __pycache__ | ||
| backend | ||
| config | ||
| frontend | ||
| output | ||
| uploads | ||
| .gitignore | ||
| ai_qc.service | ||
| apache_config.conf | ||
| AUTH_FIX_GUIDE.md | ||
| backend_backup_20251206_153116.tar.gz | ||
| CLAUDE.md | ||
| CLEANUP_SUMMARY.md | ||
| config.env | ||
| debug_mode.txt | ||
| DEPLOYMENT_RESTRUCTURE.md | ||
| DEPLOYMENT_STEPS.md | ||
| DEV_PROD_SETUP.md | ||
| FOLDER_STRUCTURE.md | ||
| headless_curl_examples.sh | ||
| MIGRATION_CHECKLIST.md | ||
| MIGRATION_GUIDE.md | ||
| MIGRATION_SUMMARY.md | ||
| msal_pkce_flow.md | ||
| README.md | ||
| REORGANIZATION_COMPLETE.md | ||
| requirements.txt | ||
| server.log | ||
| server_debug.log | ||
| web_ui.html | ||
Visual AI QC - Repository Structure
⚠️ Important: Work in backend/ Directory
All development and production code is now in the backend/ directory.
Directory Structure
ai_qc/
├── backend/ # 👈 MAIN APPLICATION - Work here!
│ ├── api_server.py # Flask application
│ ├── llm_config.py # LLM configuration (Gemini model settings)
│ ├── profile_config.py # Profile management
│ ├── visual_qc_apps/ # QC check modules (33 checks)
│ ├── profiles/ # QC profile configurations (6 profiles)
│ ├── brand_guidelines/ # Reference assets
│ ├── scripts/ # Deployment scripts
│ ├── config/ # Environment configs
│ ├── uploads/ # File uploads (production)
│ ├── output/ # Generated reports (production)
│ └── ... # All other application files
│
├── frontend/ # Frontend-only deployment (optional)
├── config/ # Legacy config (deprecated)
└── CLAUDE.md # Development guide
Quick Start
Local Development
cd backend/
./scripts/run-local.sh
# Access at http://localhost:7183
Production Deployment
# SSH to production server
ssh user@server
# Deploy backend to /opt/ai_qc
cd /opt/ai_qc
git pull origin main
cd backend
sudo systemctl restart ai_qc.service
Why This Structure?
Previously, we had duplicate files in both root and backend/ directories, causing sync issues. Now:
✅ Single source of truth: All code in backend/
✅ No sync issues: No duplicate files to keep in sync
✅ Clear structure: Production deploys from backend/
✅ Simpler workflow: One place to make changes
Documentation
- Full Documentation: See
backend/CLAUDE.md - Deployment Guide: See
backend/DEV_PROD_SETUP.md - API Endpoints: See
backend/README.md
Making Changes
- Navigate to
backend/ - Make your changes
- Test locally with
./scripts/run-local.sh - Commit and push
- Deploy to production:
git pullon server
🚀 Always work in the backend/ directory!