Unified Operations Inbox
Technical architecture of the Master-Detail operations inbox and messaging feed
The Operations Inbox v2 (governed by ADR-0075) serves as the unified operational command feed for restaurant managers and staff. It consolidates incidents, announcements, staff messages, and workflow notifications into a single triaged inbox.
Architectural Overview
The inbox is located at /inbox and is designed around a responsive Master-Detail layout with structured triage states:
Primary Views
- Attention: Urgent, unassigned, or aging items requiring immediate manager action.
- Mine: Items claimed by or explicitly assigned to the signed-in user.
- Active: All open, in-progress, or escalated operational items across the team.
- History: Completed, closed, or dismissed items with full audit history.
Canonical Lifecycle State Machine
All operational items progress through deterministic lifecycle states with optimistic concurrency control (revision checks):
stateDiagram-v2
[*] --> unclaimed: Created
unclaimed --> in_progress: Claim / Assign
in_progress --> waiting: Awaiting Vendor / Info
waiting --> in_progress: Update Received
in_progress --> completed: Resolve / Sign-off
unclaimed --> dismissed: Dismiss Noise
in_progress --> dismissed: Dismiss
completed --> [*]
dismissed --> [*]State Transitions & Ownership
- Claiming: Sets
ownerIdto the current user and moves state toin_progress. - Unclaiming: Releases item back to
unclaimedstate for team pickup. - Escalation: Bumps urgency tier (
low→medium→high→critical) and alerts managers via Slack. - Resolution: Requires resolution notes and logs an immutable audit event.
Keyboard Navigation & Shortcuts
To maximize manager speed during busy service shifts:
J/Kor↓/↑— Navigate feed itemsC— Claim selected itemU— Unclaim selected itemE— Escalate urgencyR— Focus reply / response inputEsc— Deselect / close detail drawer
Mobile Experience
On viewports < 768px, the inbox collapses into a high-density list with 48px touch targets. Selecting an item opens a slide-over sheet preserving full thread history and action buttons without losing feed context.