{% extends "base.html" %} {% block title %}Dashboard | Issueforge Git Agent{% endblock %} {% block content %}
Pending Approval
{{ pending_count }}

Awaiting Telegram / Web approval

Active in Sandbox
{{ running_count }}

Multi-LLM pipeline running

Awaiting Confirm
{{ awaiting_confirm_count }}

Tests passed, ready to push PR

Completed
{{ completed_count }}

Merged or PR open

Work Items & Tasks

Ingested issues, sprint work items, and pull requests

{% if poller_status and poller_status.poll_enabled %} • Auto-sync: every {{ poller_status.poll_interval_hours|int }}h {% endif %}
{% if not tasks %} {% endif %} {% for task in tasks %} {% endfor %}
Task ID & Source Title & Repository Status Created Actions

No tasks ingested yet

Tasks will appear automatically when GitHub/GitLab webhooks fire, or you can trigger one manually.

{{ task.id }}
{{ task.platform.value }} {{ task.task_type.value }}
{{ task.title }}
{{ task.repo_name }} • branch: {{ task.base_branch }}
{% if task.status.value == "PENDING_APPROVAL" %} ⏳ Pending Approval {% elif task.status.value in ["PLANNING", "CODING", "TESTING"] %} ⚙️ {{ task.status.value }} {% elif task.status.value == "AWAITING_CONFIRMATION" %} 🔍 Awaiting Confirm {% elif task.status.value == "COMPLETED" %} ✅ Completed {% elif task.status.value == "FAILED" %} ❌ Failed {% elif task.status.value == "CANCELLED" %} 🛑 Cancelled {% else %} {{ task.status.value }} {% endif %} {{ task.created_at.strftime('%Y-%m-%d %H:%M') }} {% if task.status.value == "PENDING_APPROVAL" %} {% elif task.status.value in ["APPROVED", "PLANNING", "CODING", "TESTING", "PUSHING", "REVISION_REQUESTED"] %} {% elif task.status.value == "AWAITING_CONFIRMATION" %} {% elif task.status.value == "CANCELLED" or task.status.value == "FAILED" %} {% endif %} Folder Details
{% endblock %}