Root cause of stale intro payments: koopa max-ladder minted but accept-uri failed with taler-wallet-cli not found (SKIP_ACCEPT ×16). Fail early without CLI/helper; after bank transfer_done keep polling + run-pending for available coins; pay wait 180s; host-agent max-ladder sets WALLET_CLI PATH.
22 KiB
22 KiB
VERSIONS — taler-monitoring
Release history for the standalone taler-monitoring suite
(https://git.hacktivism.ch/hernani/taler-monitoring).
Version scheme
Tags and VERSION use MAJOR.FEATURE.FIX (three components), introduced in v1.4.0:
| Part | Meaning |
|---|---|
| MAJOR | Breaking changes to CLI, layout, or host-agent contract |
| FEATURE | New capabilities (phases, HTML features, i18n packs, …) |
| FIX | Bugfixes and docs that do not add a feature |
Git tags: vMAJOR.FEATURE.FIX (e.g. v1.8.0). File VERSION omits the v prefix.
| Tag | Date (UTC) | Notes |
|---|---|---|
| v1.23.3 | 2026-07-19 | Bugfix: payments stale because max-ladder never got coins — root cause on koopa was taler-wallet-cli missing (all mint-OK → SKIP_ACCEPT). Hard-fail ladder prereq if CLI/helper missing; settle keeps polling after transfer_done + short run-pending; pay wait default 180s; max-ladder wrapper sets PATH/WALLET_CLI. |
| v1.23.2 | 2026-07-19 | Bugfix: max-ladder host-agent forces RUN_TIMEOUT=10800 (koopa env had 600 → run aborted mid-ladder); install starts oneshots with --no-block. |
| v1.23.1 | 2026-07-19 | Fix / scope: only /monitoring-max-ladder/ for GOA (drop classic /monitoring-ladder). Daily timer + install first-run. monpages catalog/Caddy bare redirs for max-ladder only. |
| v1.23.0 | 2026-07-19 | Feature: GOA daily mon page /monitoring-max-ladder/ (max-search) on bank/exchange/taler.hacktivism.ch (1.23.0 briefly also had classic ladder; removed in 1.23.1). |
| v1.22.1 | 2026-07-19 | Bugfix (UX): pay wait after withdraw no longer looks hung — shows withdraw board in start order (OK/OK_BANK from TSV) with live wallet status (pendingIncoming → done) + timer + aggregate available/pendingIncoming on the same wallet DB. Short run-pending nudge only (no run-until-done). Default wait 90s (LADDER_PAY_WAIT_AVAILABLE_S). |
| v1.22.0 | 2026-07-19 | Feature: modular amount ladder — ladder/lib_pay.sh (pay) + withdraw in check_amount_ladder.sh; ladder/extract_rpubs.py. max-ladder hunts highest withdrawable and highest payable (≤ wallet available). GOA pays use public free-amount template goa-free (LADDER_FREE_TEMPLATE). Classic still default 23-rung wd+pay. Phase alias goa-ladder → amount ladder (shim removed). |
| v1.21.0 | 2026-07-19 | Feature: generic amount ladder (check_amount_ladder.sh; compat shim check_goa_ladder.sh). Default classic 23-rung withdraw (+ pay when enabled); max-search (max-ladder / LADDER_MODE=max) hunts highest mintable amount (probes default 32, 0=until timeout). Pay: never overspend — soft SKIP_BALANCE if amount > wallet available. Alt units: report/logs show human names (e.g. 8.15 Tera-GOA (GOA:…)) + raw. Fixes bundled: external extract (no stdin SyntaxError); force-select multi-rpub; soft CEILING_REJECT on mint 5110/P0001; crash-proof report. CLI-AUTOMATION-NOTES §3/3a/3b/§15–18. |
| v1.20.1 | 2026-07-19 | Docs: CLI-AUTOMATION-NOTES — force-select empty scrape + ladder pins (§3/3a); wallet-db must not be *.json (§15); taler-helper-sqlite3 needs Python ≥3.11 (§16); portable wall-clock (§17); GOA withdraw checklist (§18). No code change. (Superseded notes folded into v1.21.0 feature release.) |
| v1.20.0 | 2026-07-19 | Feature: domains.conf locale (l10n) — FP fr-CH, others de-CH (aliases ch-FR/ch-DE); UI lang=de supported (sticky + console tags) but never a stock profile default; env TALER_MON_LOCALE / TALER_DOMAIN_LOCALE. |
| v1.19.1 | 2026-07-19 | Bugfix / docs: DEPENDENCIES — e2e requires taler-helper-sqlite3 on mon PATH + preflight; README domains.conf documents lang column. |
| v1.19.0 | 2026-07-19 | Feature: domains.conf lang column (en|fr) is the global UI language default per stack; i18n + HTML read TALER_DOMAIN_LANG / conf (FP profiles lang=fr). |
| v1.18.9 | 2026-07-19 | Bugfix: UI lang — lefrancpaysan/francpaysan always default fr unless TALER_MON_LANG_SET=1 / --lang; workstation TALER_MON_LANG=en no longer locks English (host-agent + console_to_html). |
| v1.18.8 | 2026-07-19 | Bugfix: e2e wallet — require taler-helper-sqlite3 on PATH; use absolute node + timeout instead of fragile perl -e alarm for wcli; clearer accept-uri errors (no raw alarm-shift noise). |
| v1.18.7 | 2026-07-19 | Bugfix: mail/surface catalogs — TSA/Anastasis MX is mail.anastasis.lu (→ pixel), not non-resolving anastasis.taler-systems.com; add anastasis.lu + pixel host probes (fixes surface_err mail.*). Also: FP stage host-agent defaults include e2e + 1800s timeout; stagepaysan.env.example wires francpaysan-secrets + wallet-cli. |
| v1.18.6 | 2026-07-19 | Bugfix: TESTS.md table cell for e2e.bankwd- markdown typo from rename. |
| v1.18.5 | 2026-07-19 | Bugfix: TESTS.md e2e group list atm → bankwd (missed in 1.18.4). |
| v1.18.4 | 2026-07-19 | Bugfix: e2e group id atm → bankwd (e2e.bankwd-*); finish ATM wording cleanup so mon logs match Bank withdraw (no leftover “atm” phase label). Env E2E_ATM_MAX still accepted as alias. |
| v1.18.3 | 2026-07-19 | Bugfix / wording: e2e user-facing ATM withdraw → Bank withdraw (amounts still CHF-style cash-note ladder 20/50/100/200/… — “ATM” was only a metaphor for those note sizes, not a physical ATM). Env: E2E_BANK_WITHDRAW_MAX (legacy alias E2E_ATM_MAX). Internal group id e2e.atm-* kept for check-id stability. |
| v1.18.2 | 2026-07-19 | Bugfix: never publish / accept stale mon HTML assets — refuse pre-1.15.8 box-drawing sticky JS in site-gen + generated pages; monpages ERROR on public pages still carrying that JS or teed SyntaxWarning: invalid escape sequence; purge site-gen/__pycache__ after suite reset; convert with PYTHONWARNINGS=error::SyntaxWarning. |
| v1.18.1 | 2026-07-19 | Bugfix: (1) mon HTML sticky/err counts honor French badges ERREUR / AVERT (were plain → 0 errors on FP pages); (2) stage-lfp + INSIDE_PODMAN=1 uses host-podman (no empty INSIDE_SSH fail); (3) reaffirm filter JS has no box-glyph/\\- regex (charCodeAt only — kills SyntaxWarning “geheimsprache” noise). |
| v1.18.0 | 2026-07-19 | Feature: mattermost — client compatibility matrix: mobile, desktop, vendor support floors (default ≥10.11.0, ERROR) + web WARN on EOL; env MATTERMOST_DESKTOP/SUPPORT_MIN_SERVER, MATTERMOST_CLIENT_CHECK. |
| v1.17.0 | 2026-07-19 | Feature: mattermost phase — check server version (X-Version-Id) against mobile store min (default ≥10.11.0); ERROR when too old (newest Android/iOS apps break); env MATTERMOST_MOBILE_MIN_SERVER / MATTERMOST_MOBILE_CHECK=0. |
| v1.16.0 | 2026-07-19 | Feature: mon sticky — blue info + green ok filter badges; suite version tag under status pill (not blue badge); filters #filter-info / #filter-ok. |
| v1.15.8 | 2026-07-19 | Bugfix: mon HTML filter JS — drop literal box-drawing / \- regex that caused Python SyntaxWarning (and weird glyphs in suite logs); use Unicode code-point loop instead. |
| v1.15.7 | 2026-07-19 | Bugfix: mon HTML — do not paint «perf/ladder summary» as SUMMARY header (restore 2 INFO lines); drop converter SyntaxWarning/noise from public log; «wrote» on stderr; host-agent PYTHONWARNINGS for convert. |
| v1.15.6 | 2026-07-19 | Bugfix: aptdeploy ERROR jump list is self-contained — systemd httpd failures include before/after state, Result/SubState, failed units, and journal snippets (no more vague «see systemd lines»); ldd/--version errors embed concrete missing libs / exit output. |
| v1.15.5 | 2026-07-19 | Bugfix: devtesting CHF ladder — ssh was draining ladder stdin (only rung 1/23 ran → progress 45/98 then snap 52/52); use ssh -n + mapfile; incomplete ladder is WARN not false complete. |
| v1.15.4 | 2026-07-19 | Bugfix: French sticky titles — page label surveillance, stack summary public + interne, SUMMARY verdict/totals via i18n (tout est clair, totaux :). |
| v1.15.3 | 2026-07-19 | Bugfix: console language auto-fr for *lefrancpaysan* domains again — env TALER_MON_LANG=en no longer locks English; only --lang / TALER_MON_LANG_SET=1 is explicit. |
| v1.15.2 | 2026-07-19 | Bugfix: warn/error filter — drop blank log lines from HTML; compact console (no black voids above/mid/below); context skips SUMMARY chrome & pure box frames; tighter filter-gap. |
| v1.15.1 | 2026-07-19 | Bugfix: mon HTML — phase section() boxes no longer painted as SUMMARY (were blue/green sum-header); only real SUMMARY rows get solid severity backgrounds (OK/WARN/ERROR/INFO). |
| v1.15.0 | 2026-07-19 | Feature: CHF fake-incoming amount ladder in devtesting (DEVTESTING_LADDER=1, default 23 log-spaced rungs CHF:0.01 → CHF:50000); synthetic geniban debit funds each rung; baseline plumbing probe kept. |
| v1.14.0 | 2026-07-19 | Feature: SUMMARY box rows are colour-distinct (per-severity badge + tinted background + bold counts; verdict-coloured header); HTML mon pages style sum-ok / sum-warn / sum-err / … panels the same way. |
| v1.13.13 | 2026-07-19 | Bugfix: progress estimate for devtesting / fake-franken is 8 (happy-path numbered checks), not 10 — avoids mid-run 42/48 then end snap 46/46. |
| v1.13.12 | 2026-07-19 | Bugfix: SUMMARY chrome ([ WARN ] 2, warnings only, OK/ERROR counts without #NNN) is meta, not warn/error — sticky counts + warn filter no longer double SUMMARY rows; filter context skips blank lines. |
| v1.13.11 | 2026-07-19 | Bugfix: sticky error/warn filter keeps ±3 dimmed context lines around each match (gray/grayscale) so phase/group context stays readable; dashed gap between distant clusters. |
| v1.13.10 | 2026-07-19 | Bugfix: multi-phase runs print one global SUMMARY at parent end (aggregated OK/ERROR/WARN/INFO/BLOCK via TALER_MON_STATE); no phase SUMMARY at all (not even last phase); mid-phase still lists ERRORS/BLOCKERS; solo check_*.sh unchanged. |
| v1.13.9 | 2026-07-19 | Bugfix: no mid-run SUMMARY / progress standings between phases (no more 34/52 + SUMMARY after urls while monpages still runs); full stand only on last phase or solo check script; progress_finish remains. |
| v1.13.8 | 2026-07-19 | Bugfix: monpages TOP meta/marker failures (missing generated/version-link/taler-mon-page, empty race body) are WARN only — no longer self-red the run; optional MONPAGES_TOP_STRICT=1 restores ERROR. |
| v1.13.7 | 2026-07-19 | Bugfix: move optional/meta scripts under meta/ (deprecated mail/mm units, firecuda outside-runner, legacy multi-host site-gen); production path stays host-agent + site-gen/console_to_html.py. |
| v1.13.6 | 2026-07-19 | Bugfix: machine paths and SSH hosts only via env (~/.config/taler-monitoring/env / taler-monitoring-env); suite loads env before defaults; no /home/hernani or bogus host hardcodes. |
| v1.13.5 | 2026-07-19 | Bugfix: progress bar — env-aware phase estimates (CHECK_BANK/LANDING, mon hosts); re-fit total after each phase (done+remaining); drop fake +12 for host-agent monpages post-check (fixes stage 42/139→46/46 snap). |
| v1.13.4 | 2026-07-19 | Bugfix: monpages race-proof — atomic HTML write; rsync --delay-updates + settle; fetch retries; larger head windows; pre-publish soft content (MONPAGES_PRE_PUBLISH); bootstrap markers. |
| v1.13.3 | 2026-07-19 | Bugfix: sticky generated time in Europe/Zurich (CEST/CET · MESZ/MEZ), not UTC …Z; ISO keeps offset for age JS. |
| v1.13.2 | 2026-07-19 | Bugfix: sticky version link uses commit URL (/src/commit/<sha>) not /src/tag/v… (tags not yet pushed → Forgejo fat 404); tags v1.11–v1.13.1 pushed to origin. |
| v1.13.1 | 2026-07-19 | Bugfix: progress bar global done/total — phase summary() no longer snaps total to phase-local N (fixes 34/34 then 38/47); final progress_finish snaps once; header shows 0/N. |
| v1.13.0 | 2026-07-19 | Feature: phase devtesting / franken — fake-franken CHF via rusty.taler-ops.ch (taler-devtesting geniban + fake-incoming); stage host-agent can include it. |
| v1.12.0 | 2026-07-19 | Feature: collapsible monitoring env context (agent header: env_file, suite pin, domain/hosts/flags) — <details> default closed; summary shows agent · domain · suite. |
| v1.11.0 | 2026-07-19 | Feature: sticky error/warn filter — click counts to show only error or only warn log lines; sticky bar + overviews stay; #filter-error / #filter-warn (+ #first-* still works). |
| v1.10.11 | 2026-07-19 | Bugfix: surface/aptdeploy wrappers force MON_HOSTS+PHASES+MONPAGES_INVENTORY (env cannot expand job to bank/exchange); wrap more mon knobs. |
| v1.10.10 | 2026-07-19 | Bugfix: monpages bare code 21 is WARN again by default (slash form remains ERROR); bare redir still needs live Caddy redir * — set MONPAGES_BARE_STRICT=1 to enforce. |
| v1.10.9 | 2026-07-19 | Bugfix: stats policy INFO no longer says bare “ERROR” (false #first-error on www.stats-01); extract_errors only from ┌ ERROR badges. |
| v1.10.8 | 2026-07-19 | Docs/clarity: only three public mon URL families (/monitoring, /taler-monitoring-surface, /taler-monitoring-aptdeploy) each bare+slash(+_err); suite name ≠ path; no /taler-monitoring page. |
| v1.10.7 | 2026-07-19 | Bugfix: stop always-rsync of stale suite-overlay over Forgejo tip (broke stage sticky / new site-gen). Overlay only when suite missing phases. |
| v1.10.6 | 2026-07-19 | Fix: stage mon HTML quality — suite update out of public log; filter git noise; stage-specific sticky (not GOA); CHECK_BANK=0 / MERCHANT_REQUIRED for mytops stage scope. |
| v1.10.5 | 2026-07-19 | Fix: aptdeploy monpages job-only (own /taler-monitoring-aptdeploy*); full GOA mon inventory + bare URL checks stay on hacktivism general run — no bank/exchange/surface monpages noise on aptdeploy HTML. |
| v1.10.4 | 2026-07-19 | Fix: suite auto-upgrade strict (SUITE_UPDATE_STRICT=1 default — abort on fetch fail); monpages ERROR on bootstrap HTML; ship mytops-stage timer/service units; host-agent refuses stale tree. |
| v1.10.3 | 2026-07-19 | Bugfix: sticky ERROR only from check badges (┌ ERROR) / ERROR monpages; ignore git HEAD is now at … commit subjects that mention ERROR. |
| v1.10.2 | 2026-07-19 | Bugfix: sticky ERROR count — classify with word-boundary \bERROR\b (not substring); avoids false red from git “wrote-errors” commit lines and similar. |
| v1.10.1 | 2026-07-19 | Bugfix: HTML converter must not treat teed wrote … (errors=N) lines as ERROR (false sticky red after clean host-agent runs). |
| v1.10.0 | 2026-07-19 | Feature: aptdeploy container overview board — inventory + per-pod matrix (state, merchant, httpd, ldd, OK/ERROR) in log and HTML sticky/top (#container-overview). |
| v1.9.4 | 2026-07-19 | Fix: restore taler-monitoring-aptdeploy(+_err) as first-class GOA mon page (catalog + monpages path allow + surface docs). Mail/mattermost stay folded into surface. |
| v1.9.3 | 2026-07-19 | Bugfix (suite): monpages merchant code 21 always ERROR (bare no longer soft-WARN); apply hints use absolute /home/hernani/koopa-caddy/…; ship host-agent/apply-monitoring-live.sh (smoke array, bare check); fix ROOT-ON-KOOPA wrong redir /path/ 302 examples. |
| v1.9.2 | 2026-07-19 | Bugfix: Caddy bare-path redir footgun — inside handle use redir * /path/ 302 (not redir /path/ 302, which becomes Location: 302 and bare URLs fall through to merchant code 21). Snippet + ROOT-APPLY: absolute apply path (/home/hernani/koopa-caddy/…, not ~ as root). |
| v1.9.1 | 2026-07-19 | Bugfix: stale path confusions in repo — sticky pages_i3 no longer lists mail/mattermost/aptdeploy mon pages; lib.sh/android-test drop scripts/taler-monitoring/; monpages/host-agent hints match v1.8 layout; clarify GIT vs GUI vs CLI *AUTOMATION-NOTES.md (three files by design). |
| v1.9.0 | 2026-07-19 | monpages content: ERROR if page missing or markers incomplete — top (sticky-bar/status-bar/generated) + bottom (footer/taler-mon:bottom); mid-run (progress <100% / incomplete meta) relaxes bottom only. Surface required on normal GOA runs with meaningful body (not progress-only). HTML emits taler-mon:top / `taler-mon:bottom:complete |
| v1.8.0 | 2026-07-19 | Simplified public pages: only /taler-monitoring-surface(+_err) on taler.hacktivism.ch for ecosystem software/versions; 9 landing stacks each keep /monitoring(+_err). Mail (firefly.gnunet.org + anastasis.taler-systems.com) and Mattermost folded into surface job; separate mail/mattermost mon pages + timers deprecated. nmap OS fingerprinting on surface (SURFACE_NMAP); ERROR when packages are behind (TALER_PKG_BEHIND=error default) or OS fingerprint is EOL. |
| v1.8.1 | planned | L10n packs: fr-CH (FrancPaysan) and de-CH (hacktivism / Taler CH German). |
| v1.7.7 | 2026-07-18 | domains: stage mytops merchant FQDN is stage.my.taler-ops.ch (betel mon sites). |
| v1.9.1 | 2026-07-19 | Bugfix: stale path confusions in repo — sticky pages_i3 no longer lists mail/mattermost/aptdeploy mon pages; lib.sh/android-test drop scripts/taler-monitoring/; monpages/host-agent hints match v1.8 layout; clarify GIT vs GUI vs CLI *AUTOMATION-NOTES.md (three files by design). |
| v1.9.0 | 2026-07-19 | monpages content: ERROR if page missing or markers incomplete — top (sticky-bar/status-bar/generated) + bottom (footer/taler-mon:bottom); mid-run (progress <100% / incomplete meta) relaxes bottom only. Surface required on normal GOA runs with meaningful body (not progress-only). HTML emits taler-mon:top / `taler-mon:bottom:complete |
| v1.8.0 | 2026-07-18 | monpages obligatory (ERROR): GOA checks full suite inventory (bank/exchange/taler /monitoring/ + surface/aptdeploy/mattermost/mail + on-disk discovery); FP only its own mon hosts; MONPAGES_REQUIRE_PUBLIC=1 default (escape hatch =0). Bugfix: with_timeout no longer re-runs a phase when it exits non-zero. |
| v1.9.1 | 2026-07-19 | Bugfix: stale path confusions in repo — sticky pages_i3 no longer lists mail/mattermost/aptdeploy mon pages; lib.sh/android-test drop scripts/taler-monitoring/; monpages/host-agent hints match v1.8 layout; clarify GIT vs GUI vs CLI *AUTOMATION-NOTES.md (three files by design). |
| v1.9.0 | 2026-07-19 | monpages content: ERROR if page missing or markers incomplete — top (sticky-bar/status-bar/generated) + bottom (footer/taler-mon:bottom); mid-run (progress <100% / incomplete meta) relaxes bottom only. Surface required on normal GOA runs with meaningful body (not progress-only). HTML emits taler-mon:top / `taler-mon:bottom:complete |
| v1.8.0 | 2026-07-18 | Bugfix: monpages soft mode MONPAGES_REQUIRE_PUBLIC=0 (FP wrappers default) — missing public HTML is WARN until vhost publish; generic publish hints. |
| v1.7.4 | 2026-07-18 | Bugfix: monpages bare URLs (/monitoring without /) WARN by default (trailing slash remains ERROR); avoids false red when slash form is live. |
| v1.7.3 | 2026-07-18 | Monitoring pages themselves as suite scope: README section + sticky “What this monitors” block (monpages / public HTML paths). |
| v1.7.2 | 2026-07-18 | Bugfix: Caddy static handles — root must be host dir + matcher /monitoring* (not leaf dir + /monitoring/), else file_server returns empty 404 after apply. |
| v1.7.1 | 2026-07-18 | Host-agent default STRICT_EXIT=1; monpages staging-vs-public diagnosis; re-htmlify after public check fails. |
| v1.7.0 | 2026-07-18 | CLI --ver / --version / -V: suite version, git commit, repo/tag/commit URLs. |
| v1.6.0 | 2026-07-18 | Mail monitoring: phase mail (firefly + pixel/TSA); MX/SMTP/IMAP/SPF/DMARC; /taler-monitoring-mail*. |
| v1.5.0 | 2026-07-18 | Mattermost monitoring: phase mattermost for mattermost.taler.net; /taler-monitoring-mattermost*. |
| v1.4.1 | 2026-07-18 | Generic docs (no client hostnames); canonical install path ~/src/taler-monitoring. |
| v1.4.0 | 2026-07-18 | MAJOR.FEATURE.FIX version scheme formalized (three-component tags + VERSION file). |
| v1.3.4 | 2026-07-18 | Summary i18n, monpages code-21 detection, aptdeploy rsync path. |
| v1.3.3 | 2026-07-18 | GIT notes vs GUI notes; monpages in TESTS. |
| v1.3.2 | 2026-07-18 | Suite paths only ~/src/taler-monitoring (no admin-log suite tree). |
| v1.3.1 | 2026-07-18 | monpages FQDN check + deploy no longer silent-skip. |
| v1.3.0 | 2026-07-18 | Sticky bar suite version + Forgejo tag link. |
| v1.2.0 | 2026-07-18 | Language selection: --lang / TALER_MON_LANG (en|fr). |
| v1.1.0 | 2026-07-18 | i18n chrome: English default; French for FrancPaysan. |
| v1.0.0 | 2026-07-18 | Initial standalone release. |
Sticky bar version (v1.3.0+)
Generated HTML shows the installed release tag (e.g. v1.8.0) and links to Forgejo:
https://git.hacktivism.ch/hernani/taler-monitoring/src/tag/<tag>
Resolved via git describe --tags / VERSION.
Public monitoring pages (v1.3.1+)
Publish under DEPLOY_WWW_ROOT and Caddy handles. Missing handles → merchant JSON code 21.
See koopa-admin-log issue I-09 / apply-monitoring-live.sh.
| Check | How |
|---|---|
| Phase | ./taler-monitoring.sh monpages |
| CLI version | ./taler-monitoring.sh --ver |
Language (v1.2.0+)
| Method | Example |
|---|---|
| CLI | ./taler-monitoring.sh --lang fr … |
| Env | TALER_MON_LANG=en or fr |
| Auto | *lefrancpaysan* → fr, else en |
Full locale packs (fr-CH / de-CH): v1.8.0 (planned).
Pin a release
git clone https://git.hacktivism.ch/hernani/taler-monitoring.git ~/src/taler-monitoring
cd ~/src/taler-monitoring && git checkout v1.9.1