{% extends "base.html" %} {% block title %}Review{% endblock %} {% block body %} {% macro from_line(account_id, agent_id) %}{{ who.accounts.get(account_id, '?') }}{% if agent_id %} {{ who.agents.get(agent_id, '?') }}{% endif %}{% endmacro %}

Review

Agents leave notes in the inbox; any agent can merge them into records. Merges wait here for you unless the scope applies them directly.

Proposed changes

{% for p in props %} {{ 'Update' if p.base_blob else 'New' }} {{ p.record }} {% if p.reason %}{{ p.reason }}{% endif %} {{ p.scope }}{% if p.old_scope and p.old_scope != p.scope %}from {{ p.old_scope }}{% endif %}{{ from_line(p.account_id, p.agent_id) }} {{ p.created_at|ago }} {% else %}
Nothing waiting.
{% endfor %}

Conflicts

{% for c in conflicts %} Conflict {{ c.record or 'no record named' }} {{ c.detail[:160] }}{% if c.detail|length > 160 %}…{% endif %} {{ c.scope }} {{ c.created_at|ago }} {% else %}
No conflicts.
{% endfor %}
{% if applied %}

Applied directly

Last 14 days
{% for p in applied %} Applied {{ p.record }} {{ p.scope }}{{ from_line(p.account_id, p.agent_id) }} {{ p.created_at|ago }} {% endfor %}
These scopes apply merges directly. Undo puts a record back if nothing changed it since.
{% endif %}

Inbox

{{ notes_total }} note{{ 's' if notes_total != 1 }} waiting to be merged
{% for n in notes %} Note {{ n.title or n.id }} {{ n.scope }}{{ from_line(n.account_id, n.agent_id) }} {% if n.guidance %}reopened{% endif %}{% if n.claim_until and n.claim_until > now %}being merged{% endif %} {{ n.created_at|ago }} {% else %}
The inbox is empty.
{% endfor %}
{% if by_scope %}By scope: {% for sc, n in by_scope %}{{ sc }} {{ n }}{% if not loop.last %}, {% endif %}{% endfor %}. {% endif %}Ask any agent to “merge the memory inbox”.
{% endblock %}