feat(intake): add signed Linear webhooks - #19
Merged
Conversation
7 tasks
IYENTeam
commented
Jul 27, 2026
IYENTeam
left a comment
Owner
Author
There was a problem hiding this comment.
Intake review completed against head 625882f410c8922c94bfe6c338b380b88f0ed43a.
Tracking issue: #20
Verified
- CI: Build, Check, Clippy, Format, and Test all passed.
- Independent local checkout:
cargo testpassed (761 unit tests plus integration/doc suites; no failures). - Signature verification, timestamp boundaries, queue-failure retry, bounded replay state, body limits/timeouts, rate limiting, private config permissions, and credential redaction have direct test coverage.
Merge blockers / owner gates
- Unrelated diff:
.codex/lsp-client.jsonand.opencode/lsp.jsonconfigure editor/agent LSP behavior and are outside the signed Linear intake contract. Please split them into a separate PR or obtain explicit approval for the expanded scope. - Public/config/runtime contract: the new endpoint,
[linear]config, response semantics, event naming, andconfig showredaction are contract changes and require owner approval before merge. (CHANGELOG.mddoes document the redaction behavior.) - External-integration evidence: the PR states a real Linear issue create/remove reached the sink, but no independently inspectable receipt/log or reproduction record is attached. Please record a sanitized acceptance/sink-delivery receipt and one fail-closed rejection, or obtain owner judgment accepting the current claim.
- Size gate: this PR is 1,444 additions / 40 deletions, so owner review is required regardless of CI status.
No merge was performed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
POST /linearintake with exact raw-body HMAC verification, timestamp validation, bounded replay suppression, rate/concurrency controls, and fail-closed queue admission0600saves, and credential-redactedconfig showlinear.<entity>-<action>events with full signed payload metadata and deterministic routing testsVerification
cargo fmt --checkcargo clippy --all-targets --all-featurescargo test— 765 unit tests plus all integration/doc tests passedcargo build --releasegit diff --checkhttps://op-pi.iyendev.com/linear; a real Linear issue create/remove reached the configured sink with no Linear delivery failuresOperational notes
docs/linear-intake.md