- 07 Oct, 2025 10 commits
-
-
Stefy Lanza (nextime / spora ) authored
- Detect running local worker processes on cluster master using psutil - Include local workers in cluster nodes API response with distinct styling - Show local workers with blue background and 'Local' status indicator - Display backend information (CUDA/ROCm) in worker names - Indicate that local workers require manual restart for driver changes - Update API documentation with local worker response format - Local workers show N/A for weight since they don't participate in cluster load balancing
-
Stefy Lanza (nextime / spora ) authored
- Add weight column to cluster nodes table showing load balancing weight - Set default weights: master=0, clients=100 - Update API response to include client weight - Update frontend to display weight information - Update API documentation with weight field
-
Stefy Lanza (nextime / spora ) authored
- Add --shared-dir argument to cluster_master.py and cluster_client.py - Implement shared directory file transfer for model files - Falls back to websocket transfer if shared directory unavailable - Update cluster client to handle model_shared_file messages - Add documentation for shared directory feature in architecture.md - Maintain backward compatibility with existing websocket transfers
-
Stefy Lanza (nextime / spora ) authored
- Add uptime calculation for cluster nodes and master - Include active/completed job counts per node and totals for master - Display cluster master statistics before the nodes list - Update API response format with master_stats and node-level metrics - Add uptime formatting and job statistics to frontend - Update API documentation with new response structure
-
Stefy Lanza (nextime / spora ) authored
- Add hostname passing from cluster client to master - Create client_driver_preferences database table for storing driver preferences - Add /admin/cluster_nodes page with auto-updating node list - Add API endpoints for fetching nodes and setting driver preferences - Update admin navbar and API documentation - Apply database migrations
-
Stefy Lanza (nextime / spora ) authored
Implement secure websockets for cluster master and client with auto-generated self-signed certificates
-
Stefy Lanza (nextime / spora ) authored
Show all defaults in /admin/config if not set in database, hide configs set by config file/CLI/env, add redis config
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
Modify /admin/config to show only database-set configurations, excluding database and network configs
-
Stefy Lanza (nextime / spora ) authored
-
- 06 Oct, 2025 30 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Modified analysis page to only show stats sidebar for admin users - Enhanced /api/stats endpoint to include cluster information for admins - Added GPU backend detection summary to stats - Updated JavaScript to display comprehensive system and cluster stats - Stats now show local resource usage and cluster status for administrators Note: Full job-specific worker stats (showing resources from the machine executing each specific job) would require additional development to track job-to-worker mappings and implement worker resource reporting.
-
Stefy Lanza (nextime / spora ) authored
- Added --weight parameter to client connections (default: 100) - Modified cluster master to prioritize GPU-enabled clients for job distribution - GPU clients always get precedence over CPU-only clients - When no GPU workers have required model, GPU clients still preferred for model distribution - Client weights are combined with process weights for load balancing - Higher weight = more jobs assigned to that client Job distribution priority: 1. GPU clients with required model already loaded 2. CPU clients with required model already loaded 3. GPU clients (model will be sent) 4. CPU clients (model will be sent) Within each category, clients are selected based on combined weight.
-
Stefy Lanza (nextime / spora ) authored
- Added --no-gpu command line flag - When --no-gpu is specified or no GPUs are detected, local worker processes are not started - This allows running vidai as a cluster master without local GPU processing - Useful for dedicated cluster master nodes that only manage remote clients
-
Stefy Lanza (nextime / spora ) authored
- Add GPU detection utility functions in compat.py - Modify vidai.py to detect GPUs at startup and configure backends - Update cluster_client.py to detect GPUs and send capabilities to master - Modify cluster_master.py to handle client capabilities and model distribution - Update config.html template to dynamically show/hide backend options - Update web.py config route to handle dynamic backend availability - Add model file transfer functionality between master and clients - Update worker processes to handle model downloads from master - Test GPU detection and configuration - Update API documentation for new capabilities Features implemented: - Automatic detection of NVIDIA CUDA and AMD ROCm GPUs - Dynamic configuration of analysis/training backends based on available hardware - Cluster clients report GPU capabilities to master - Model distribution from master to clients when needed - Admin config page hides unavailable backend options - Updated API documentation reflecting new GPU detection capabilities
-
Stefy Lanza (nextime / spora ) authored
- Add --client mode with required --cluster-host, --cluster-port, --token options - Optional --optimize and --flash for client mode - Convert cluster communication from TCP to bidirectional websockets - Implement file transfer placeholders for jobs and results - Update cluster master to authenticate clients via cluster_token - Add configuration page for managing cluster clients (placeholder) - Update build scripts to include cluster components - Add websockets to requirements - Disable web/API interfaces in client mode
-
Stefy Lanza (nextime / spora ) authored
- Modified /api/analyze to return job_id immediately after file upload - Added /api/result/{job_id} endpoint for checking job status - Job status includes: queued (with queue position), processing, completed (with result), failed - Analysis runs in background thread - Updated API documentation with new async workflow and result endpoint examples
-
Stefy Lanza (nextime / spora ) authored
- Modified /api/analyze to accept file uploads for all users - Restricted file_path parameter to admin users only - Added chunked file upload support with upload_id, chunk_number, total_chunks - Updated API documentation with file upload examples and chunked upload guide - Files are temporarily stored and cleaned up after processing
-
Stefy Lanza (nextime / spora ) authored
- Added .container CSS rule to constrain content width to 1200px max-width - Added auto margins for centering and 2rem side padding - Now matches the layout constraints of dashboard and history pages
-
Stefy Lanza (nextime / spora ) authored
- Moved API documentation content inside standard container div like dashboard/history pages - Updated header styling to work within container (rounded corners, padding, shadow) - Maintained modern design while following consistent page layout patterns
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Added gradient headers with icons for both API docs - Implemented card-based layout for endpoints - Added color-coded method badges and parameter styling - Enhanced code blocks with syntax highlighting colors - Added responsive design for mobile devices - Included FontAwesome icons for better visual hierarchy - Used consistent color schemes (green for user API, red for admin API)
-
Stefy Lanza (nextime / spora ) authored
- Changed all remaining @require_admin to @admin_required - All decorators now use the centralized utils.py versions
-
Stefy Lanza (nextime / spora ) authored
- Changed all @require_admin to @admin_required in admin.py - Now uses the decorator from utils.py instead of auth.py
-
Stefy Lanza (nextime / spora ) authored
- Removed require_admin import from auth.py in admin.py - Now uses admin_required from utils.py instead - Prevents session access at import time
-
Stefy Lanza (nextime / spora ) authored
- Created vidai/utils.py with shared authentication decorators - Removed duplicate decorator definitions from web.py, api.py, and admin.py - Updated all modules to import decorators from utils.py - Maintains consistent authentication logic across all modules
-
Stefy Lanza (nextime / spora ) authored
- Added admin_required decorator definition in api.py to fix NameError
-
Stefy Lanza (nextime / spora ) authored
- Added login_required decorator definition in api.py to fix NameError
-
Stefy Lanza (nextime / spora ) authored
- Created vidai/admin.py with Flask Blueprint for admin web routes - Moved all /admin/* web routes from web.py to admin.py - Added /admin/settings and related update routes - Updated navigation links in base.html to use correct admin URLs - Registered admin blueprint in web.py
-
Stefy Lanza (nextime / spora ) authored
- Created vidai/api.py with Flask Blueprint for all /api/* and /admin/api/* routes - Moved API authentication decorators and helper functions to api.py - Removed API routes from web.py and registered the API blueprint - Set server_dir in api.py from web.py arguments
-
Stefy Lanza (nextime / spora ) authored
- Added 'API Documentation' link for all users pointing to /api - Added 'Admin API Documentation' link for admin users pointing to /admin/api
-
Stefy Lanza (nextime / spora ) authored
- Modified /stats to /api/stats with authentication - Updated /api/analyze to fully implement analysis functionality - Changed /api/browse to /admin/api/browse - Implemented /admin/api/train, /admin/api/users, /admin/api/cluster_tokens endpoints - Implemented /api/api_tokens endpoint - Created /api and /admin/api documentation pages with curl examples
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-