fix: make daily task log header-only

This commit is contained in:
Wyndham ARR
2026-08-11 17:23:33 +08:00
parent c947230471
commit f2c1265a1c
16 changed files with 251 additions and 34 deletions

View File

@@ -0,0 +1,41 @@
# `0806.XML` invalid UTF-8 diagnosis
## Metadata
- Date: 2026-08-11
- Status: Read-only input diagnosis; source re-export required
- Scope: exact desktop `0806.XML`, processor 4.0.0 isolated replay, public deployment health probe
- Confidence: High for the inspected file; the authenticated remote artifact hash was not read
## Observed behavior
- The public ARR endpoint at `8.138.234.141:8765` remained healthy: anonymous `/healthz` returned HTTP 200 while
authenticated detail endpoints remained protected.
- The inspected `0806.XML` is 694,286 bytes with SHA-256
`b41c103bfad7f9f0abb25af159a0c5920f0f9b89e156d31919521d057b62639f`.
- An isolated active-processor replay exited 3 with `status=failed`, `business_date=null`, zero parsed source rows and
exactly one `XML_PARSE_ERROR`: `not well-formed (invalid token): line 1872, column 0`.
- The structured result is processor 4.0.0 / Schema 4.0 with `activation_eligible=false`; every outcome count and
review count is zero. No price matching was reached.
## Root cause
- The XML declaration says UTF-8, but line 1872 inside a `TRACE_TEXT` value begins with bytes
`ED A0 BC ED BE 89`.
- Those six bytes are the CESU-8 representation of UTF-16 surrogate pair `U+D83C U+DF89`, whose intended Unicode
scalar is `U+1F389`. UTF-8 must encode that scalar as one four-byte sequence; XML 1.0 also forbids surrogate code
points as PCDATA.
- The file contains exactly one such surrogate pair. Its closing XML structure is present, so this is an encoding
defect rather than a truncated export.
- Manual price review is intentionally unavailable: only a non-empty error set consisting entirely of
`PRICE_UNMATCHED` can enter `review_required`; `XML_PARSE_ERROR` is a formal input failure before pricing.
## Safe recovery boundary
Re-export the 2026-08-06 Opera XML as standards-compliant UTF-8, preferably after the upstream trace text no longer
contains the mis-encoded character, then upload the new export as a fresh task. Do not edit the registered source
artifact or convert the failed task into a review case. A fresh replay is still required to discover any later price
or business-rule issues after parsing succeeds.
No original XML byte, upload, review item, database fact, Finance version, object-store object, event or runtime process
was changed during this diagnosis.