Decompose: Add HTTP service layer (FastAPI) exposing the EmbroideryPipeline — Phase 2: POST /v1/digitize #47
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#47
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?
Phase 2: POST /v1/digitize
Wire the 5-stage pipeline to a single endpoint. This is the core of the
service.
Files:
src/service/app.py(add/v1/digitizeroute)src/service/models.py(DigitizeRequest, DigitizeResponsepydantic models)
src/service/handlers/digitize.py(route handler, callsEmbroideryPipeline.process_bytes(), formats response)Acceptance:
POST /v1/digitizewith a 1024×1024 PNG and default settings returnsa valid
DigitizeResponse(regions, stitchObjects, stats) within 5seconds on a 4-core dev box.
stats.stagesbreakdown (depends on issue#35 — the
stagesdict population fix — being merged first).format emit fails) return a structured
503with the failing stagenamed in the body. No 500s on expected failures.
Depends on: P1 (skeleton). Soft-depends on #32 (importable pipeline)
and #33 (process_bytes method) — if those aren't done first, this
phase has to call
process(input_path)and write temp files, whichadds friction. Land them first for cleanliness.
Decomposed from easystitch#31
Cross-link: ThreadCraft #11 — this phase is the /v1/digitize endpoint the ThreadCraft frontend calls.
This issue has been decomposed into the following sub-issues:
Each sub-issue awaits triage pipeline assessment before queue routing.