release 1.10.3: sticky ERROR only from check badges

This commit is contained in:
Hernâni Marques 2026-07-19 01:30:07 +02:00
parent 1226d2a8f7
commit bc0d0a5485
No known key found for this signature in database
GPG key ID: CB5738652768F7E9
3 changed files with 11 additions and 5 deletions

View file

@ -1 +1 @@
1.10.2 1.10.3

View file

@ -17,6 +17,7 @@ Git tags: `vMAJOR.FEATURE.FIX` (e.g. `v1.8.0`). File `VERSION` omits the `v` pre
| Tag | Date (UTC) | Notes | | Tag | Date (UTC) | Notes |
|-----|------------|--------| |-----|------------|--------|
| **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.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.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.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`). |

View file

@ -199,14 +199,19 @@ def classify(line: str) -> str:
# host-agent tees converter "wrote … (errors=N …)" into the same log # host-agent tees converter "wrote … (errors=N …)" into the same log
if line.lstrip().lower().startswith("wrote ") and "errors=" in line.lower(): if line.lstrip().lower().startswith("wrote ") and "errors=" in line.lower():
return "meta" return "meta"
# git pull / reset noise (commit subjects may contain the word ERROR)
if re.match(r"\s*HEAD is now at\b", line):
return "meta"
if "BLOCKER" in u or "┌ BLOCKER" in u: if "BLOCKER" in u or "┌ BLOCKER" in u:
return "blocker" return "blocker"
# word-boundary: avoid "wrote-errors", "ERRORS=", commit subjects, etc. # Only real check badges (not free-text "ERROR" inside commit messages)
if re.search(r"\s*ERROR\b|\[\s*ERROR\b|\bERROR\b", u) and not is_summary_error_line(line): if re.search(r"\s*ERROR\b|\[\s*ERROR\b", u):
return "error" return "error"
if re.search(r"\s*WARN\b|\[\s*WARN\b|\bWARN\b", u): if re.search(r"\bERROR monpages\b", line, re.I):
return "error"
if re.search(r"\s*WARN\b|\[\s*WARN\b", u):
return "warn" return "warn"
if re.search(r"\s*INFO\b|\[\s*INFO\b|\bINFO\b", u): if re.search(r"\s*INFO\b|\[\s*INFO\b", u):
return "info" return "info"
if " OK" in u or "[OK" in u or "┌ OK" in u or u.strip().startswith("OK"): if " OK" in u or "[OK" in u or "┌ OK" in u or u.strip().startswith("OK"):
return "ok" return "ok"