Engineers App

Incidents

The list, the detail screen, and the four actions: acknowledge, resolve, reopen, add note.

The incidents list#

The Incidents tab shows every incident in your project, newest activity first. Pull to refresh; the list auto-refreshes on socket events (incident opened / updated / resolved / reopened) with a 750ms debounce so bursts collapse into a single network round-trip.

Three filter chips at the top:

  • All — every incident regardless of state.
  • Open — only status = 'open'. Use this when triaging.
  • Assigned to me — incidents you acknowledged.

Tap any row to open the detail screen.

The detail screen#

Top-down, the detail screen has:

  • Header card — severity + status pills, title, description, source, occurrence count, last-seen time.
  • Resolution / ack metadata chips — "Resolved by Alice · 4m ago" / "Acknowledged by Bob · 12m ago". Only shown when populated.
  • Activity trail — every event on this incident in chronological order. Includes paging events, acks, escalations, AI severity changes, notes.
  • Pages fired — one row per (engineer, channel) page dispatch, with delivery status.
  • Action bar at the bottom — content depends on current status (see below).

The four actions#

What the bottom action bar shows depends on the incident's current status:

Current statusPrimary actionAlways available
openAcknowledgeAdd note
acknowledgedResolveAdd note
resolvedReopenAdd note

Acknowledge#

Marks the incident as acknowledged, records your response time, and cancels in-flight escalation. The activity trail gets an engineer_acknowledged event with the response time in seconds. Any engineer in the project can ack — not just the one who got paged — so a teammate noticing the incident can resolve the page without you waking up.

Idempotent: ack'ing an already-ack'd incident returns the existing response time, no double event.

Resolve#

Closes the incident. Confirmation dialog first (it's a one-tap finality). On confirm: status becomes resolved, any pending/sent pages are marked acknowledged, an incident_resolved event lands on the trail, and the socket fires incident:resolved so dashboards update live.

Idempotent: re-resolving returns the existing resolved_at.

Reopen#

Resolved incidents are not dead ends — if the underlying issue recurs, reopen flips status back to open, clears resolved_at, clears acknowledged_at, refreshes last_seen_at, and appends an incident_reopened event. The full resolution history stays visible in the timeline.

Reopen ≠ re-page

Reopening does not re-trigger the paging engine. If you want to actively page someone after reopen, use the dashboard's Page now button targeting a specific engineer.

Add note#

Always available regardless of status. Opens a text dialog (max ~2KB). Saves as a note_added event on the activity trail attributed to you. Notes are visible to admins on the dashboard and to other engineers in the app.

Use notes to:

  • Record what you found while triaging.
  • Hand off context to whoever picks up after you.
  • Drop a workaround for repeat incidents.
  • Note the root cause as you discover it.