Whole file
guillaumemeyer/watermarks-remover
The author described this change as “fix: c2patool "No claim found" reported as a C2PA manifest (#3)”. It counts as a record because the check below fails on the code as it stood at 51593cc64 and passes on a107b8d10, with nothing else changed between the two runs.
Fix saved2026-08-12
Sharing licenceMIT · LICENSE
Change size+10 −5
What the code was meant to do, written into the code itself as a save note
fix: c2patool "No claim found" reported as a C2PA manifest (#3)
The change
| 196 | 196 | timeout=30, | |
| 197 | 197 | ) | |
| 198 | 198 | out = (r.stdout or "") + (r.stderr or "") | |
| 199 | + | low = out.lower() | |
| 200 | + | # Negative markers must veto every positive branch, so the | |
| 201 | + | # positive alternatives are parenthesised: c2patool reports a | |
| 202 | + | # missing manifest as "Error: No claim found", which contains | |
| 203 | + | # the substring "claim" and would otherwise read as a hit. | |
| 204 | + | no_manifest = "no claim" in low or "no jumbf" in low | |
| 199 | 205 | tools["c2patool"] = { | |
| 200 | 206 | "available": True, | |
| 201 | 207 | "returncode": r.returncode, | |
| 202 | 208 | "snippet": out[:2000], | |
| 203 | - | "has_manifest": "claim" in out.lower() | |
| 204 | - | or "c2pa" in out.lower() | |
| 205 | - | or "manifest" in out.lower() | |
| 206 | - | and "no claim" not in out.lower() | |
| 207 | - | and "no jumbf" not in out.lower(), | |
| 209 | + | "has_manifest": ( | |
| 210 | + | "claim" in low or "c2pa" in low or "manifest" in low | |
| 211 | + | ) | |
| 212 | + | and not no_manifest, | |
| 208 | 213 | } | |
| 209 | 214 | except Exception as e: | |
| 210 | 215 | tools["c2patool"] = {"available": True, "error": str(e)} |
The check that tells the two apart
fail→pass·tests/test_c2patool_report.py::test_no_claim_found_is_not_a_manifest
Check file tests/test_c2patool_report.py, taken without changes from the fix and copied onto the older code, so the exact same check runs against both versions.
Origin and history
The code before it51593cc64ca14b46a1c210f9542b24f2918c982d
Broken version dated2026-08-12
Moduleskills.remove-ai-marks.scripts.image_meta
Units changedrun_optional_tools
Fingerprintb249e80e7937da10
Checked2026-08-18 by goldset/0.1
Every field above is generated by our program. None of it is written by hand.