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 status | Primary action | Always available |
|---|---|---|
| open | Acknowledge | Add note |
| acknowledged | Resolve | Add note |
| resolved | Reopen | Add 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
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.