Media distortion
branch chain on the reply path, carve + ffmpeg in cb-worker behind a real semaphore (D3) with per-call temp dirs (D4); v1's video/GIF arms are unreachable and stay disabled; seam carving over numpy replaces ImageMagick liquid_rescale - see docs/contracts/x_distortion.md; QA authored (12 scenarios)
/destroy/zoar/destruir- v1 scenarios
- —
- Ported
- 10
- Green
- 12
- Failing
- —
branch chain on the reply path, carve + ffmpeg in cb-worker behind a real semaphore (D3) with per-call temp dirs (D4); v1's video/GIF arms are unreachable and stay disabled; seam carving over numpy replaces ImageMagick liquid_rescale - see docs/contracts/x_distortion.md; QA authored (12 scenarios)
Distortioner.py:114-156What it does
Behaviour that must not change
How to verify it
Per-group custom commands
53 exported Custom/ folders are the trigger list, matched by a filter rather than COMMAND_ALIASES because the names are data; gated per tenant by cb_gateway/packs.py, which is what finally reads tenants.handler_pack
Drawing idea prompt
3,435 exported references; the caption's id is the index drawn, so the catalog's sort order is the contract. Scenarios authored locally - QA has none