[Phase 1] Retain existing poller as backstop — fold into new architecture #9

Open
opened 2026-07-14 01:19:30 +00:00 by starsetbyte · 0 comments
Owner

Context

The existing Forgejo issue poller (homelab/cross label detection) must not be discarded. It becomes the recovery backstop once webhooks are the fast path.

What to build

  1. Refactor the existing poller to use the unified normalization path (issue #7).

  2. Poller responsibilities:

    • Missed webhook deliveries
    • Relay downtime recovery
    • Forgejo downtime recovery
    • Initial startup catch-up
    • Manual edits not handled by webhooks
    • Reconciliation after configuration changes
  3. Poll frequency:

    • Phase 1: current frequency (30s)
    • Phase 2+: reduce to 60-120s once webhooks proven reliable
    • Always stays running as safety net
  4. The poller must NOT independently assign work. Issues with homelab/cross labels are translated into Aether offer events (observation-only in Phase 1).

  5. Both webhook and poll paths share deduplication state.

Acceptance

  • Existing poller refactored to use unified normalization
  • Poller detects and handles: downtime recovery, startup catch-up, manual edits
  • Poll frequency configurable
  • Poller does not independently assign work
  • Deduplication shared with webhook path
## Context The existing Forgejo issue poller (homelab/cross label detection) must not be discarded. It becomes the recovery backstop once webhooks are the fast path. ## What to build 1. Refactor the existing poller to use the unified normalization path (issue #7). 2. Poller responsibilities: - Missed webhook deliveries - Relay downtime recovery - Forgejo downtime recovery - Initial startup catch-up - Manual edits not handled by webhooks - Reconciliation after configuration changes 3. Poll frequency: - Phase 1: current frequency (30s) - Phase 2+: reduce to 60-120s once webhooks proven reliable - Always stays running as safety net 4. The poller must NOT independently assign work. Issues with `homelab`/`cross` labels are translated into Aether offer events (observation-only in Phase 1). 5. Both webhook and poll paths share deduplication state. ## Acceptance - [ ] Existing poller refactored to use unified normalization - [ ] Poller detects and handles: downtime recovery, startup catch-up, manual edits - [ ] Poll frequency configurable - [ ] Poller does not independently assign work - [ ] Deduplication shared with webhook path
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
starsetbyte/aether#9
No description provided.