From 8245ae52e2330771eafdd5dc3d9c3ac815bcd756 Mon Sep 17 00:00:00 2001 From: DJP Date: Thu, 9 Apr 2026 15:28:20 -0400 Subject: [PATCH] Move tier mapping to Upload tab, add S/M/L presets, remove expand button - Tier mapping now on Upload tab (set BEFORE matching, not after) - Added presets: S/M/L, Small/Medium/Large - Full preset list: None, A/B/C, 1/2/3, S/M/L, Small/Med/Large, Gold/Silver/Bronze - "None" button to clear tier mapping - Removed "Expand to Tiers" button from Match Review (redundant) - Helper text explains to set tiers before matching - Matching uses pre-set tiers to pick correct GMAL complexity variant Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/pages/ProjectView.tsx | 65 +++++++++++++++++------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/frontend/src/pages/ProjectView.tsx b/frontend/src/pages/ProjectView.tsx index 322495b..e53eb44 100644 --- a/frontend/src/pages/ProjectView.tsx +++ b/frontend/src/pages/ProjectView.tsx @@ -323,6 +323,16 @@ export default function ProjectView() { {label: 'Silver', complexity: 'medium'}, {label: 'Bronze', complexity: 'simple'}, ], + 'sml': [ + {label: 'S', complexity: 'simple'}, + {label: 'M', complexity: 'medium'}, + {label: 'L', complexity: 'complex'}, + ], + 'small_med_large': [ + {label: 'Small', complexity: 'simple'}, + {label: 'Medium', complexity: 'medium'}, + {label: 'Large', complexity: 'complex'}, + ], }; async function saveTierMapping(tiers: Array<{label: string, complexity: string}>) { @@ -505,6 +515,33 @@ export default function ProjectView() { )} + {/* Tier Mapping - set BEFORE matching */} +
+
+ Client Tier Mapping (optional): +
+ + + + + + +
+
+ {tierMapping.tiers.length > 0 && ( +
+ {tierMapping.tiers.map((t, i) => ( + + {t.label} → {t.complexity} + + ))} +
+ )} +
+ Set this before running AI matching. The AI will extract tier labels from the client document and match each to the correct GMAL complexity variant. +
+
+ {assets.length > 0 && (

Extracted Assets ({assets.length})

@@ -666,34 +703,6 @@ export default function ProjectView() { )}
- {/* Tier Mapping */} - {matches.length > 0 && !matching && ( -
-
- Client Tier Mapping: -
- - - -
- {tierMapping.tiers.length > 0 && ( - - )} -
- {tierMapping.tiers.length > 0 && ( -
- {tierMapping.tiers.map((t, i) => ( - - {t.label} → {t.complexity} - - ))} -
- )} -
- )} - {matches.length > 0 && !matching && (