Acahti v0.16.2
EN中文GitHubSelf-host

AcahtiThe app

Track

Follow a ticket, todo, iteration, delivery or failing Argos case from report to release across pull requests, pipelines and Argos runs.

Track follows one piece of work from the report to the release. It joins the records Acahti already keeps: tickets and todos, the pull requests, pipelines, Argos runs and documents linked to them, the iteration, its deliveries and their tag pipelines. A failing Argos case is followed the same way, from its first failing run to the release of the fix.

Stages#

Track knows eight stages, in this order:

Stage Evidence
Reported A ticket was created; one opened from an Argos run also shows that run
Planned A todo was created, or the iteration was planned; linked documents appear here
In progress A todo is in progress or blocked; done when every live todo is done
Review A linked pull request is open, merged, or closed without merging (failed)
Build A linked pipeline is running, passed or failed
Argos A linked Argos run is running, passed or failed
Delivered The iteration's deliveries and their tag pipelines
Released The iteration was released, or the ticket was closed or is waiting for verification

A flow does not show all eight. It follows the template of its type, and also shows any other stage it has evidence for, so a pull request linked to an ops todo still appears under Review:

Type Follows Built-in stages
bug Tickets of kind bug Reported, Triaged (planned), Fixing (in progress), Review, Build, Verified (Argos), Released
feature Tickets of kind feature Reported, Planned, In progress, Review, Build, Delivered, Released
todo Todos Planned, In progress, Review, Build, Delivered, Released
ops Todos of an ops project, chore tickets Planned, In progress
argos_case Argos cases Failing (reported), Ticketed (planned), Fixing (in progress), Green again (Argos)
iteration Iterations and deliveries Planned, In progress, Review, Build, Argos, Delivered, Released

Work managers change a type's template: which stages it expects and, if wanted, a label that replaces a stage's name. Stages always run in the order above. A single flow can be adjusted where reality differs: follow another type's template, add stages, or skip stages (a skipped stage stays hidden even with evidence; its records remain on the flow). Work managers adjust any flow; the assignee, delegate or creator of a todo or ticket, and the owner of an iteration, adjust their own.

Each stage is done, current, upcoming, failed or skipped. The current stage is the furthest failed stage, else the furthest active one, else the stage after the furthest finished one. Earlier stages without evidence are skipped, and a cancelled flow skips what it never reached. An unfinished flow reports stuck_since, the time of its last transition.

Follow one item#

Todo and ticket pages show a Track card: the stage rail, then a timeline of every stage with when it was reached, by whom, how long it took (or how long the flow has sat there), and the pull requests, pipelines, Argos runs, deliveries and other records behind it, each linking to its page. The card names the flow's type and marks an adjusted flow. Iteration pages show the rail; a delivery shows its own flow. An Argos case's flow shows in its Argos case view (/argos/cases?case=<case id>). The flow follows the reader's permissions: repository objects follow repository visibility, restricted documents stay hidden, and every member sees Argos runs.

A pull request page shows its own lifecycle: opened, checks, ready to merge, then merged or closed.

See every open flow#

Open Track in the header. Three views list open flows; the view is kept in the page address (/track?view=tickets):

View Lists Grouped by Filters
Work Open todos, and open tickets that no todo carries Project Project, type, owner, stuck
Tickets Every open ticket, including those todos carry and tickets waiting for verification until they are closed Project Project, type, owner, stuck
Argos Argos cases failing now, or passing again after a failure in the last 14 days Pack and group Pack, group, environment, owner, stuck

Filter by type and owner from the table's column headers. Each row shows its own stages, as its type's template and its adjustment give them. The stage summary counts flows by their current stage; select a stage to show only those flows. Search by title. Flows without activity for more than three days show how long they have been stuck. Select a row to open its todo or ticket page, or the Argos case view. The Argos view says so when Argos cannot be read.

Follow one person#

The People view (/track?view=people&login=wei&days=7) shows what one person did over the last 7, 14 or 30 days: todos and tickets they moved, time logged, deliveries, commits pushed, pull requests opened and merged, reviews, tags, and pipelines run, failed and fixed (a passing run after a failure on the same branch). Counts come first, then the same counts per project and repository, then a timeline that links each record. Work events come from Work, pull requests, pushes, reviews and tags from the person's repository activity read as you (so private repositories stay hidden), and pipelines from Acahti's pipeline index. You see your own activity; Work managers see anyone's.

