Skip to content

feat: implement context snapshot fetch (Task 8)#2

Merged
itenev merged 2 commits into
mainfrom
feat/context-snapshot-fetch
Jun 6, 2026
Merged

feat: implement context snapshot fetch (Task 8)#2
itenev merged 2 commits into
mainfrom
feat/context-snapshot-fetch

Conversation

@loki-hermes-agent

@loki-hermes-agent loki-hermes-agent Bot commented Jun 6, 2026

Copy link
Copy Markdown

What this PR does

Implements Task 8: Context snapshot fetch for the webhook receiver.

Changes

  • Created webhook-receiver/src/webhook_receiver/context_fetcher.py
    • _query_prometheus: Queries Prometheus for instant vector values (2s timeout)
    • _get_docker_container_status: Queries Docker socket via Unix socket for container state
    • fetch_context_snapshot: Orchestrates the fallback chain (Docker → "unavailable")
    • Dynamically queries peer count and validator count based on client type (lighthouse, prysm, teku, nimbus, lodestar)
  • Integrated into WebhookHandler — context snapshot attached before dedup/storm protection
  • Added 10 unit tests covering success, failure, and fallback scenarios
  • Updated docs/hermes-implementation-plan.md to mark Task 8 complete

Review Fixes (separate commit for easy review)

  • Added Connection: close to Docker socket HTTP request to prevent indefinite hanging
  • Removed broken Prometheus container fallback (up{container=...} doesn't work in eth-docker)
  • Added nimbus and lodestar to validator count queries
  • Added test assertion to verify Connection: close header is sent

Test results

  • All 100 tests passing (30 parent + 70 webhook-receiver)

loki-hermes-agent[bot] added 2 commits June 7, 2026 00:33
- Add context_fetcher.py with Prometheus and Docker socket queries
- Implement fallback chain: Docker → Prometheus → unavailable
- Query peer count and validator count based on client type
- Integrate context snapshot into WebhookHandler before processing
- Add 10 unit tests for context fetcher module
- Update implementation plan to mark Task 8 complete
- Add Connection: close to Docker socket request to prevent hanging
- Remove broken Prometheus container fallback (up{container=...} doesn't work in eth-docker)
- Add nimbus and lodestar to validator count queries
- Add test assertion to verify Connection: close header is sent
@itenev
itenev merged commit 5b6131e into main Jun 6, 2026
2 checks passed
@itenev
itenev deleted the feat/context-snapshot-fetch branch June 6, 2026 21:55
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