2-stop linearGradient SVG digitizes to 200 OK with 0 stitch objects (silent empty success) #132
Labels
No labels
blocked:children
blocked:depends-101
blocked:depends-103
blocked:depends-104
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:preflight
bug
chore
feature-request
in-progress
lint-cleanup
needs-decompose
performance
quality
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/easystitch#132
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
A 2-stop linearGradient SVG returns HTTP 200 with 1 region and 0 stitch objects — a success-shaped empty result.
Verified live 2026-09-15 against
easystitch-service :8080(which wraps this engine):Request:
POST /v1/digitize, multipart, 100x100 SVG with a single rectfill="url(#g)", settingsmaxColors=4, stitchPreference=balanced.Response:
{"regions": [{"id": "r0", "polygon": [...rect...], "color": "#000000", "stitchType": "tatami_fill"}], "stitchObjects": [], "stats": {...}}— HTTP 200.Gradient support landed earlier (gradient resolver + wiring per #96), and a 3-stop gradient previously produced 8 stitch objects / 10,400 stitches. This 2-stop case produces none — either a resolver gap or a silent fallback that swallows the resolution failure and emits the raw region.
Expected
Gradient fills flatten to stops and produce stitch objects. If a gradient cannot be resolved, fail loudly (4xx/error) — never 200 with empty
stitchObjects.Where to look
exceptaround resolution that falls back to emitting the un-resolved regionSeverity
P1 — silent empty success. The webUI now surfaces an error (frontend commit 468ab77), but the engine should not emit this shape.