Export dialog offers only PES and DST — service also supports EXP (Melco) and JEF (Janome/Elna); add them to the format list #129
Labels
No labels
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:verify-failed
bug
deferred
feature-request
in-progress
needs-decompose
needs-triage
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/Kimi_Agent_Brother_10_Digitizing_App#129
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?
Finding
The service's
/v1/exportendpoint supports four formats:pes,dst,exp,jef. The client UI's export dialog offers only PES and DST (after the round 4 fix removed the dead SVG/PDF buttons). The TypeScript union (ExportFormat) includes all four, the client wrapper accepts all four, and the service returns 200 with valid bytes for all four — but the user can never pick EXP or JEF.The Help FAQ at
src/pages/Help.tsx:125-126says "any embroidery machine that accepts PES or DST files" — but the service already supports two more machine families that the UI hides.Where
POST /v1/export— confirmed working forexp(4 bytes for the test payload) andjef(130 bytes)src/lib/easystitch-client.ts:66(export type ExportFormat = "pes" | "dst" | "exp" | "jef")src/lib/easystitch-client.ts:623(exportPES— name is misleading, accepts any of the four formats)src/components/workspace/ExportDialog.tsx—FORMATSconst (currently['PES', 'DST']after round 4)src/components/workspace/ExportDialog.tsx:85-87(the.format.toLowerCase()map)Suggested fix shape
Extend the export dialog to offer all 4 formats the service supports:
FORMATSto['PES', 'DST', 'EXP', 'JEF'].pes,dst,exp,jef.ExportDialog.test.tsxfor the new format options.The 2-column grid from round 4 becomes 4 columns. If 4 columns is too wide, use 2x2.
Discovered by
Gap analysis (2026-10-02) of unreached export formats.
Related
306d1b7) removed SVG/PDF because they were non-functional. This issue is the inverse: the service is functional, the UI hides the option.Closed via commit
0ab34eeon Mark/Kimi_Agent_Brother_10_Digitizing_App (main, fast-forward from 7e2f2e5).\n\nThis commit completes #129 on top of the round 4 removal commit (306d1b7) that was already on origin/main when this triage pass landed. Round 4 dropped the dead SVG/PDF buttons and kept the dialog at PES+DST on a 2x2 grid; this follow-up actually offers the other two formats the endpoint accepts (Melco/Bernina EXP and Janome/Elna/New Home JEF).\n\nChanges:\n- src/components/workspace/types.ts: ExportFormat union is now (PES | DST | EXP | JEF), aligned with the service set.\n- src/components/workspace/ExportDialog.tsx: FORMATS = [PES, DST, EXP, JEF]; each button renders its machine-family label under the format code via FORMAT_DESCRIPTIONS (Brother / Babylock, Tajima, Melco / Bernina, Janome / Elna / New Home). Kept the 2x2 grid from306d1b7— the labels need the width. The lying castformat.toLowerCase() as pes | dstis nowas pes | dst | exp | jef.\n- src/components/workspace/ExportDialog.test.tsx: added a test that all four formats are present, enabled, and each shows its machine-family label; added a test that picking EXP or JEF forwards the correct lowercase key to exportPES. Updated the #format-options only-PES-and-DST assertion to reflect the new four-format state.\n\nTypecheck clean (npx tsc --noEmit), no regressions on the changed files. The unrelated test infra drift (vi.mock for @/lib/easystitch-client missing the getThreadCatalog export that useThreadLibrary now requires) was already on origin/main and is out of scope for #129.\n\nFixes #129