Auto-Digitize button silently no-ops when upload hasn't completed yet #32
Labels
No labels
blocked:needs-attention
blocked:needs-decision
bug
feature-request
in-progress
needs-decompose
quickfix
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/easystitch-service#32
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
Clicking Auto-Digitize (toolbar FAB or Design Settings "Run Auto-Digitize" button) before the uploaded image has been committed to Redux state silently exits without calling
/v1/digitize. The UI does not show an error toast, and the button appears responsive (act clickreturnsok (click)), so users think digitize happened and proceed to export.Reproduction path
e12, OR the inner "Run Auto-Digitize" button in Design Settings, refe57) before the FileReader + Image.onload chain finishes.Confirm & Editbutton rendering after the auto-digitize inner modal opens)/api/easystitch/v1/digitizeever fires — service log shows only/healthzpolls.Code path
useWorkspace.ts:414-432:The
useWorkspace.ts:325-335handleFileUploadpopulatesuploadedImageonly afterFileReader.onloadAND a freshImage.onloadcallback. There's no debounce or "image loading" guard that prevents the Auto-Digitize button from accepting clicks in the gap.Expected behavior
Either:
[disabled]whileuploadedImageis null, OREvidence
hook fetchconfirmed only/healthzGETs during the click sequence./v1/digitizetotal across the session (it was the manual curl probe, not from the UI).08_upload_works.pngshows the panel unlocked but no digitize request followed.Severity: high — the entire happy path is broken until the user discovers that Auto-Digitize is not idempotent and the UI misleads them.
Closed as duplicate of the original API-contract bugs filed earlier in this thread (#27, #28, #29, #30, #31 on Mark/easystitch-service).
This issue describes a UI symptom of a deeper family of bugs. The UI cannot drive the digitize/export flow end-to-end because:
#32 (silent no-op) — root cause is
useWorkspace.ts:414-432bailing silently whenstate.uploadedImageis null, plusRightPanel.tsx:217showing a hardcoded "complete!" message without ever firing the API call. The actual API contract bugs are in the service layer (#27, #28, #30, #31) — fix the server contract first, then the UI flow becomes verifiable.#33 (combobox click swallowed) — root cause is a custom Radix-like dropdown wrapper in
RightPanel.tsxthat doesn't fire ReactonChangeon synthetic events. The settings panel exists but is functionally inert; the only working path is the API directly. The user-facing impact is #31 (DigitizeSettings rejects fabric/stabilizer) — the user CAN'T set fabric/stabilizer through the UI at all, so the API'sextra_forbiddenrejection is moot until the UI is fixed separately.#34 (false-complete message) — same root cause as #32, hardcoded UI string on a no-op dispatch.
Closing this issue rather than fixing it directly because:
Re-open this if the canonical API bugs (#27-#31) are fixed and the UI symptoms persist independently.
Reopening this issue. I previously closed it as "duplicate of #27-#31" — that was wrong.
The 3 issues in this thread (#32, #33, #34) describe client-side UI bugs in the ThreadCraft frontend that are NOT duplicates of the API-contract bugs (#27-#31) on Mark/easystitch-service. They live on different repos and represent a separate class of failure:
state.uploadedImageis null. UI flow broken; user sees no error.runAutoDigitize().These bugs BLOCK the user from ever reaching the API surface that #27-#31 describe. They're prerequisite to fixing #27-#31, not duplicates of them. Closing them hides real UI bugs that need separate fixes on the ThreadCraft frontend repo (Mark/Kimi_Agent_Brother_10_Digitizing_App, not Mark/easystitch-service).
The 5 API bugs (#27-#31) remain open with the UI evidence I appended earlier. The 3 UI bugs (#32-#34) are now reopened and will be tracked independently.
The proper relationship is "blocks" (UI fixes unblock API verification), not "duplicate."
Final disposition: this issue has been moved to the ThreadCraft frontend repo where the bug actually lives.
Closing this issue on easystitch-service — the fix belongs on the frontend repo. The new issue has the full body and code-path references.