fix(webhook): close Task 10 intake identity and raw-bound contracts - #90236
fix(webhook): close Task 10 intake identity and raw-bound contracts#90236andrexibiza wants to merge 1 commit into
Conversation
7f57a99 to
1cfb810
Compare
d6968c5 to
09fef5b
Compare
|
Architecture/topology interlock: #90049 now treats this PR as the canonical Task 10 webhook node (superseding historical #85523), with terminal delivery/result truth owned separately by #85644 or its current-main successor. Task 10 should therefore preserve exact operation/route/provider identity needed by downstream result accounting, but should not claim end-to-end success semantics that belong to Task 13. Intake acceptance is not delivery completion; the campaign can only claim terminal result truth once the fan-out layer preserves per-target terminal outcomes without collapsing partial/unknown state into success. |
andrexibiza
left a comment
There was a problem hiding this comment.
Canonical Task 10 receipt: this one-commit current-main PR supersedes #85523 as the live intake/HTTP-contract owner in the webhook train. Composition order is #85002 (or compressed successor preserving effective-config ownership) → #90236 → #85318 → #90304 → #85644 → #85638 → #85640. #85523 remains historical provenance only; no downstream lane should reintroduce its branch topology. Task 19 alone performs final lane assembly.
andrexibiza
left a comment
There was a problem hiding this comment.
Exact-head closure review at 09fef5bbc60fe37ca47192dbb9afabe4a6fa6d2c: this is the canonical Task 10 intake owner and the semantic compression is sound. The current three-file diff preserves provider-native delivery identity, composite (profile, route, provider, delivery_id) idempotency plus body-conflict detection, profile/route rate isolation, strict JSON-object intake, and UTF-8 byte-bounded structurally valid prompt envelopes. Exact-head CI 32381041406, Docker 32381040709, and Nix 32381040529 are green. No remaining code-review blocker on Task 10 itself. Downstream #85318 must compose onto this exact contract and must not remove hashlib, because Task 10 now owns the request-body digest used by the idempotency ledger.
Centralize route/provider/verifier binding, provider-native retry identity, provider-scoped event extraction, and immutable intake-envelope construction behind one domain authority. Keep legacy header inference isolated to undeclared compatibility routes and never use timestamps as delivery identity. Refs NousResearch#90989 Interlocks NousResearch#90236 and NousResearch#85318.
52ac6fb to
416c5e4
Compare
Architecture interlock — Task Completion VerificationThis PR is the Task 10 canonical successor in Amendment I to All Gods Must Die: Adversarially Verified Transformation. The amendment records the explicit lineage Related #80551 |
|
@teknium1 maintainer review requested on exact head Revalidated now: GitHub reports open/non-draft/mergeable, with exact-head CI This remains the canonical executable Task 10 owner for authenticated intake/idempotency/raw-body bounds. Final webhook convergence should preserve its exact body-hash/idempotency semantics while composing #85318 verifier authority and #90995's immutable provider/intake domain contract; do not reimplement those questions in #85640. |
HTTP-mechanics boundary published in #91913The authority-continuity manifest retains this PR as the strict HTTP/raw-body/rate/idempotency owner after #90995 binds the canonical provider namespace. Composition rule:
Contract PR: #91913 |
This closes real intake-contract holes with the right primitives: scope-keyed idempotency (profile/route/provider + delivery id) ending cross-route ID aliasing, body-hash CONFLICT as an explicit 409 instead of a silent wrong-dedupe, a true hard ceiling enforced with reserve-at-insertion, and the binary-search raw envelope that always emits parseable JSON within the byte cap. The one-winner concurrency test and envelope-cap fuzz-ish parametrization are exactly the tests this logic needs. Two behavioral risks to weigh:
Smaller notes: the header-inference precedence in |
416c5e4 to
4dd3ff8
Compare
Recompose the canonical authenticated-intake slice directly on live upstream main d5281f5. Preserve the current-main non-multiplex profile-isolation boundary while closing provider-scoped idempotency, profile/route rate isolation, object-only JSON admission, and UTF-8 byte-bounded raw payload rendering.
4dd3ff8 to
b0f8dab
Compare
Exact-current-main completion receipt — Task 10The canonical branch is now rewritten directly on current upstream
This receipt supersedes every earlier head/base/run receipt on the thread and keeps #85523 as historical provenance only. No status is borrowed from an adjacent SHA. No self-approval or upstream merge was performed; independent acceptance remains with the maintainer. |
Summary
Canonical closure candidate for Webhook Feature Package Task 10. This branch is semantically compressed directly onto exact upstream
main@d5281f59819d2ea2ce6754faec2ce317c92366c8as one commit. It does not replay historical #85523 topology or carry campaign receipts, attribution churn, or patch-applier machinery.Exact topology
d5281f59819d2ea2ce6754faec2ce317c92366c8b0f8dab4029e53eab4b8c88ea9b9a3d4638b3eb11564dab72a19e4efaa0bb1001bf6e191a2a7bb27+640/-81Owned files:
gateway/platforms/webhook.pytests/gateway/test_webhook_adapter.pytests/gateway/test_webhook_task10_current_main.pyThe composition preserves current-main #91583 profile authority: with multiplexing disabled, only a prefix matching the serving Hermes home may fall through; every other
/p/<profile>/prefix fails closed through_PROFILE_REJECTED.Closed contracts
Provider-native intake identity
(profile, route, provider, delivery_id);accepted,duplicate, orconflicttruth, including HTTP 409 for same-key/different-body reuse;Bounded state and rate authority
idempotency_max_entriesdeterministically;(profile, route)and returnRetry-Afteron 429.Strict HTTP intake
Content-Encoding;UTF-8 complete-envelope raw bounds
{__raw__}emits a complete JSON envelope capped at 4,000 UTF-8 bytes;{__raw__:N}supports explicit 64–1,000,000-byte caps;Exact-head verification
At exact head
b0f8dab4029e53eab4b8c88ea9b9a3d4638b3eb1:32641254376— success32641254037— success32641254049— successtests/gateway/test_webhook_task10_current_main.pypins profile/route/provider/id isolation, body-conflict truth, same-key concurrency, insertion-time cache ceilings, malformed ceiling normalization, byte-capped parseable envelopes, invalid-cap fail-closed behavior, and one-pass substitution.No status is inherited from the previous head, #85523, or an adjacent PR. Upstream
mainremained the exact parent through post-run read-back.Interlocks / provenance
hashlibbody-hash ownership and the [Feature/Bug]: Support peer-routed @mentions from remote gateways to This-device bots with reply relay #91583 profile boundary.Maintainer handoff
One commit, three owned files, zero unresolved review threads, exact-head green, exact-current-main parentage, and GitHub mergeable. Task 10 has no remaining code, execution, or topology blocker.