{% extends "base.html" %} {% import "_empty.html" as empty %} {% block title %}Dashboard{% endblock %} {% block topbar_main %}

Dashboard

{% endblock %} {% block topbar_actions %} New project {% endblock %} {% block content %}
{# Decisions waiting on a person, not totals. A row appears only when something is waiting, and each links to where the decision is made. #} {# The one warm surface on the page, and only while something is waiting: these are the decisions the page exists for, and as plain rows they had the quietest treatment on it. Each row is the link. #}
Needs you{% if waiting %} {{ waiting | length }}{% endif %}
{% for row in waiting %} {{ row.count }} {{ row.what }}{{ 's' if row.count != 1 else '' }} {{ row.verb }} Open {% else %}

Nothing is waiting on you. Agent requests, memory suggestions, reviews and agents that have not connected appear here when they need you.

{% endfor %}
{% if projects %}
Projects {{ projects | length }} shown all {{ total_projects }} projects
{% for project in projects %}
{{ project.name }} {% if project.description %}
{{ project.description }}
{% endif %}
{{ plan_counts.get(project.id, 0) }} plans {{ project.plan_directory }} {{ project.created_at.strftime('%d %b %Y') if project.created_at }}
{% endfor %}
{% else %} {% call empty.state('project', 'Nothing here yet') %}

Create a project and flanner takes over the plan files your agents write in it.

New project {% endcall %} {% endif %} {% if recent_activity %}
Recent Activity
{% for item in recent_activity %}
v{{ item.plan_file.current_version }} {{ item.plan_file.name }}.md in {{ item.project.name }} {{ item.updated_at | relative_time }}
{% endfor %}
{% endif %}
{% endblock %}