• AlexRUS1234's avatar
    api: cache eviction policy, preview and apply
    · 07261308
    AlexRUS1234 создал
    Слой API политики eviction кеш-прокси (сессия 202): политика per-remote
    живёт в теле источника, прогноз — сухой проход движка по кешу одного
    remote, применение — фоновая задача TaskRegistry (kind=eviction,
    label=remote-<id>).
    
    Поле eviction в теле remote три-стейтно, и плоский *retentionOut два из
    трёх состояний не различает (ключа нет и null дают один nil) — введён
    тип evictionInput со своим UnmarshalJSON: Set отмечает факт наличия
    ключа, Policy — разобранный объект. PATCH без поля сохраняет политику
    (прецедент фикса сессии 177), null сбрасывает в наследование глобального
    [eviction], объект — полная замена; значения валидирует
    domain.ValidateRetention. Движок отдаётся web-слою срезом EvictionAPI
    (склейка в wire, depguard): деградация — 503 eviction_unavailable,
    экосистема без резолвера семейств (nix) — 400 eviction_unsupported,
    аудит remote.eviction.apply до старта задачи (урок 87).
    
    Проверено: go build ./..., make vet, make lint (0 issues), явный
    golangci-lint по internal/core/web (0 issues), go test
    ./internal/core/web/ (зелёный), npm run build (vue-tsc + vite).
    Красный до фикса — стэш маршрутов и tri-state: новые тесты падали 404 и
    сброшенной политикой.
    07261308