[Phase 1] Build unified normalization path for webhook + poller #7
Labels
No labels
[cloud]
[cross]
[done]
[homelab]
[phase-1]
[phase-2]
[phase-3]
[phase-4]
cloud
cross
done
homelab
ingestion
integration
phase-1
phase-2
phase-3
phase-4
subagent-auto
subagent-build
subagent-gpu
subagent-reason
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
starsetbyte/aether#7
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
The existing Forgejo issue poller and the new webhook path must feed the same idempotent normalization function. This prevents double-processing and ensures consistent event shape regardless of delivery mechanism.
What to build
Define a single
normalize_forgejo_event()function that accepts:webhookorpoll)repo:issue_number:action:updated_at)The function produces the canonical normalized event with actor/origin fields.
Deduplication keys:
delivery_idfromX-Forgejo-Deliveryheaderrepository:issue_number:action:updated_athashcorrelation_idafter normalizationThe existing homelab-tagged issue polling loop becomes one ingestion rule:
homelaborcrosslabel -> translate to Aether offer/task-discovery eventBoth paths share the same SQLite deduplication table.
Acceptance