Skip to content

feat: resilient Pulse registration via NewWithRetry#4

Merged
davidfic merged 1 commit intomainfrom
feat/resilient-pulse-integration
Apr 16, 2026
Merged

feat: resilient Pulse registration via NewWithRetry#4
davidfic merged 1 commit intomainfrom
feat/resilient-pulse-integration

Conversation

@davidfic
Copy link
Copy Markdown
Contributor

Summary

Switches Pilot's Pulse integration from `sdk.New()` to `sdk.NewWithRetry()`. Registration now retries with exponential backoff (~2 min). If Pulse is unreachable, Pilot continues standalone. Pins pulse SDK to v0.2.0.

No new download-client discovery code needed — Pilot's existing `SyncDownloadClients()` loop already picks up download-client entries auto-created by Pulse when Haul registers.

Test plan

  • CI green
  • Pilot starts standalone when Pulse is unavailable (after ~2 min of retries)
  • Pilot registers with Pulse when available and syncs download clients within 30s

Switches from sdk.New() to sdk.NewWithRetry() which retries
registration with exponential backoff (~2 min). If Pulse is
unreachable after all retries, Pilot continues in standalone mode
and download clients must be configured manually via the web UI.

The existing SyncDownloadClients() loop automatically picks up any
download-client services (like Haul) that register with Pulse and
get auto-created as download-client entries. No new discovery code
is needed — the plumbing already exists.

Pins pulse SDK to v0.2.0 (NewWithRetry, ServiceAPIKey, resilient
heartbeat with re-registration on persistent failure).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davidfic davidfic merged commit 907eb02 into main Apr 16, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant