Phase summary no longer resets PROGRESS_TOTAL to local done (which made
bars like 34/34 then 38/47). Total is fixed at run start; only grows if
short; progress_finish snaps once at the end of the whole run.
New phase devtesting (aliases franken/fake-franken) probes
taler-devtesting on rusty.taler-ops.ch: geniban + fake-incoming CHF
to the exchange IBAN. Nexus bounce without reserve pub is OK for the
plumbing probe. Stage host-agent can include the phase.
Click error or warning counts in the sticky bar to show only matching
console lines; sticky stats and top overviews remain. Hashes
#filter-error / #filter-warn (and #first-*) activate the filter.
Require meaningful monitoring HTML: sticky-bar/generated at top, footer
or taler-mon:bottom at end; ERROR if body is progress-only. Mid-run
(incomplete meta or progress without complete foot) relaxes bottom only.
GOA always checks taler-monitoring-surface. Generator emits taler-mon
markers and taler-mon-page complete|incomplete meta.
Public layout: only taler-monitoring-surface(+_err) for ecosystem
software/versions; nine landing stacks keep /monitoring(+_err).
Fold mail (firefly.gnunet.org, anastasis.taler-systems.com) and
mattermost into the surface job; deprecate separate mon pages/timers.
nmap OS fingerprinting; package-behind defaults to ERROR.
GOA monpages checks the full suite catalog (bank/exchange/taler
/monitoring/ plus surface/aptdeploy/mattermost/mail) and on-disk
discovery; FP only its own mon hosts. Default MONPAGES_REQUIRE_PUBLIC=1.
Also fix with_timeout re-running failed phases via || fallback.
Without trailing slash, some frontends still hit the merchant (code 21)
even when /monitoring/ serves suite HTML. Bare URLs WARN unless
MONPAGES_BARE_STRICT=1.
README section lists public HTML report paths; sticky "What this monitors"
adds a dedicated block that monpages/public pages are part of taler-monitoring.