{% extends "base.html" %} {% block title %}{{ project_name }} · Harbormaster{% endblock %} {% block page_title %}{{ project_name }}{% endblock %} {% block content %} {# v19.0.0a2: tab system. Tabs live above main pane content; URL hash #tab= persists active tab across reloads; keyboard shortcuts 1-5 cycle tabs (skipped when typing in inputs/textareas). The Overview tab carries the existing project header + status; Trajectories tab wraps the existing trajectoryList component (relocated, not duplicated); Memories / Q&A History tabs are placeholders that land in v19.0.0a6 / v19.0.0a5; Settings shows read-only metadata until v19.0.0a4 adds per-project budget edit. #}

{{ project_name }}

{% if project %} last commit: {% if project.last_commit %} {{ project.last_commit.hash }} {% else %} (no git) {% endif %} {% endif %}
{% if project %}

{{ project.brief or "(no description)" }}

{% if project.has_serena %} serena {% endif %} {% if project.has_claude_md %} claude.md {% endif %} {{ project.path }}
{% endif %}

Status

sourced from project_status
{{ status_markdown }}
{% include "_partials/ask_form.html" %} {% include "_partials/delegate_form.html" %}
Memories editor — full implementation lands in v19.0.0a6.
{# v10.0.0a5: per-project memories viewer (read-only). Lists CLAUDE.md + .serena/memories/*.md for the current project; click a file to render its markdown in-place. Uses vendored marked.min.js. #}

Memories

No memories found

This project doesn't yet have a CLAUDE.md or any .serena/memories/*.md files.

match

Select a file to view.

Tags (frontmatter)

Cmd+Z = previous revision · Cmd+Shift+Z = next revision · position

Create new memory…

Recent Q&A

No questions asked yet

Use the Ask form above to query this project. Each question + answer pair lands here as a trajectory.

Project-scoped Q&A history search — full impl in v19.0.0a5.
{% if project %}
Project name
{{ project.name }}
Path
{{ project.path }}
Last commit
{% if project.last_commit %}{{ project.last_commit.hash }}{% else %}(no git){% endif %}
Language
{{ project.language or 'unknown' }}
Daily call budget
inherits
{% else %}

Settings are unavailable for remote-host project views.

{% endif %}
{% endblock %} {# v19.0.0a3: project inspector — metadata pulled from the existing `project` context dict (last_commit, language, path) + a budget summary fetched from /api/projects/budget?host=. No new endpoint; data the page already owns is rendered inline. #} {% block inspector %}

Metadata

last commit:
language:
host:
path:
serena memories:
CLAUDE.md:

Budget (24h)

  • calls:
  • usage:
  • tightest cap:

no budget configured

{% endblock %}