diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-10 10:13:04 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-10 10:13:04 +0200 |
| commit | 2cdd4dba93b26691a85cd0977294687d5afe0670 (patch) | |
| tree | 6027db6b599b43138a7b1f81a08296f7e91cfa5e /README.md | |
| parent | 57dc93c3069ccac583533f4f2d4f9cbc2720c73e (diff) | |
| download | abusectl-2cdd4dba93b26691a85cd0977294687d5afe0670.tar.gz abusectl-2cdd4dba93b26691a85cd0977294687d5afe0670.zip | |
feat: freeze a reported case and detect edited bodies
Content hash rather than mtime, because mtime is wrong in both directions.
Any sent destination freezes the whole case with no override: two desks
holding contradictory accounts of one incident is worse than a stale body.
The marker is tested for PRESENCE rather than truthiness. It is write-once
and monotonic, so an empty or malformed value is a half-written record of a
case a desk may already hold, and the safe direction is to refuse; only an
explicit null counts as absent. A non-mapping marker refuses too rather than
raising AttributeError out of a .get, since cli turns Frozen into a message
and a traceback into a bug report.
The hash pins utf-8 rather than leaving the encoding to the locale: it is
compared against a body read back off disk, possibly under a different LANG,
and for a sent destination it is the record of what was disclosed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LByBnw83xr9YP85nskzkyE
Diffstat (limited to 'README.md')
0 files changed, 0 insertions, 0 deletions
