Repository navigation
- A holdout store declares its own holdouts. At preflight relais reads
<repo>/<name>/holdout.tomlandcheck.shfrom the store[holdouts] storenames, at one commit per run, through a shared cache of shallow fetches. A machine.toml table of the same name still wins, and{ enabled = false }turns a store holdout off. Aholdout.tomlthat does not parse refuses the run (holdout_declaration_invalid). An unreachable store refuses a named holdout asholdout_unreadableand recordsholdout_store_unreachable. - A store holdout runs only at a fingerprint the person confirmed. The fingerprint covers the whole effective declaration and the files it supplies. Any change asks again, and a symlink anywhere in a holdout is refused without being read.
relais trust holdoutsshows each new or changed holdout's declaration and diffs, and--accept <name> --sha <sha> --fingerprint <fp>confirms exactly that version; a store that moved meanwhile is refused as stale. Confirmations live in the new ledger tableholdout_confirmations, and the ledger migrates to v48. Until a holdout is confirmed, it is skipped when attached and refuses the run when named (holdout_unconfirmed). - The plugin asks.
mcp__relais__trust_holdoutsputs each review in Claude Code's dialog. A review too long to show whole is confirmed in a terminal instead. The model is refused arelais trust holdouts --acceptin Bash. - You can see them.
relais doctorlists each holdout with its source (store or machine) and confirmation state.relais planmarks an attached holdout that is not confirmed.relais reportcounts unconfirmed skips separately. - The holdout definition digest now covers the declaration's source, timeout, inputs and attach rule. Definitions frozen before this release still compare under the old formula, so the upgrade reports no spurious changes.
What's Changed
- test(runner): room for work on a slow host by @fredericrous in #378
- docs: rechart the homelab offload by @fredericrous in #379
- docs: amont runs gates on the cluster (t21) by @fredericrous in #380
- docs: laptop signs remote gates (t25, t15) by @fredericrous in #381
- chore(adr): refresh the fleet pack by @fredericrous in #384
- feat(holdouts): holdouts declare themselves in the store by @fredericrous in #385
- chore(release): v0.48.0 by @fredericrous in #386
Full Changelog: v0.47.0...v0.48.0