{# One meeting's review surface: its transcript, the artifacts and their provenance, the three agent tasks with their drafts, and the meeting's accepted minutes. Loaded into `#detail` by htmx (its link lives in `_detail.html`), so every control here targets `#detail` and re-renders this fragment in place — the same single-page shell the rest of the console uses. The action forms are plain posts to the service-backed routes; a refused launch renders the service's own message in the `error` block rather than an error status htmx would refuse to swap. #}
{{ meeting.project_slug }}/{{ meeting.slug }}
{% if meeting.workspace_path %} · {{ meeting.workspace_path }}{% endif %}
{{ transcript.text }}
| {{ tr("Kind") }} | {{ tr("Path") }} | {{ tr("Provenance") }} | {{ tr("SHA-256") }} | {{ tr("Created") }} |
|---|---|---|---|---|
| {{ artifact.kind }} | {{ artifact.path }} |
{{ artifact.produced_by }}
{% if artifact.run_id %}{{ tr("run {id}", id=artifact.run_id) }} {% endif %}
{{ artifact.review_state }}
|
{{ artifact.sha256_short }} |
{{ artifact.created_at }} |
| {{ tr("Term") }} | {{ tr("Reading") }} | {{ tr("Aliases") }} | {{ tr("Definition") }} | {{ tr("Evidence") }} |
|---|---|---|---|---|
| {{ term['term'] }} | {{ term['reading'] or "" }} | {{ (term['aliases'] or []) | join(", ") }} | {{ term['definition'] or "" }} | {{ term['evidence'] or "" }} |
| {{ tr("Before") }} | {{ tr("After") }} | {{ tr("Reason") }} |
|---|---|---|
{{ change['before'] }} |
{{ change['after'] }} |
{{ change['reason'] or "" }} |
{{ draft.value['revision'] }}
{% elif draft.kind == 'minutes' %}
{{ draft.value['body'] }}
{% endif %}
{% if draft.review_state == 'draft' %}
{{ draft.promotion['summary']['revision_path'] }}{{ draft.promotion['summary']['path'] }}{{ minutes_text }}
{% else %}