Files
hermes-agent/plugin-catalog/image-utils.yaml
MazenMkhinini 960864fd70 chore(plugin-catalog): pin image-utils to the three-platform commit
2cc23a9 -> c4123fbdb315137b40e4c5b4b5fd3eb2298dae66. The pinned commit runs its suite on ubuntu-latest, macos-latest and
windows-latest (actions/runs/35520540211, all green), so windows is declared in platforms instead of
being excluded without explanation, and the README now gives the manual install route that Windows
needs because install.sh is a POSIX shell script.

What CI found and fixed on the way to that green run, all of it reaching the plugin only through this
branch: an in-place overwrite of a multi-frame image failed on Windows because the input's read handle
(and the mapping Pillow uses for single-strip BMP/TIFF/PNG/P) was still open at the rename; a
read-only target is refused by Windows even with the mode restored afterwards, so the attribute is
cleared for the rename and put back either way; WinError 5/32 from an external holder is retried
briefly; release/rename/chmod hold the plugin's guard lock; and converting a JPEG with EXIF
orientation 5-8 to TIFF no longer fails its own verification (Pillow's TIFF reader applies the tag,
so the file legitimately reads back transposed).

Diff adopted: 5 commits, tools.py +158/-23, tests +366, README +5, 135 tests (134 + 1 platform skip
on Windows).
2026-09-20 10:27:04 -07:00

22 lines
655 B
YAML

name: image-utils
repo: https://github.com/MazenMkhinini/hermes-image-plugin
sha: c4123fbdb315137b40e4c5b4b5fd3eb2298dae66
description: Inspect, resize, crop, rotate, convert and re-encode image files in-process with Pillow - no shell, no ImageMagick, no network.
maintainer: MazenMkhinini
tier: community
category: tools
docs_url: https://github.com/MazenMkhinini/hermes-image-plugin#readme
version: "1.0.0"
platforms: [linux, macos, windows]
capabilities:
provides_tools:
- image_info
- image_resize
- image_crop
- image_rotate
- image_convert
- image_optimize
provides_hooks: []
provides_middleware: []
requires_env: []