Skip to content

feat(agent): add event-driven listener with durable retries#794

Closed
AlexMikhalev wants to merge 2 commits intomainfrom
feat/events-listener
Closed

feat(agent): add event-driven listener with durable retries#794
AlexMikhalev wants to merge 2 commits intomainfrom
feat/events-listener

Conversation

@AlexMikhalev
Copy link
Copy Markdown
Contributor

Summary

  • Add control_plane::events module with NormalizedAgentEvent types
  • Add event normalization from Gitea webhook/poll sources
  • Add terraphim_agent::listener for Gitea event-driven issue processing
  • Implement durable retry logic for transient claim failures
  • Add deduplication via event_id tracking
  • Wire listener into agent main with ADF command parsing

Depends on: #793 (tracker PR must merge first)

Extracted from #790 as part of the clean PR split.

Refs #523

Alex added 2 commits April 12, 2026 12:01
…adapter

- Add proper pagination for Gitea issue fetching (50 per page)
- Add claim_issue() with idempotency, conflict detection, and verification
- Add ClaimResult/ClaimStrategy types for structured claim outcomes
- Add Default for GiteaConfig to ease construction at call sites
- Add LinearTrackerAdapter in symphony for tracker API compatibility
- Support gitea-robot CLI with REST API fallback for claims
- Update orchestrator GiteaConfig sites with ..Default::default()
- Fix validation test latency threshold for CI stability

Refs #791
- Add control_plane::events module with NormalizedAgentEvent types
- Add event normalization from Gitea webhook/poll sources
- Add terraphim_agent::listener for Gitea event-driven issue processing
- Implement durable retry logic for transient claim failures
- Add deduplication via event_id tracking
- Wire listener into agent main with ADF command parsing

Refs #523
@AlexMikhalev
Copy link
Copy Markdown
Contributor Author

Closing as superseded by current main.

After refreshing this branch onto current main, the event-driven listener and tracker behavior that this PR originally carried is already present on main from the earlier listener/tracker merge path.

What remains after refresh is only a small 4-file cleanup around GiteaConfig::default() and ..Default::default() call sites in orchestrator/tracker code. That remaining delta no longer matches this PR title or scope.

The safe path is to close this PR as superseded. If that small cleanup is still desired, it should be reopened later as a new focused PR with the correct title and validation scope.

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