v0.263.1: the undo asks the old probe even on an app marked unhealthy (R-637)
gates / gates (push) Successful in 27s
gates / gates (push) Successful in 27s
Found live on 9202: the periodic probe (current .felhom.yml, new port) flips the app to unhealthy, and the update's health wait probed only 'running' apps - so the undo's old probe was never asked and a serving old version was judged "did not start". With the undo's override, an unhealthy app is probed and the old check decides; never settled on container state. New seam probeRunFn; the test drives the real wait loop and reproduces the live message when the fix is switched off. 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:
@@ -1,3 +1,22 @@
|
||||
## v0.263.1 — the undo asks the OLD probe even when the new one has marked the app unhealthy (2026-09-23, R-637)
|
||||
|
||||
**MinAgent: 0.131.0** (unchanged). No new strings.
|
||||
|
||||
**Caught by the live proof on 9202, not by a test.** v0.263.0's undo put docmost's data and old
|
||||
definition back, and then judged the old version "did not start" after the full 90 s — while it was
|
||||
serving. The periodic health probe judges an app with its CURRENT `.felhom.yml`; the new version had
|
||||
brought a probe the old one does not answer (the drill's wrong port, and a real case whenever a probe
|
||||
moves with a version), so it flipped the app to `unhealthy` every 10 s — and the update's health wait
|
||||
only probes an app whose state reads `running`. The old probe was never asked (`last: state unhealthy`).
|
||||
|
||||
**Fix:** with the undo's override probe, an `unhealthy` app IS probed, and the old check decides; it
|
||||
is never settled on container state (the settle path still requires `running`). The normal update
|
||||
path is unchanged. **Why the unit tests missed it:** `TestUndo_UsesTheOldProbe` injects the undo's
|
||||
whole health wait, so it never reached the state gate. The new test drives the real wait loop with only
|
||||
the network probe faked (new seam `Manager.probeRunFn`) and reproduces the live message verbatim when
|
||||
the fix is switched off. The first live attempt ended in an honest HOLD (data put back, old version
|
||||
not judged healthy) — kept as evidence.
|
||||
|
||||
## v0.263.0 — a failed update puts the app back by itself (2026-09-23, R-637)
|
||||
|
||||
**MinAgent: 0.131.0** (unchanged). New strings, all born as bundle keys (hu + en): `app_info.update_undone`,
|
||||
|
||||
Reference in New Issue
Block a user