Inbox
The Inbox is your single feed for everything happening across the workspace that involves you.
Inbox
The Inbox is a single feed that pulls together everything happening across the workspace that involves you — tickets you own, tickets you are subscribed to, tickets you have been mentioned in, and the results of agent runs you triggered. It is the first thing to check when you sit down and the last thing to clear before you sign off.
The Inbox is workspace-scoped. Each workspace has its own. The badge in the sidebar shows the count of unread items.
Notification Types
| Type | Fired When |
|---|---|
| Comment | A new comment lands on a ticket you are subscribed to (and you did not write it). |
| Assignment | A ticket is assigned to you (member), to an agent you own, or to a team you lead. |
| Status change | A ticket you are subscribed to changes status. |
| Mention | Someone @-mentions you in a ticket comment. |
| Quick create | An AI agent or job created a ticket on your behalf (e.g. from a chat command or automated rule). |
| Job run | A job you own fires — includes the trigger source and outcome. |
| Runtime offline | A runtime one of your agents runs on went offline (the daemon deregistered or disconnected). Lists the affected agents and queued tasks. |
| Runtime online | A runtime one of your agents runs on comes back online; queued tasks will now be picked up normally. |
| Runtime switch | An in-flight agent task was re-dispatched to a different runtime (e.g. its original runtime went offline). Shows the from → to runtime. |
| Runtime update | A runtime you own reported an update result (e.g. a provider/CLI version upgrade) — success or failure. |
| Workspace invitation | An existing user is invited to join a workspace they are not yet a member of. The notification includes an Accept button to join directly from the Inbox. |
Each row shows the type, the source ticket or agent, a short summary, and a relative timestamp. Click the row to jump to the source.
Severity Levels
Each notification also carries a severity that indicates how much attention it needs.
| Severity | Meaning |
|---|---|
| Info | Routine update. No action needed — FYI only. |
| Attention | Something changed that you should be aware of but does not require immediate action. |
| Action required | Needs a response from you — a blocked ticket, a failed run, or an overdue item. |
The inbox badge count and filter tabs surface action-required items first.
Subscribe to Tickets
You are automatically subscribed to every ticket you create, every ticket you are assigned to, and every ticket you comment on. You can also subscribe manually from the ticket's overflow menu.
# Subscribe to a ticket
mopheus ticket subscriber add <ticket-id>
# List ticket subscribers
mopheus ticket subscriber list <ticket-id>
# Unsubscribe
mopheus ticket subscriber remove <ticket-id>Subscribing produces Inbox entries for every relevant event on that ticket. Unsubscribing stops the notifications without removing your past assignments or comments.
To unsubscribe from a ticket you no longer care about, open the ticket and use the same overflow menu.
Mark as Read, Archive, and Restore
Each Inbox row has a read state. Reading happens in three ways:
- Click the row — jumps to the source and marks the row read
- Mark read — the hover toolbar on each row has a check-mark icon
- Mark all as read — the button in the dropdown menu clears every unread item in the current view
Read items do not disappear — they stay in the Inbox so you can scroll back. Use the Unread toggle in the toolbar to hide everything that has already been seen.
For items that are fully handled, you can:
- Archive — archive a single row via hover action, or bulk-archive read messages from the actions menu
- Restore (Unarchive) — switch to the Archived tab to inspect past notifications, and click the restore icon or use Restore all to inbox (or Restore [Category] to inbox) in the overflow menu to bring them back to your active feed
- Delete — permanently delete a single notification, or purge notifications with scoped bulk-delete (Delete all in Inbox, or Delete all archived in Archived view)
Orthogonal Filters and Triage Flow
The Inbox toolbar uses a compact, orthogonal filter design:
- Lifecycle (Inbox / Archived) — toggle between active notifications and archived history
- Unread Toggle — quickly isolate unread notifications with count badge
- Category Dropdown — filter by business domain:
- All types — comprehensive workspace feed
- Tickets — comments, assignments, status changes, mentions, quick creates, and due warnings
- Runtime — runtime offline/online/switch/update events, automated jobs, and failed agent tasks
- Invitations — workspace invitation cards
Scope-Aware Batch Actions ("What You See Is What You Act On")
When a Category or Unread filter is active, the top-right ... actions menu automatically adapts its labels and execution scope to match the current view. For example:
- Filtering by Tickets changes options to Mark tickets as read, Archive read tickets, Archive tickets, and Delete tickets.
- Actions affect only the notifications matching your active filters, preventing accidental operations on unrelated categories.
- Filter preferences (selected lifecycle tab, unread toggle, and category) are automatically persisted per workspace in local storage, preserving your triage context when navigating to ticket details and returning.
A typical morning flow:
- Open Inbox, toggle Unread
- Filter by domain if needed (e.g. check critical Runtime alerts first)
- Triage each row — click into anything you need to act on
- Once handled, use Mark all as read or Archive all read (or category-scoped equivalents)
- Need to reference a past notification? Switch to Archived, locate the item, and optionally restore it to your inbox
CLI Management
You can inspect and manage your inbox directly from the command line using mop:
# List active notifications
mop inbox list
# Filter unread or by notification type
mop inbox list --unread
mop inbox list --type comment
# Inspect archived notifications
mop inbox list --archived
# Mark as read or archive
mop inbox read <id>
mop inbox archive <id>
# Scoped batch operations by notification type and unread state
mop inbox read-all --type comment,mention
mop inbox archive-all --type comment --unread
mop inbox archive-all-read --type workspace_invitation
# Restore notifications back to inbox
mop inbox unarchive <id>
mop inbox unarchive-all --type runtime_switch
# Purge notifications safely with optional type and unread filters
mop inbox delete-all --archived --yes
mop inbox delete-all --type comment --unread --yes