feat(storage): index exact content references

This commit is contained in:
DCCONSTRUCTIONS
2026-07-29 15:21:03 +03:00
parent 611853d3af
commit 32c5d0dda5
13 changed files with 1081 additions and 32 deletions
@@ -135,6 +135,7 @@ export function ArtifactHealthWorkspace() {
1,
);
const exactCurrent = health.exact_audit.state === "exact-current";
const referencesIndexed = health.content_references.state === "indexed";
return (
<div className="artifact-health-workspace">
<section className="artifact-health-lead">
@@ -242,21 +243,55 @@ export function ArtifactHealthWorkspace() {
<header>
<div>
<span className="section-eyebrow">CONTENT REFERENCES</span>
<h3>Материализованные копии</h3>
<h3>
{referencesIndexed
? "Индекс точного контента"
: "Материализованные копии"}
</h3>
</div>
<StatusBadge tone="warning">Не индексировано</StatusBadge>
<StatusBadge tone={referencesIndexed ? "success" : "warning"}>
{referencesIndexed ? "Индекс активен" : "Не индексировано"}
</StatusBadge>
</header>
<p>
Content-addressed ссылки ещё не включены. Миграция хранения не
авторизована: сначала выбираются классы дублей с максимальным
измеренным эффектом.
</p>
<dl>
<div><dt>Режим</dt><dd>Наблюдение</dd></div>
<div><dt>Удаление</dt><dd>Запрещено</dd></div>
<div><dt>Автомиграция</dt><dd>Запрещена</dd></div>
<div><dt>Следующий gate</dt><dd>Content refs / chunking</dd></div>
</dl>
{referencesIndexed ? (
<>
<p>
Логические пути сведены к проверяемым SHA-256-ссылкам. Исходные
файлы не изменены, физическое освобождение места не выполнялось.
</p>
<dl>
<div>
<dt>Логических путей</dt>
<dd>{formatInteger(health.content_references.logical_reference_count)}</dd>
</div>
<div>
<dt>Канонических объектов</dt>
<dd>{formatInteger(health.content_references.canonical_content_count)}</dd>
</div>
<div>
<dt>Ссылок на дубли</dt>
<dd>{formatInteger(health.content_references.duplicate_reference_count)}</dd>
</div>
<div>
<dt>Измеренный резерв</dt>
<dd>{formatBytes(health.content_references.exact_duplicate_bytes)}</dd>
</div>
</dl>
</>
) : (
<>
<p>
Content-addressed ссылки ещё не включены. Исходные файлы
остаются только наблюдаемыми, автоматическое удаление запрещено.
</p>
<dl>
<div><dt>Режим</dt><dd>Наблюдение</dd></div>
<div><dt>Удаление</dt><dd>Запрещено</dd></div>
<div><dt>Автомиграция</dt><dd>Запрещена</dd></div>
<div><dt>Индекс</dt><dd>Отсутствует</dd></div>
</dl>
</>
)}
</GlassSurface>
</section>
</div>