From 443c7a4c7137b93f17cd72821ce5531154759919 Mon Sep 17 00:00:00 2001 From: Ivo Oskamp Date: Fri, 9 Jan 2026 10:13:07 +0100 Subject: [PATCH] Auto-commit local changes before build (2026-01-09 10:13:07) --- .last-branch | 2 +- .../src/backend/app/parsers/__init__.py | 13 ++++++++++++- docs/changelog.md | 6 ++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.last-branch b/.last-branch index 8c90e92..ac95a8e 100644 --- a/.last-branch +++ b/.last-branch @@ -1 +1 @@ -v20260109-02-object-list-sorting +v20260109-03-preserve-ampersand-errors diff --git a/containers/backupchecks/src/backend/app/parsers/__init__.py b/containers/backupchecks/src/backend/app/parsers/__init__.py index d6df393..b344929 100644 --- a/containers/backupchecks/src/backend/app/parsers/__init__.py +++ b/containers/backupchecks/src/backend/app/parsers/__init__.py @@ -43,14 +43,25 @@ def _store_mail_objects(msg: MailMessage, objects: List[Dict]) -> None: - error_message (optional) """ for item in objects or []: - name = (item.get("name") or "").strip() + name = _sanitize_text(item.get("name") or "") + if isinstance(name, str): + name = name.strip() if not name: continue object_type = (item.get("type") or item.get("object_type") or None) + object_type = _sanitize_text(object_type) if isinstance(object_type, str): object_type = object_type.strip() or None + status = (item.get("status") or None) or None + status = _sanitize_text(status) + if isinstance(status, str): + status = status.strip() or None + error_message = item.get("error_message") or None + error_message = _sanitize_text(error_message) + if isinstance(error_message, str): + error_message = error_message.strip() or None db.session.add( MailObject( mail_message_id=msg.id, diff --git a/docs/changelog.md b/docs/changelog.md index 27e37ad..2b9212f 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -16,6 +16,12 @@ - Within each severity group, objects are sorted alphabetically (A–Z). - Applied consistent sorting across all relevant views, including Inbox, Job Details, Run Checks, Daily Jobs, and Admin All Mail. +--- + +## v20260109-03-preserve-ampersand-errors +- Decode HTML entities (e.g. &) in parsed object fields (name/type/status/error_message) before storing them. +- Ensures ampersands and other entities are displayed correctly in the UI error messages. + ================================================================================================================================================ ## v0.1.19 This release delivers a broad set of improvements focused on reliability, transparency, and operational control across mail processing, administrative auditing, and Run Checks workflows. The changes aim to make message handling more robust, provide better insight for administrators, and give operators clearer and more flexible control when reviewing backup runs.