feat(directus-client): prune stale asset cache entries - #289
Merged
Conversation
Contributor
🦋 Changeset detectedLatest commit: e354627 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
remihuigen
force-pushed
the
feat/cache-prune
branch
from
September 6, 2026 20:47
9c862b7 to
f26aff4
Compare
github-merge-queue
Bot
removed this pull request from the merge queue because a pull request earlier in the stack was removed
Sep 6, 2026
remihuigen
force-pushed
the
feat/cache-prune
branch
from
September 6, 2026 21:04
f26aff4 to
cfb5468
Compare
github-merge-queue
Bot
removed this pull request from the merge queue because a pull request earlier in the stack was removed
Sep 6, 2026
remihuigen
disabled the stack merge
September 6, 2026 21:24
github-merge-queue
Bot
removed this pull request from the merge queue because a pull request earlier in the stack was removed
Sep 6, 2026
remihuigen
force-pushed
the
feat/cache-prune
branch
from
September 6, 2026 21:47
cfb5468 to
e06191f
Compare
github-merge-queue
Bot
removed this pull request from the merge queue because a pull request earlier in the stack was removed
Sep 6, 2026
remihuigen
force-pushed
the
feat/cache-prune
branch
from
September 6, 2026 22:02
e06191f to
e354627
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Final implementation
The only pruning configuration is:
Request-triggered pruning is owned by the Nitro application state and remains opt-in, throttled, single-flight, and failure-contained. The reusable prune task is exported by the package, but Nitro task ownership is consumer-side: consumers explicitly register and schedule it when needed. There is no
task.enabledortask.scheduleconfiguration.Pruning derives the asset-cache namespace through public
ocache.resolveCacheKeys(). Nitro/Unstorage owns key normalization and storage scoping. Entries are read and deleted through the existing ocache blob adapter: malformed or unusable decoded entries are removed, while backend read failures are skipped and retained for a later attempt.The filesystem-backed E2E uses real Nitro storage and a deterministic local upstream, and proves stale entries are pruned while fresh entries and unrelated keys remain.
Validation
corepack pnpm typecheckpasses.corepack pnpm lint:fixandcorepack pnpm formatpass.corepack pnpm testpasses.corepack pnpm buildpasses.Closes #253