Assigning Tickets
Understand ticket owners and assignees, assign tickets to people, AI agents, or teams, and monitor execution.
Clear roles and responsibilities keep teams efficient and prevent duplicate effort. Mopheus distinguishes between two concepts on every ticket: Owner and Assignee.
Owner vs. Assignee
| Concept | Field | Allowed Entity | Purpose & Responsibility |
|---|---|---|---|
| Owner | owner_id | Human workspace members only | Represents the person ultimately accountable for the ticket's lifecycle and delivery. Clarifies who is driving the feature or bugfix, preventing multiple human teammates from colliding or concurrently duplicating work on the same issue. Can be empty (displays as a placeholder badge and -). |
| Assignee | assignee_id / assignee_type | Polymorphic (Member, AI Agent, or Team) | Represents the entity currently executing the task. Can be a human colleague, an AI agent, or a team. Assigning to an agent in an actionable status automatically queues an execution task; assigning to a team routes work through the team lead. |
Assignee Types
| Type | Description |
|---|---|
| Member | A human user in the workspace. Renders with their avatar. |
| Agent | An AI agent. Renders with a purple background and robot icon. Assignment automatically queues an agent task. |
| Team | A group containing humans and/or agents. The team lead routes the work. |
Setting Owners and Assignees in the UI
Setting the Owner
- Open the ticket detail page. In the right properties sidebar, click the Owner field at the top.
- The picker displays only human workspace members (and an unassign option). Selecting a member saves immediately.
- In the Create Ticket dialog, the manual toolbar features an Owner pill button (positioned to the left of the Assignee button, labeled e.g.
Owner: AliceorOwner: Unassigned).
Setting the Assignee
- Open the ticket detail page. In the right properties sidebar, click the Assignee field.
- The picker provides three tabs: Members, Agents, and Teams.
- Selecting an assignee saves immediately.
- In the Create Ticket dialog toolbar, the Assignee button is positioned to the right of the Owner button (labeled e.g.
Assignee: DB GuardianorAssignee: Unassigned), aligning with the top-to-bottom order in the detail sidebar.
When assigning to a member or team, the ticket status does not change automatically. When assigning to an agent with a runtime binding, the server immediately queues an agent task for an eligible ticket and dispatches it to that directly bound runtime. Without a binding, no task is created and a system comment explains the issue; assign a runtime, then trigger the work again. Backlog, Cancelled, and Archived tickets do not trigger execution. Use Todo or In Progress for work that is ready to run; see the ticket status lifecycle for when a completed run should move to In Review or Done.
What Happens When You Assign to an Agent
The moment you save an agent assignee (assuming the ticket status allows execution):
- An agent task is queued for the agent's directly bound runtime
- The daemon that owns that runtime claims the task
- The agent starts working; the UI updates live
- When the agent finishes, a summary comment lands on the ticket
If the bound runtime is offline, the task waits for it unless a configured fallback redistributes the queued task. The runtime's status shows Busy while the agent task is running.
Monitor Agent Runs
Each agent assignment creates a "run." The ticket's Runs tab lists every run with its status, runtime, timing, and a live transcript of the agent's messages.
Open a run to see the full execution: the instruction the agent received, its step-by-step reasoning, tool calls, and final output. Run records are the best source for debugging instructions and observing agent behavior.
Re-run and Cancel
Retry: Failed and cancelled runs can be retried from the Runs tab or ticket detail panel. Choose Resume previous session to continue the prior context and work directory, or Fresh session to start without that context. You can add optional guidance of up to 200 characters. The retry creates a new agent task for the same ticket and agent.
Cancel: To stop an in-flight agent task without unassigning the ticket, open the run in the Runs tab and click Cancel. The agent is stopped immediately, the run is marked cancelled, but the ticket itself stays open and remains assigned to that agent.
Command-line Reference
# Set ticket owner (human member only)
mopheus ticket update <ticket-id> --owner-id <user-id>
# Clear ticket owner
mopheus ticket update <ticket-id> --clear-owner
# Assign to a member
mopheus ticket assign <ticket-id> --user-id <user-id>
# Assign to an agent (queues an agent task)
mopheus ticket assign <ticket-id> --agent-id <agent-id>
# Assign to a team
mopheus ticket assign <ticket-id> --team-id <team-id>
# Clear the assignee
mopheus ticket assign <ticket-id> --clear-assignee
# Clear the assignee while updating other fields
mopheus ticket update <ticket-id> --status todo --clear-assignee
# Filter tickets by owner
mopheus ticket list --owner-id <user-id>
# List runs for a ticket
mopheus ticket runs <ticket-id>
# Stream messages from a specific agent task
mopheus ticket run-messages <agent-task-id>
# Re-run
mopheus ticket rerun <agent-task-id>
# Cancel an in-flight run
mopheus ticket cancel-agent-task <agent-task-id>