hermes-agent/skills
SHL0MS a7780fe05f fix(skills/comfyui): bug fixes, cloud parity, expanded coverage, examples, tests
The audit of v4.1 surfaced ~70 issues across the five scripts and three
reference docs — most user-visible (silent file overwrites, status-error
misclassified as success, X-API-Key leaked to S3 on /api/view redirect,
Cloud endpoints that 404 because they were renamed). v5.0.0 fixes those
and fills the gaps that previously forced users to write their own glue
(WebSocket monitoring, batch/sweep, img2img upload helper, dep auto-fix,
log fetch, health check, example workflows).

Critical fixes
- run_workflow.py: poll_status now checks status_str==error BEFORE
  completed:true, so a failed run no longer reports success
- run_workflow.py: download_output streams to disk via safe_path_join,
  preserves server subfolder structure (no silent overwrites), and
  retries with exponential backoff
- run_workflow.py: refuses to overwrite a link with a literal in
  inject_params (would silently break wiring)
- _common.py: _StripSensitiveOnRedirectSession (subclasses
  requests.Session.rebuild_auth) drops X-API-Key/Cookie on cross-host
  redirects — fixes a real key-leak path through Cloud's signed-URL
  download flow. Tested
- Cloud routing (verified live): /history → /history_v2,
  /models/<f> → /experiment/models/<f>, plus folder aliases for the
  unet ↔ diffusion_models and clip ↔ text_encoders rename
- check_deps.py: distinguishes 200/empty vs 404 folder_not_found vs
  403 free-tier; emits concrete fix_command per missing dep
- extract_schema.py: prompt vs negative_prompt determined by tracing
  KSampler.{positive,negative} connections (incl. through Reroute /
  Primitive nodes) instead of meta-title heuristic; symmetric
  duplicate-name resolution; cycle-safe trace_to_node
- hardware_check.py: multi-GPU pick-best, Apple variant detection,
  Rosetta detection, WSL2, ROCm --json, disk-space check, optional
  PyTorch probe; powershell preferred over deprecated wmic
- comfyui_setup.sh: prefers pipx → uvx → pip --user (with PEP-668
  fallback); idempotent — skips relaunch if server already up;
  configurable port/workspace; persistent log; SIGINT trap

New scripts
- run_batch.py — count or sweep (cartesian product), parallel up to
  cloud tier limit
- ws_monitor.py — real-time WebSocket viewer; saves preview frames
- auto_fix_deps.py — runs comfy node install / model download for
  whatever check_deps reports missing (with --dry-run)
- health_check.py — single command that runs the verification checklist
  (comfy-cli + server + checkpoints + optional smoke test that cancels
  itself to avoid burning compute)
- fetch_logs.py — pull traceback / status messages for a prompt_id

Coverage expansion
- Param patterns now cover Flux (BasicScheduler, BasicGuider,
  RandomNoise, ModelSamplingFlux), SD3, Wan/Hunyuan/LTX video,
  IPAdapter, rgthree, easy-use, AnimateDiff
- Embedding refs in CLIPTextEncode strings extracted as model deps
- ckpt_name / vae_name / lora_name / unet_name now controllable so
  workflows can be retargeted per run

Examples
- workflows/{sd15,sdxl,flux_dev}_txt2img.json
- workflows/sdxl_{img2img,inpaint}.json
- workflows/upscale_4x.json
- workflows/{animatediff_video,wan_video_t2v}.json + README

Tests
- 117 tests (105 unit + 8 cloud integration + 4 cross-host security)
- Cloud tests auto-skip without COMFY_CLOUD_API_KEY; verified end-to-end
  against live cloud API

Backwards compatibility
- All existing CLI flags continue to work; new behavior is opt-in
  (--ws, --input-image, --randomize-seed, --flat-output, etc.)
2026-04-29 20:48:01 -07:00
..
apple revert: computer-use cua-driver (PR #16919) (#16927) 2026-04-28 01:57:21 -07:00
autonomous-ai-agents feat(security): make secret redaction off by default (#16794) 2026-04-27 21:24:08 -07:00
creative fix(skills/comfyui): bug fixes, cloud parity, expanded coverage, examples, tests 2026-04-29 20:48:01 -07:00
data-science docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
devops/webhook-subscriptions docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
diagramming refactor: reorganize skills into sub-categories 2026-03-09 03:35:53 -07:00
dogfood docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
domain refactor: reorganize skills into sub-categories 2026-03-09 03:35:53 -07:00
email docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
gaming docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
gifs refactor: reorganize skills into sub-categories 2026-03-09 03:35:53 -07:00
github docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
index-cache Release set of skills 2026-02-25 05:21:17 -08:00
inference-sh feat(gateway): skill-aware slash commands, paginated /commands, Telegram 100-cap (#3934) 2026-03-30 10:57:30 -07:00
mcp docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
media docs(skills): salvage dropped trigger content into skill bodies 2026-04-26 21:50:56 -07:00
mlops docs(skills): salvage dropped trigger content into skill bodies 2026-04-26 21:50:56 -07:00
note-taking refactor: update Obsidian vault path handling 2026-02-25 20:24:51 -08:00
productivity docs(skills): salvage dropped trigger content into skill bodies 2026-04-26 21:50:56 -07:00
red-teaming/godmode docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
research docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
smart-home docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
social-media docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00
software-development skills: adapt spike/sketch + 2 references from gsd-build/get-shit-done (MIT) (#17421) 2026-04-29 06:10:05 -07:00
yuanbao docs(skills): compress 74 built-in skill descriptions to <=60 chars 2026-04-26 21:50:56 -07:00