{{ item.title }}
{%- if item.body %}{{ item.body }}
{%- endif %}{# The Inbox โ the one genuinely new screen (043 C5, ยง1.3). Derived from docs/design/040/web/inbox-items.html, inbox-empty.html and inbox-partial.html. ONE template, three states: which one renders is decided by the composed body (webview/pages_new.py::_inbox_context over core.surfaces.inbox), never by a second copy of the rule. An item is a durable record, for this tenant, blocked on an owner decision, that Rob cannot resolve alone. So: * `items` the decisions. The badge counts these. * `not_blocking` listed, never counted โ a late invoice closes itself. * an `unreadable` item is an ENTRY with its own dashed rule. A source that refused is never a silent omission and never a zero, which is why the empty state below is guarded on `inbox_uncertain` as well as on emptiness: "nothing needs you" is only sayable when every source answered. Every word comes from webview/copy/en.py. Every value is a context variable. #} {% extends "shell.html" %} {% block body %}
{{ t('inbox.snapshot') }} {{ t('inbox.refresh') }}
{{ pill_words }} {%- if items %}{{ t('inbox.sub') }}
{%- endif %}{{ t('inbox.unreadable.body') }}
{%- elif item.body %}{{ item.body }}
{%- endif %} {%- if item.meta %} {%- endif %} {%- if item.rendered_actions and not read_only %}{{ t('inbox.unreadable.body') }}
{%- else %}{{ t('inbox.empty.body') }}
{{ t('inbox.empty.checked') }}
{%- endif %}{{ item.body }}
{%- endif %}{{ t('inbox.read_only.decide') }}
{%- endif %}{{ sources_note }} {{ t('inbox.sources.cites')|safe }}