Skip to content

plugin-refs

Placement compiled-in (in-process)
Source github.com/opencharly/charly/candy/plugin-refs
Version 2026.192.0000
Candy plugin-refs

This plugin is listed in charly/charly.yml’s compiled_plugins:, so its providers are compiled into the charly binary and register in-process.

The reserved words this plugin serves:

  • refs — refs class

The remote-repo FETCH BACKEND, relocated out of charly core into a compiled-in plugin candy (P7) — the swappable download seam every @github remote-candy fetch reaches. A compiled-in plugin candy is a SEPARATE Go module importing only sdk (never charly core), so it composes the shared sdk/kit git primitives (GitResolveRef/GitClone/DownloadRepo) rather than core code. It serves the cache-miss DOWNLOAD via kit.RefsDownloader: the host dispatches every remote-repo fetch through the registered refs provider, so an alternative refs plugin can serve a different backend (OCI/S3-hosted candies) by registering a different RefsDownloader — the DEFAULT (this candy) fetches via git. The host keeps the fetch ORCHESTRATION (local-override resolution, cache-hit short-circuit, the post-fetch schema auto-migration via command:migrate); this plugin owns only the pluggable backend that turns a (repoPath, version) into a populated local cache tree. The fetch runs deep in config loading, where the compiled-in command:migrate already invokes with no bootstrap cycle, so registering this at init() before the first load is likewise cycle-free. COMPILED-IN (in the embedded compiled_plugins:); unlocks alternative ref backends.


See also the candy reference for this candy’s install surface.