Flows already gather repository evidence: a pull request (title, body or head branch) or pipeline (commit message, branch or pull request title) that names a todo or ticket (todo#123, ticket#45, todo-123, todo/123, ticket/45, T-123) is linked to it, and a delivery's tag pipelines show under Delivered.

Argos cases#

A case's flow is read from built-in Argos: its newest result, its recent failing results and the runs they came from, and the tickets opened from the case (by case, or by one of its failing runs) with their todos.

Stage Evidence
Reported The first failing run seen in the last 14 days, and the case
Planned A ticket opened from the case, and the todos that carry it
In progress, Review, Build Those todos and their pull requests and pipelines, as for any todo
Argos The case's newest result once the fix is planned: failed, or done when it passes
Delivered, Released The todos' iteration and deliveries; the ticket closed or waiting for verification

Failures before a ticket exists repeat the report, so a failing case with no ticket waits at Planned. A case passing again with no open ticket or todo has finished at Argos. Failures are taken from the Argos overview, which keeps the 50 newest failing results.

Track in a synthetic example workspace

Name a todo or ticket in a pull request title, body or head branch, or in a commit message, and Acahti links it when the pull request event or pipeline arrives. References are case-insensitive and may follow fixes, closes or refs: todo#123 and ticket#45 anywhere, branch forms todo-123, todo/123, ticket-45 and ticket/45, and T-123 for a todo. A bare #123 is a pull request number and is not read. Only existing todos and unarchived tickets are linked, once each.

To link by hand, paste a pull request, pipeline or Argos run URL into Linked work on a todo. Agents use planning_todo_links: pull and pipeline take to_key owner/repo#n, argos takes the run id. You must be able to read the repository or run. Replacing a todo's ticket and document links keeps these.

Agent access#

acahti mcp call track_get '{"type":"todo","id":"123"}'
acahti mcp call track_list '{"view":"tickets","project":"turbomesh","stuck_days":7}'
acahti mcp call planning_todo_links '{"id":123,"revision":4,"add":[{"to_type":"pull","to_key":"acme/api#42"}]}'
acahti mcp call track_template_list '{}'
acahti mcp call track_template_update '{"type":"bug","stages":[{"key":"reported"},{"key":"planned","label":"Triaged"},{"key":"in_progress"},{"key":"review"},{"key":"released"}]}'
acahti mcp call track_flow_update '{"type":"todo","id":"123","skip":["review","build"]}'
acahti mcp call track_activity '{"login":"wei","days":7}'
acahti track list --view tickets --project turbomesh --stuck-days 7
acahti track list --view argos
acahti track view ticket 45
acahti track view argos_case nebula.upload
acahti track templates
acahti track template set bug --stages reported,planned=Triaged,in_progress,review,released
acahti track template reset bug
acahti track flow todo 123 --skip review,build
acahti track flow todo 123 --clear
acahti track activity --login wei --days 7

track_get (GET /work/track/{type}/{id}) takes a type of ticket, todo, iteration, delivery or argos_case and a string id: the record number, or the Argos case id. It returns the root (kind, string id, title, url), its type, its override when adjusted (template, add, skip, updated_by, updated_at), the flow's stages (key, label when the template renames it, state, at, actor, nodes), the linked nodes and edges, the current stage and stuck_since. track_list (GET /work/track) takes view (work, tickets or argos), project and owner (work and tickets), pack, group and env (argos), stuck_days, page and page_size. It returns items, total and unavailable, which names argos when Argos cannot be read. Each item has its root, type, group (id and name: the project, or the case's pack and group), owner, stage states, current and stuck_since; Argos items add argos with pack, group, env and the newest status; a root's url is its page (/argos/cases?case=<id> for an Argos case). The browser reads the same operations at /ui/track and /ui/track/{type}/{id}.

track_template_list (GET /work/track-templates) returns each type's stages, its builtin stages, customized, and stage_keys with the evidence each stage reads. track_template_update (PUT /work/track-templates/{type}) replaces a type's stages and track_template_reset (DELETE) restores the built-in ones; both need a Work manager. track_flow_update (PUT /work/track/{type}/{id}/flow) takes template, add and skip, replaces the flow's previous adjustment (none of them clears it) and returns the flow. Agents such as Aidy change templates and flows through these operations.

track_activity (GET /work/track/activity) takes login (default you), days (1 to 31, default 7) and until (YYYY-MM-DD, default today, Asia/Shanghai), page and page_size. It returns login, since, until, counts (todos, tickets, minutes, deliveries, commits, pulls_opened, pulls_merged, reviews, tags, pipelines, pipelines_failed, pipelines_fixed), groups (per project or repository: kind, id, name, counts, total), the page of items (at, kind, action, ref, title, url, project or repo, status, count, minutes), total, has_more and unavailable (repos when repository activity cannot be read).

For agents: track.mdEdit this page