fix(ci): keep gateway guidance within size budget (#7584)

This commit is contained in:
Willem Jiang 2026-10-26 23:01:17 +08:00 committed by GitHub
parent 29ed2ebcb1
commit 7a2dda1326
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -139,12 +139,11 @@ owner-scoped assistant version selection remains enabled.
| **GitHub Webhooks** (`/api/webhooks/github`) | `POST /` - receive GitHub App / repo webhook deliveries. Verifies `X-Hub-Signature-256` against `GITHUB_WEBHOOK_SECRET`; exempt from auth + CSRF because authenticity is enforced by HMAC. The route is fail-closed: mounted only when `GITHUB_WEBHOOK_SECRET` is set, or when explicit dev opt-in `DEER_FLOW_ALLOW_UNVERIFIED_GITHUB_WEBHOOKS=1` is set. Recognized events include `ping`, `issues`, `issue_comment`, `pull_request`, `pull_request_review`, and `pull_request_review_comment`; unknown events return 200 with `handled=false`. Fan-out runtime failures return 503, keeping the delivery recorded as failed for manual/API/scripted redelivery (GitHub does not automatically retry any failed delivery, 5xx included); permanent/non-retryable conditions such as `channels.github.enabled: false`, unknown events, malformed payloads, or unavailable channel service return 200 with a skipped/handled response. |
| **GitHub Event-Driven Agents** | Custom agents can declare a `github:` block in their `config.yaml` to bind to repos and event triggers. Webhook fan-out publishes one `InboundMessage` per matching binding to the channel bus; `GitHubChannel` routes those messages through `ChannelManager`. The response `dispatch` summarizes matched/fired/skipped agents. |
Edit-replay and messages-input clarification may replace checkpoint knowledge
scope with a validated client snapshot; regenerate, null-input and `Command` resume
recover checkpoint scope from the originating genuine user turn, skipping
server-generated hidden context, and ignore client values. Scope admission
treats `input.messages: null` as an empty message collection so
conversation-reference runs without a prompt remain valid.
Edit replay and messages-input clarification may replace knowledge scope with a
validated client snapshot. Regenerate, null-input and `Command` resumes recover
scope from the genuine source user turn, skip hidden server context, and ignore
client scope. Treat `input.messages: null` as empty to allow promptless
conversation-reference runs.
Thread identifiers use the shared `deerflow.utils.thread_id` contract
`^[A-Za-z0-9_-]{1,64}$`. Caller-provided opaque IDs remain supported; UUIDs