SPLENT Cache
The cache at .splent_cache/features/ holds pinned features as read-only snapshots, one per version. Editable features live at the workspace root instead. The cache makes a pinned feature the same on every machine, and fast to reuse.
splent cache:status
What the cache holds
.splent_cache/features/
└── splent_io/
├── splent_feature_notes@v1.0.0/ ← snapshot, read-only
├── splent_feature_notes@v1.2.7/ ← snapshot, read-only
└── splent_feature_cache@v1.2.7/ ← snapshot, read-only
Each entry is a shallow clone of one git tag, with its write bits removed. Never edit files there. To change a pinned feature, unlock it with splent feature:unlock <name>, which copies it to the workspace root. Editable and pinned features covers every command that moves a feature between the two.
Namespaces map to organisations on the forge, with - and . written as _.
How products reach a snapshot
Your product holds relative symlinks in <product>/features/<org>/, which product:resolve creates and updates.
# Pinned, into the cache
features/splent_io/splent_feature_notes@v1.2.7 → ../../../.splent_cache/features/splent_io/splent_feature_notes@v1.2.7
# Editable, at the workspace root
features/splent_io/splent_feature_notes → ../../../splent_feature_notes
Several versions of one feature can sit side by side, so two products can pin different ones. A feature can be editable for one product and pinned for another.
Keeping the cache tidy
| Command | Shows or does |
|---|---|
cache:status |
Every entry, pinned in the cache and editable at the workspace root |
cache:size |
Disk usage per namespace and entry |
cache:versions |
The cached versions of one feature |
cache:usage |
Which products use each feature |
cache:orphans |
Entries no product uses |
cache:outdated |
Products on an older version than one in the cache |
cache:prune |
Deletes orphaned entries and cleans broken symlinks |
cache:clear |
Wipes the cache, whole or by namespace or feature |
cache:pruneis the safe option, since it removes only what no product uses. See the Cache CLI reference.
Other folders under .splent_cache/
.splent_cache/
├── features/ ← pinned feature snapshots
├── spls/sample_splent_spl@v4/ ← a model fetched from UVLHub
└── marketplace/index.json ← written by marketplace:index
spls/ holds the UVL models fetched by DOI, and marketplace/index.json the local marketplace index. Both are rebuilt on demand, and the cache:* commands never touch them.