feat(investigations): Add Sentry-Seer orchestration protocol - #123242
feat(investigations): Add Sentry-Seer orchestration protocol#123242arslnb wants to merge 1 commit into
Conversation
Add signed create, read, and command requests plus a tenant-scoped callback that durably stages sequenced Seer events for the reducer follow-up.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e3debab. Configure here.
| body: dict[str, Any] = { | ||
| "requestId": str(command.request_id), | ||
| "expectedWorkflowVersion": command.expected_workflow_version, | ||
| "command": {"type": command.type, **command.payload}, |
There was a problem hiding this comment.
Command payload sent in snake_case
Medium Severity
dispatch_investigation_orchestration_command spreads command.payload onto the Seer request without converting keys back to camelCase. Stored payloads come from command validators as snake_case, so fields such as timeRange, targetId, and hypothesisId go out as time_range, target_id, and hypothesis_id. The rest of this protocol, including create source.timeRange, uses camelCase on the wire, so those commands will not match Seer's contract.
Reviewed by Cursor Bugbot for commit e3debab. Configure here.


Adds the private bidirectional protocol between Sentry's investigation control plane and Seer. Sentry can issue signed create, read, and command requests with deterministic creation identity, validated responses, and organization-bound viewer context.
The Seer callback requires a signed viewer context matching the requested organization, validates a bounded versioned event envelope, and durably stages sequenced events with replay and collision handling. It deliberately reports events as pending until the reducer follow-up applies them, so this PR does not mutate projections or activate execution.
This is stacked on #123086. Before execution wiring lands, the Seer runtime PR must align its source models with Sentry's canonical metric context and regenerate its typed RPC bindings for
deliver_investigation_event. Frontend-owned embed declarations remain in the evidence-rendering PR because backend and frontend changes cannot deploy atomically.