Color Sensitivity slider has no preview — user picks blind, waits ~3s per attempt to see the result #121
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#121
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 Workspace's "Color Sensitivity" slider (in the right panel, under Auto-Digitize Settings) maps to a
maxColors: 1–10parameter sent to the digitize service. The service quantizes the uploaded image server-side. There is no client-side preview of what the quantized result will look like before the user commits to "Run Auto-Digitize" — they have to wait ~3 seconds for the API call, see the result, and if it's wrong, change the slider and re-digitize the whole image.Where
src/components/workspace/RightPanel.tsx(the Auto-Digitize Settings section, somewhere around line 200 — the existing testRightPanel.test.tsx:200+referencescolorSensitivity).src/lib/digitize-adapters.ts:32(themaxColorsmapping is documented in the file's comment).POST /v1/digitizeon the easystitch-service.The relationship
colorSensitivity 0–100 → maxColors 1–10is a linear map (verified insrc/lib/digitize-adapters.test.ts:119).Why now
Every other "see before you commit" surface in the app is live:
But color sensitivity requires a full API roundtrip and a re-quantization. The user is picking blind.
This is also the entry point to a missing capability: there's no way to constrain the design to "use only the colors I have on my spool rack." A user with 5 spools who wants to digitize a 12-color design has no UI to say "use only these 5 colors and find the closest match."
Suggested fix shape
Add a client-side quantization preview that runs synchronously on slider change:
k = maxColors(1-10) in RGB or Lab spacemaxColorsvalue the preview used.BROTHER_PR10_COLORS(or custom library, once the thread-library-CRUD issue is implemented).imageSmoothingEnabledfor the downsample.Suggested file structure
src/lib/color-quantize.ts—quantizeImage(imageData: ImageData, k: number): { centroids: string[], assignments: Uint8Array }src/components/workspace/ColorPreview.tsx— renders the preview canvassrc/lib/color-quantize.test.ts,src/components/workspace/ColorPreview.test.tsxSeverity
Medium. Not a bug — the digitize flow works. But it's a real UX gap that affects every digitize attempt. The user wastes 3-5 seconds per "wrong sensitivity" attempt; a power user iterating to find the right level could waste 30+ seconds.
Discovered by
User-story walkthrough (round 4) — observing the Auto-Digitize flow as a user.
Related
paletteIndexForColorcoverage; the round-trip logic that a palette-constrained quantizer would need.paletteIndexForColorreturns wrong index for non-adjacent duplicate-color regions; the quantizer would call into this.