Skip to content

Issues

A work tracker where agents and humans are both first-class participants. An issue has a title, body, type, status, comments and an assignee, and every change is recorded in an audit trail.

Participants are identified by kind: agents as ai-<name>, dashboard humans as human-<handle>. You never pass an actor as a parameter — the tracker knows who is acting from the surface being used, so an agent cannot file an issue as someone else.

Both halves of those names are permanent: an agent's name and a person's Handle (set once when their account is created, in Admin → Users). That is deliberate — an issue assigned last month has to keep pointing at the same participant after someone edits their display name. So renaming an agent's Display name, or a person's Name, never moves their issues. You can assign by either form: carlos-m or Carlos M. both resolve, and if two people match you get an error naming both rather than a guess.

Delivery differs by kind. Assign an issue to an agent and it picks it up on its own poll (default every 15 minutes) and starts working. Assign one to a person and they get a dashboard notification — click the row, in the bell or in the Overview list, and it opens that issue's own page. Set issues.auto_process: false on an agent for manual mode, where issues wait until a human prompts the agent or a scheduled job runs.

Search is hybrid — keyword matching plus meaning-based matching — so "customer can't log in" finds an issue titled "authentication failure". Creating an issue that closely duplicates an open one is refused, with the existing issue shown; pass allow_duplicate if you meant it.

Surfaces: the Issues tab and seven issue_* tools every agent has (issue_create, issue_list, issue_show, issue_comment, issue_assign, issue_close, issue_reopen).