Stitch Preference "Detail" button still in UI (RightPanel.tsx:194) — service renamed it to "Quality" in the literal type but the button array was never updated; clicking Detail produces a 422 #138
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#138
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 RightPanel's Stitch Preference buttons offer 3 values:
balanced,detail,speed. The service accepts 3 values:balanced,quality,speed. The client sendsdetailwhen the user picks "detail"; the service returns 422 with a literal_error.Verified at runtime:
POST /v1/digitizewithstitchPreference: "detail"returns:This is a regression of closed issue #116, which fixed the same problem. The fix landed in the reducer/adapter (the service-side type is the source of truth now), but the UI still renders the 3-button "balanced / detail / speed" grid from
src/components/workspace/RightPanel.tsx:194-210.A user picks "Detail" expecting more careful stitching, hits Auto-Digitize, and gets a 422 error toast (or silent failure if the error isn't surfaced to the right place).
Where
src/components/workspace/RightPanel.tsx:194—(['balanced', 'detail', 'speed'] as StitchPreference[]).map(...)POST /v1/digitizeschema literal["balanced", "quality", "speed"]src/lib/easystitch-client.ts:19—stitchPreference: "balanced" | "quality" | "speed"Suggested fix shape
Single-line fix: change
'detail'to'quality'in the RightPanel's button array. Also update the visual label if it says "Detail" — render as "Quality" instead so the user-facing string matches the underlying value. The button'scapitalizeCSS class will handle the rest.Plus a test in
RightPanel.test.tsxthat asserts the rendered button labels include "Quality" not "Detail".Severity
High. The user-visible button is broken — clicking it produces a server error.
Discovered by
Gap analysis (2026-10-02) of unreached service parameters + live API test.
Related
Closed by commit
bb5bdd7on main (Mark/Kimi_Agent_Brother_10_Digitizing_App).Root cause was the opposite of what the body described: the #115 adapter layer was correctly translating detail to quality at the service boundary, so the runtime 422 the body reported would only fire on a stale build or a path that bypassed the adapter. But the workspace still shipped a UI literal that did not match the service literal, with a one-line
ifin mapStitchPreference masking the divergence.Fix collapses the two literals into one — the workspace now uses
qualitydirectly, the UI button rendersQuality, and the adapter is removed as dead code.detailtoqualitydetailtoquality(capitalize class renders it asQuality)Gates: vitest digitize-adapters + RightPanel 43/43 pass; pnpm lint clean; tsc -b error count unchanged from baseline (8 pre-existing, unrelated).