{# One project row. Rendered by the dashboard grid loop AND by GET /api/projects/{name}/row for reactive insertion (no full-page reload). `idx` is the row's position for the search/cap visibility gate (0 from the fragment route, so a freshly created project is always shown). The `:style` below reorders rows VISUALLY for a non-name sort via CSS `order` — it does NOT change DOM/tab order (focus + screen-reader order stay A–Z), the deliberate trade for an opt-in cosmetic sort. Don't turn this into a DOM reorder (the anti-pattern the Active zone avoids). #}
{{ p.name }} {% if p.is_git_repo %}Git{% endif %} {% if p.has_claude_md %}CLAUDE.md{% endif %}
How do you want to drive it?

Connectable from claude.ai / Desktop — converse with it, and Stop it here when done.

{# Plain-language effect of the SELECTED mode, inline (not just title=) so it's visible on touch — the riskiest per-launch choice shouldn't hide in a tooltip. #}

{# Spawn only applies to the standard (multi-session) bridge — it maps to `claude remote-control --spawn`. pty is a single interactive session run under the keeper with no `--spawn`, so it ignores these; hide them in pty mode rather than offer no-op choices. #}
{% if pty_supported %}

Runs as one session in the project directory.

{% endif %}

⚠ Trust the files in {{ p.name }}? Launching a session here lets it run tools and execute any code in CLAUDE.md / .claude in this directory.

bypassPermissions lets sessions in {{ p.name }} run tools without asking. Type the project name to confirm.