mirror of
https://github.com/adobe/skills.git
synced 2026-09-19 08:06:09 +08:00
06a2d78493
Evidence: 48 field sessions (Aug–Sep 2026, 24 projects) and the notes those runs wrote about themselves. pixel-compare.mjs was slow or timed out in 17 of 24 runs and on every plugin version since 0.18.1; seven projects' own notes name it, four describe it at 0 % CPU after printing its verdict; agents answered with `sleep 150; kill` loops (one page: 30 fixed minutes). Reproduced 2026-09-18: with stdout redirected (as gate.sh and every agent pipeline run it) process.exit() after the compare hangs Node's platform shutdown (Environment::Exit → DisposePlatform → WorkerThreadsTaskRunner::Shutdown → uv_thread_join), ~1 run in 4 on Node 25; nine such processes from earlier migrations were still alive on the test machine, some for six days. - pixel-compare.mjs: drain via process.exitCode (0 hangs in 10 runs where the original hung) + supervised --timeout (default 120 s, exit 124 = no verdict) - run-capped.mjs (new): process-group deadline wrapper (macOS has no timeout) - gate.sh: captures under run-capped (GATE_STITCH_TIMEOUT / GATE_COMPARE_TIMEOUT), no partial live.png reuse, stale-instrument reap (GATE_REAP_MIN, default 15) - chrome-parity.mjs --live-cache, anchor.mjs --cache: live side probed once per breakpoint, reused while url/width/selectors match; anchor warns when --main matched a wrapper still containing header/footer - evals/lint/script-paths.mjs (new, npm run lint:stardust + CI): plugin-internal skills/<skill>/scripts|reference paths in docs must exist; fixed the two it found - docs: gate iteration discipline, replica Phase 4 snippet, deploy § 7 brief discipline, master hands-off defaults, capped DA protocol waits; CHANGELOG 0.22.1 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>