- User-facing "artifact(s)" -> "messages" across the UI (feed count, empty states, preview, About, Storage). Model/API/skill keep "artifact" internally — no agent-contract change. - Sidebar: Keep/Deleted folders get spacing between them and share the "All sources" bold + blue-tint styling (special folders). - Fix: About page points to Settings -> API Keys (was stale "Settings -> Account / API token"). 152 tests pass; inline JS re-validated with node --check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
1.7 KiB
HTML
39 lines
1.7 KiB
HTML
{% extends "artifacts/settings_base.html" %}
|
|
|
|
{% block settings_content %}
|
|
<h2>Storage</h2>
|
|
|
|
<div class="usage-bar" aria-label="Storage used">
|
|
<div class="usage-bar-fill {% if percent_used >= 90 %}usage-bar-fill--full{% elif percent_used >= 75 %}usage-bar-fill--warn{% endif %}" style="width: {{ percent_used }}%"></div>
|
|
</div>
|
|
<p class="usage-summary">
|
|
<strong>{{ used_bytes|filesizeformat }}</strong> of {{ quota_bytes|filesizeformat }} used ({{ percent_used }}%)
|
|
</p>
|
|
|
|
<ul class="storage-facts">
|
|
<li>{{ artifact_count }} message{{ artifact_count|pluralize }} total</li>
|
|
<li>{{ kept_count }} kept ({{ kept_bytes|filesizeformat }}) — never auto-deleted</li>
|
|
</ul>
|
|
|
|
<p class="storage-note">
|
|
When your quota fills, the oldest <strong>unkept</strong> messages are deleted
|
|
automatically to make room for new ones. Click <strong>Keep</strong> on a message
|
|
to protect it. If the quota is full of kept messages, new posts are rejected until
|
|
you free space.
|
|
</p>
|
|
|
|
{% if is_superuser %}
|
|
<h3>Admin</h3>
|
|
<ul class="storage-facts">
|
|
<li>Total quota allocated across all users: <strong>{{ total_allocated|filesizeformat }}</strong></li>
|
|
<li>Free space on the storage disk: <strong>{{ disk_free|filesizeformat }}</strong></li>
|
|
</ul>
|
|
{% if total_allocated > disk_free %}
|
|
<p class="storage-warning">
|
|
⚠ Allocated quota exceeds free disk space. Grow the volume before raising quotas,
|
|
or usage could fill the actual disk.
|
|
</p>
|
|
{% endif %}
|
|
<p class="storage-note">Per-user quotas are set in the <a href="/admin/artifacts/userprofile/">Django admin</a>.</p>
|
|
{% endif %}
|
|
{% endblock %}
|