mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-15 04:18:34 +00:00
feat: add async prerequisite installation with retry logic and visual feedback
This commit enhances the boarding flow to handle prerequisite installation asynchronously with proper retry logic and user feedback: - Add retry mechanism with max 3 attempts for prerequisite installation - Display live installation logs via ActivityMonitor during boarding - Reset ActivityMonitor state when starting new activity to prevent stale event dispatching - Support dynamic header updates in ActivityMonitor - Add prerequisitesInstalled event handler to revalidate after installation completes - Extract validation logic into continueValidation() method for cleaner flow - Add unit tests for prerequisite installation logic This improves UX by showing users real-time progress during prerequisite installation and handles installation failures gracefully with automatic retries. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
29135e00ba
commit
30d206e7b9
6 files changed
+253
-10
No files matched your search
@@ -28,12 +28,20 @@ class ActivityMonitor extends Component
|
||||
|
||||
protected $listeners = ['activityMonitor' => 'newMonitorActivity'];
|
||||
|
||||
public function newMonitorActivity($activityId, $eventToDispatch = 'activityFinished', $eventData = null)
|
||||
public function newMonitorActivity($activityId, $eventToDispatch = 'activityFinished', $eventData = null, $header = null)
|
||||
{
|
||||
// Reset event dispatched flag for new activity
|
||||
self::$eventDispatched = false;
|
||||
|
||||
$this->activityId = $activityId;
|
||||
$this->eventToDispatch = $eventToDispatch;
|
||||
$this->eventData = $eventData;
|
||||
|
||||
// Update header if provided
|
||||
if ($header !== null) {
|
||||
$this->header = $header;
|
||||
}
|
||||
|
||||
$this->hydrateActivity();
|
||||
|
||||
$this->isPollingActive = true;
|
||||
|
||||
Reference in new issue
Block a user