diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-09 19:25:12 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-09 19:25:12 +0200 |
| commit | b0031f905eb63fc76aa6cad0421c4623ebad2b88 (patch) | |
| tree | d1fe969903fc72a398d151ccc07665f4f5d138f9 /tests/test_case.py | |
| parent | 725c8ee4a3dff16c54bae6723a12ca2ef17d7e2f (diff) | |
| download | abusectl-b0031f905eb63fc76aa6cad0421c4623ebad2b88.tar.gz abusectl-b0031f905eb63fc76aa6cad0421c4623ebad2b88.zip | |
feat: build the human-readable part of a report
The ask goes first, only this desk's own indicators appear, and the redaction
note is unconditional: a desk seeing REDACTED with no explanation may read
the report as doctored.
Nothing is truncated. The plan cut three lines with a [:72] slice and left
the indicator list unwrapped, which is the same defect twice: a cut URL is a
WRONG indicator rather than a short one, and a desk acting on the first 72
characters acts on a resource nobody reported. Long values are divided with
an explicit trailing-backslash continuation instead, and unwrap() is the
exact inverse, so the tests assert reassembly rather than mere presence.
That is what rules out a truncation passing as a wrap.
Origins are mapped to English. "header-list_unsubscribe" is a parser's
vocabulary and reads as debug output; an origin the table does not know is
shown as-is, because losing the only line saying where an indicator came
from is worse than showing an ugly token.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xj1ayFRSUQ2u7cwb3S4axE
Diffstat (limited to 'tests/test_case.py')
0 files changed, 0 insertions, 0 deletions
