Skip to content

fix(webhook): accept X-Hindsight-Signature - #80329

Open
sg-shag wants to merge 1 commit into
NousResearch:mainfrom
sg-shag:fix-webhook-hindsight-signature-header
Open

fix(webhook): accept X-Hindsight-Signature#80329
sg-shag wants to merge 1 commit into
NousResearch:mainfrom
sg-shag:fix-webhook-hindsight-signature-header

Conversation

@sg-shag

@sg-shag sg-shag commented Aug 6, 2026

Copy link
Copy Markdown

Summary

  • accept X-Hindsight-Signature in the generic webhook adapter
  • treat it as the same raw-body sha256=<hex> contract already accepted for X-Hub-Signature-256
  • preserve existing GitHub-style behavior unchanged

Validation

  • before patch: X-Hub-Signature-256 returned 200; X-Hindsight-Signature returned 401 for the same signed payload
  • after patch + restart: both headers returned 200

Closes #80327

Alternative considered

A possible alternative is to make Hindsight emit X-Hub-Signature-256 directly, or allow selecting that header name in Hindsight webhook delivery config. Related Hindsight discussion: vectorize-io/hindsight#3071

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/gateway Gateway runner, session dispatch, delivery platform/webhook Webhook / API server area/auth Authentication, OAuth, credential pools sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages labels Aug 6, 2026
andrexibiza added a commit to andrexibiza/hermes-agent that referenced this pull request Aug 16, 2026
…odes, signature_mode across CLI/REST/desktop, mode-bound test signing

Adapts HwangJohn's NousResearch#47849 (GitLab Standard Webhooks wire format: webhook-id/
webhook-timestamp/webhook-signature, signed {id}.{timestamp}.{raw_body}) and
sg-shag's NousResearch#80329 (X-Hindsight-Signature sha256=<hex> raw-body contract) into
the explicit-mode architecture as dedicated signature modes, preserving
attribution. Legacy gitlab mode remains the plaintext X-Gitlab-Token path.

- webhook_auth: gitlab_standard + hindsight modes; SIGNATURE_MODES extended
- CLI: subscribe --signature-mode persists on the route; test signs per the
  route's configured mode (all seven wire formats); list shows the mode
- REST: WebhookCreate.signature_mode; router persists and summarizes it
- Desktop: signature-mode select in the create dialog, detail display,
  i18n (en/zh), API types
- Tests: real wire-format acceptance + cross-mode rejection for both modes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/auth Authentication, OAuth, credential pools comp/gateway Gateway runner, session dispatch, delivery P3 Low — cosmetic, nice to have platform/webhook Webhook / API server sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Accept X-Hindsight-Signature in generic webhook adapter

2 participants