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

Projects

{% endblock %} {% block topbar_actions %}
New project {% endblock %} {% block content %}
{{ total_projects }}
Projects
{{ total_plans }}
Plan files
{{ updated_this_week }}
Updated this week
{% if projects %}
ProjectPlansPlan directory FreshnessUpdated
{% for project in projects %}
{{ project.name }} {% if project.description %}
{{ project.description }}
{% endif %}
{{ plan_counts.get(project.id, 0) }} plans {{ project.plan_directory }} {# Filled by app.js from /projects/freshness-mix. Computing it here walked every plan in every project, several git processes each, in front of the first byte of this page. #} {{ project.updated_at | relative_time if project.updated_at else project.created_at | relative_time }}
{% endfor %}
{% include "_pager.html" %}
{% else %} {% call empty.state('project', 'No projects yet') %}

Point flanner at a repository and it takes over the plan files your agents write there.

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 updated in {{ item.project.name }} {{ item.updated_at | relative_time }}
{% endfor %}
{% endif %}
{% endblock %}