v0.270.0: no update for a current app (R-679); an interrupted install is reported (R-681); a restore brings back the pinned version's health check (R-669); R-674
gates / gates (push) Successful in 24s
gates / gates (push) Successful in 24s
Five red-proofs. MinAgent 0.131.0 unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -86,6 +86,18 @@ const preUpdateMetaDir = "pre-update-meta"
|
||||
// time, got the new probe (romm :8999), and judged the serving old version "did not start".
|
||||
const appliedMetaDir = "applied-meta"
|
||||
|
||||
// AppliedMetaFile is the pinned version's .felhom.yml record (R-669, v0.270.0: the recovery unit captures
|
||||
// it, so a restore brings back the PINNED version's health check, not the sync's newer one).
|
||||
func AppliedMetaFile(stackDir string) string { return filepath.Join(stackDir, appliedMetaDir, ".felhom.yml") }
|
||||
|
||||
// RecordRestoredAppliedMeta makes the .felhom.yml a restore just wrote the pinned version's record
|
||||
// (R-669, v0.270.0). MEASURED 2026-09-24 (A2): after a failed step ended in a restore, applied-meta still
|
||||
// held the FAILED step's probe, and the next failed update's undo judged the correct old version with it
|
||||
// and held the app. Pinned by TestR669_RestoreResetsTheAppliedRecord.
|
||||
func (m *Manager) RecordRestoredAppliedMeta(name, stackDir string) {
|
||||
m.storeAppliedMetaFrom(name, stackDir, filepath.Join(stackDir, ".felhom.yml"))
|
||||
}
|
||||
|
||||
// storeAppliedMeta records the .felhom.yml of the version just pinned. A failure is logged by the
|
||||
// caller and never fails the act — without it the undo falls back to the current file, loudly.
|
||||
func storeAppliedMeta(stackDir string, src []byte) error {
|
||||
|
||||
Reference in New Issue
Block a user