feat: Tier gating and frontend receipt OCR flow (#129) #131
Reference in New Issue
Block a user
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?
Relates to #129
Milestone 2: Tier Gating and Frontend Receipt OCR Flow
Add fuelLog.receiptScan tier gating and update frontend receipt OCR to use the dedicated receipt endpoint.
Flags: needs conformance check (mobile + desktop)
Files
backend/src/core/config/feature-tiers.tsfrontend/src/features/fuel-logs/hooks/useReceiptOcr.tsfrontend/src/features/fuel-logs/components/FuelLogForm.tsxfrontend/src/features/fuel-logs/components/ReceiptCameraButton.tsxRequirements
fuelLog.receiptScanto FEATURE_TIERS with minTierprouseReceiptOcr.tsto call/ocr/extract/receiptinstead of/ocr/extractAcceptance Criteria
Tests
backend/src/core/config/feature-tiers.test.ts(extend existing)Milestone: Tier Gating and Frontend Receipt OCR Flow
Phase: Execution | Agent: Developer | Status: PASS
Completed Work
1. Backend: fuelLog.receiptScan tier config
fuelLog.receiptScantoFEATURE_TIERSinfeature-tiers.tswithminTier: 'pro'dfc39242. Frontend: useReceiptOcr endpoint update
/ocr/extractto/ocr/extract/receipt399313e3. Frontend: Tier gating in FuelLogForm
useTierAccesshook check forfuelLog.receiptScanUpgradeRequiredDialog(same pattern as VIN decode in VehicleForm)bc91fba4. Frontend: ReceiptCameraButton locked state
lockedprop toReceiptCameraButtoncomponentValidation
Acceptance Criteria Status
Verdict: PASS | Next: Quality review