Signals

Resolve or reopen a signal

Resolve or reopen a signal. Dismissing is not possible here.

Requires MEMBER role or higher in the project's workspace (the write service decides). Resolving needs a reason; the reason other also needs a note. A resolved signal opens again by itself when its detector finds the problem in a trace that started after the resolve. Send expected_status to refuse the change when someone else changed the status first. Setting the status the signal already has changes nothing.

Args: request (Request): Incoming request (rate-limit plumbing). response (Response): Outgoing response (rate-limit plumbing). auth (AccountStampedAuth): Account-scope user auth (session token or CLI access JWT); its resolved user_id becomes the actor. signal_id (str): The signal to change. payload (SignalStatusRequest): The project, the target status, and the reason, note and expected status. _live (None): Write-path liveness gate (blocks a revoked JWT session).

Returns: SignalStatusResponse: The signal with its new status.

Raises: HTTPException: The write service's 400/403/404/409 verbatim, or a 503 when its response is ambiguous.

patch/api/v1/public/signals/{signal_id}/status

Request

  • Base URL
    https://app.traceroot.ai
  • URL
    https://app.traceroot.ai/api/v1/public/signals/{signal_id}/status
  • Auth
    HTTP bearer

Path parameters

signal_idstring required

Request body

expected_status'open' | 'resolved' | 'dismissed'

The status the caller last read. When the signal's current status differs, nothing is written and the answer is a 409.

notestring

A free-text note; required when reason is "other"

project_idstring required
reason'fixed_elsewhere' | 'fixed_by_pr' | 'already_fixed_before' | 'other'

Why the signal is resolved; required when status is "resolved"

status'resolved' | 'open' required

Response

Successful Response

changedstring[] required
updatedboolean required

Changes

No recorded changes to this operation across all 1 revision of this API.