Commit Graph
15 Commits
Author SHA1 Message Date
Guillaume Meyer (The Opinionated Man) 396c83dbae feat: add finding confidence and aggregate audits
- classify findings as confirmed/probable/informational/likely_false_positive
- expose confidence in text/image/container JSON and human reports
- add audit_dir.py and audit_website.py for aggregate reports
- document the confidence taxonomy and audit commands in SKILL.md

Closes #13
2026-08-13 08:29:04 -07:00
Guillaume Meyer (The Opinionated Man) 44606f6b64 docs: add watermark-removal references and responsible-use disclaimer 2026-08-13 08:29:04 -07:00
Guillaume Meyer (The Opinionated Man) df487bbc14 docs: add controllable-regeneration watermark removal reference 2026-08-13 08:29:04 -07:00
Guillaume Meyer (The Opinionated Man) ca375cec29 fix: stop AI-marker false positives in DOCX/emoji/HTML/PDF scans
- DOCX: scan only docProps/customXml parts, not the visible body (#14)
- Text Layer A: preserve emoji VS16/ZWJ after an emoji base; add paranoid flag (#22)
- HTML: treat CMS generator tags as informational, not AI metadata (#13)
- PDF: exclude stream payloads from AI-marker byte scan (#13)
- Add unsupported/best-effort notes to inspect reports
2026-08-13 08:29:04 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub b4676e9e54 fix: finish Windows support (preexec_fn, symlink tests, Windows CI) (#23)
* fix: make subprocess and symlink tests Windows-compatible

- Gate preexec_fn (POSIX-only) so optional tools can run on Windows
- Skip symlink tests when the platform denies the privilege
- Add a Windows CI leg and a Windows CLI smoke run

* fix: use UTF-8 stdio and fail Windows smoke on first error

- Reconfigure stdin/stdout/stderr to UTF-8 so Windows redirected streams
  stop raising UnicodeEncodeError on invisible Unicode characters
- Chain the Windows smoke commands so a failing script fails the step
2026-08-13 07:16:13 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub f10efaa7ef Merge pull request #11 from dependabot
chore(deps): bump pywavelets from 1.7.0 to 1.9.0 in /skills/remove-ai-marks/scripts
2026-08-12 21:32:04 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub 9bfb639bdb Merge pull request #10 from dependabot
chore(deps): bump numpy from 2.0.2 to 2.5.2 in /skills/remove-ai-marks/scripts
2026-08-12 21:30:41 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub 32edee5694 Merge pull request #7 from dependabot
chore(deps): bump python from 3.11-slim to 3.14-slim
2026-08-12 21:30:09 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub de559611de Merge pull request #12 from dependabot
chore(deps): bump scikit-learn from 1.5.2 to 1.9.0 in /skills/remove-ai-marks/scripts
2026-08-12 21:30:04 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub 4bbfa3a4e0 Merge pull request #9 from dependabot
chore(deps): bump opencv-python from 4.10.0.84 to 5.0.0.93 in /skills/remove-ai-marks/scripts
2026-08-12 21:29:57 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub 67d3362339 Merge pull request #8 from dependabot
chore(deps): bump scipy from 1.14.1 to 1.18.0 in /skills/remove-ai-marks/scripts
2026-08-12 21:25:44 -07:00
Guillaume Meyer (The Opinionated Man) ccdde45f6d ci: add Dependabot config and security-path CODEOWNERS
- dependabot.yml: weekly updates for GitHub Actions (rotates the SHA pins),
  root pip deps (requirements-dev.txt), and the scorer requirements
  (compatibility-coupled to the pinned upstream commit — human re-verify
  noted), monthly for the digest-pinned Docker base image.
- CODEOWNERS: keep the default maintainer ownership and make ownership of
  /.github and SECURITY.md explicit.
2026-08-12 21:16:36 -07:00
Guillaume Meyer (The Opinionated Man) 34525246e2 Release v0.3.2: security hardening — safe writes, hardened HTTP client, CI supply chain 2026-08-12 21:14:47 -07:00
Guillaume Meyer (The Opinionated Man) fa81cbc23a fix: harden writes, HTTP client, CI supply chain, and resource caps
Security hardening from deep assessment:

- Writes: atomic temp+rename via safe_write_bytes/text (no symlink
  following, no partial in-place loss); backup_path for --in-place;
  umask-default modes; symlink destinations refused.
- rewrite_text: refuse redirects (no Authorization/key re-send to
  unvalidated hosts), default-deny loopback allowlist with explicit
  --allow-remote / WATERMARKS_REWRITE_ALLOW_REMOTE opt-in, http(s)-only
  schemes, --api-key argv flag removed (env-only).
- CI: SHA-pin actions (checkout v7.0.1, setup-python v7.0.0, codeql),
  permissions: contents: read, pinned requirements-dev.txt, pip-audit
  step; new CodeQL workflow.
- Scorer deps: bump Pillow 10.4.0 -> 12.3.0 (24 known CVEs); pip pinned
  in Dockerfile and setup_synthid.sh; Docker runs as unprivileged user.
- Resource caps: MAX_INPUT_BYTES 1GiB -> 256MiB, 64MiB stdin cap,
  zip budget 512MiB -> 128MiB, RLIMIT_AS/FSIZE on child processes.
- Tests: 18 new security regression tests (60 total, all passing).
2026-08-12 21:13:53 -07:00
Guillaume Meyer (The Opinionated Man)andGitHub a443019bc8 Merge pull request #6 from CarlosMaeda/fix/harden-cleaners
fix: harden cleaners against argv injection and resource exhaustion
2026-08-12 20:49:43 -07:00