Skip to main content
Every issue in Gentic carries a single status field that describes both where the issue sits in your team’s workflow and what the agent host is doing with it. This page documents every possible value and the transitions between them.
Moving an issue from Draft to Todo is the specific transition that makes it eligible for an agent run. Until you make that change, no host will claim it and no repository is cloned.

Status lifecycle

A typical issue moves through the lifecycle in roughly this order:
Not every issue visits every status. The host drives the agent-run states, while several review and deployment states are available for manual or external workflow updates.

Pre-work

These statuses cover the period before an agent host has claimed the issue.

Agent running

These statuses indicate a host is actively handling the issue.

Review

These statuses cover the period between the agent opening a pull request and the PR being merged. Most transitions in this section are driven by GitHub webhook events — see How GitHub events map to statuses below.

Automatic Review

When a project or issue has Automatic Review enabled, an isolated reviewer agent evaluates each pull request instead of (or alongside) waiting on a human review. This section only covers what’s visible on the Issue; the engine itself is documented in docs/adr/0004-automatic-review-lifecycle-engine.md and its neighbors. Status precedence. When several conditions could apply to a pull request at once, the issue’s status reflects the most actionable one first, in this order: changes-requested (a reviewer — automatic or human — asked for changes) beats tests-failed (CI failed) beats testing (CI still running) beats reviewing (an automatic review attempt is in flight) beats ready-for-review / approved. This precedence is computed in the database and is stable regardless of which webhook or review event arrives first. Timeline. Every step of an automatic review attempt — queued, started, approved, changes requested, an infrastructure failure, or a cycle being superseded by a new push or a human review — appears as its own entry on the Issue’s timeline, each optionally linking to that attempt’s reviewer execution log. Reviewer logs are never appended to Issue chat. Multiple pull requests. An Issue with more than one associated pull request shows each one’s review state independently in the sidebar, plus an aggregate (“2 of 3 pull requests reviewed”). Attempts. Each pull request gets up to three automatic review attempts per review cycle (a cycle covers one line of fix-iteration pushes). A completed attempt (approved, changes requested, or commented) counts against that budget; an infrastructure failure does not — it retries once automatically, and after a second consecutive failure, automatic progress pauses until new code arrives or you intervene. Recovery controls. When automatic progress is paused or blocked, the Issue sidebar offers up to three actions, shown only when they apply:
  • Retry review — queue a fresh attempt after two trailing infrastructure failures, without waiting for new code.
  • Continue with human review — accept the current human review as sufficient and stop further automatic attempts.
  • Start fresh implementation session — abandon an unresumable implementation session (its host was deleted or banned, its agent/model changed, or no session was ever recorded) so the next fix has somewhere to go.

Merge and deploy

Terminal

Issues in these statuses are no longer active. You can re-open a conversation by sending a new message in the transcript, which moves the issue back to todo and resumes the same agent session with full prior context.

How GitHub events map to statuses

If you have configured the GitHub integration with a webhook, Gentic listens for pull request activity on the PR that the agent opened and updates the issue automatically. The mapping is: Gentic matches pull request, review, and comment events to a stored pull-request URL on the issue. For check events, Gentic resolves the pull request from the check’s commit SHA. Active checks can move ready-for-review issues back to testing, and completed checks only update issues still in testing, so late CI results do not overwrite review or merge statuses. Unsupported event types are ignored. To enable this, point a GitHub webhook at https://<your-gentic-host>/api/integrations/github/webhook, subscribe to the Pull requests, Pull request reviews, Pull request review comments, Issue comments, Check runs, and Check suites events, and set the shared secret to match the GITHUB_WEBHOOK_SECRET configured on your Gentic deployment.

Held status and usage limits

The held status is the recovery path for temporary agent outages. When Claude Code or Codex returns a usage-limit, session-limit, rate-limit, or quota error during a run, the host:
  1. Parses a reset time from the error message. Relative (try again in 2h), absolute, and HH:MM (UTC)-style resets are all supported.
  2. Moves the issue to held and stores the parsed reset time.
  3. Skips the issue on subsequent polls until the reset time has passed.
  4. Re-claims the issue automatically once the reset window opens, resuming the same agent session.
If the host cannot parse a reset time out of the error, the run is treated as a run-failed instead so you can intervene manually. You can also cancel a held issue at any time by changing its status to cancelled.