Eric Gullickson and Claude Opus 4.6
db127eb24c
fix: address QR review findings for token validation and clearAll reliability (refs #190 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m32s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 22s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-14 21:59:31 -06:00
Eric Gullickson and Claude Opus 4.6
15128bfd50
fix: add missing hook dependencies for stale token effect (refs #190 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-14 21:57:28 -06:00
Eric Gullickson and Claude Opus 4.6
723e25e1a7
fix: add pre-auth session clear mechanism on HomePage (refs #192 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-14 21:56:24 -06:00
Eric Gullickson and Claude Opus 4.6
6e493e9bc7
fix: detect and clear stale IndexedDB auth tokens (refs #190 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-14 21:55:54 -06:00
Eric Gullickson and Claude Opus 4.6
a195fa9231
fix: allow callback route to complete Auth0 code exchange (refs #189 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-14 21:55:24 -06:00
Eric Gullickson and Claude Opus 4.6
19cd917c66
fix: resolve sidebar logo clipping with flex-based layout (refs #187 )
...
Deploy to Staging / Build Images (pull_request) Successful in 4m41s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 52s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-14 21:45:03 -06:00
Eric Gullickson and Claude Opus 4.6
7f6e4e0ec2
fix: skip image preview for PDF receipt uploads (refs #182 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m30s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
URL.createObjectURL on a PDF creates a blob URL that cannot render in
an img tag, showing broken image alt text. Skip preview creation for
PDF files so the review modal displays without a thumbnail.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 21:43:47 -06:00
Eric Gullickson and Claude Opus 4.6
83bacf0e2f
chore: accept PDF files in receipt upload dialog (refs #182 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m39s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 23s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 21:14:22 -06:00
Eric Gullickson and Claude Opus 4.6
812823f2f1
chore: integrate AddReceiptDialog into MaintenanceRecordForm (refs #184 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m31s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 22s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Replace ReceiptCameraButton with "Add Receipt" button that opens
AddReceiptDialog. Upload path feeds handleCaptureImage, camera path
calls startCapture. Tier gating preserved.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 20:57:37 -06:00
Eric Gullickson and Claude Opus 4.6
6751766b0a
chore: create AddReceiptDialog component with upload and camera options (refs #183 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 20:55:21 -06:00
Eric Gullickson and Claude Opus 4.6
bc72f09557
feat: add desktop sidebar collapse to icon-only mode (refs #176 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 20:07:00 -06:00
Eric Gullickson and Claude Opus 4.6
f987e94fed
chore: verify notification bell functionality and improve empty state (refs #180 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 20:02:56 -06:00
Eric Gullickson and Claude Opus 4.6
da4cd858fa
chore: use display name instead of email in header greeting (refs #177 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 20:01:56 -06:00
Eric Gullickson and Claude Opus 4.6
553877bfc6
chore: add upload date and file type icon to document cards (refs #172 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 20:00:49 -06:00
Eric Gullickson and Claude Opus 4.6
daa0cd072e
chore: remove Insurance default bias from Add Document modal (refs #175 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:56:34 -06:00
Eric Gullickson and Claude Opus 4.6
afd4583450
chore: show service type in maintenance schedule names for differentiation (refs #174 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:55:25 -06:00
Eric Gullickson and Claude Opus 4.6
f03cd420ef
chore: add Maintenance page title and remove duplicate vehicle dropdown (refs #169 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:53:13 -06:00
Eric Gullickson and Claude Opus 4.6
e4be744643
chore: restructure Fuel Logs to list-first with add dialog (refs #168 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:49:46 -06:00
Eric Gullickson and Claude Opus 4.6
f2b20aab1a
feat: add recent activity feed to dashboard (refs #166 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:48:06 -06:00
Eric Gullickson and Claude Opus 4.6
accb0533c6
feat: add call-to-action links in zero-state dashboard stats cards (refs #179 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:45:14 -06:00
Eric Gullickson and Claude Opus 4.6
0dc273d238
chore: remove dashboard auto-refresh footer text (refs #178 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:43:57 -06:00
Eric Gullickson and Claude Opus 4.6
56be3ed348
chore: add Year Make Model subtitle to vehicle cards and hide empty VIN (refs #167 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:41:23 -06:00
Eric Gullickson and Claude Opus 4.6
bc9c386300
chore: differentiate Stations icon from Fuel Logs in bottom nav (refs #181 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:40:09 -06:00
Eric Gullickson and Claude Opus 4.6
7a74c7f81f
chore: remove redundant Stations from mobile More menu (refs #173 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:39:16 -06:00
Eric Gullickson and Claude Opus 4.6
73976a7356
fix: add Maintenance to mobile More menu (refs #164 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:38:21 -06:00
Eric Gullickson and Claude Opus 4.6
0e8c6070ef
fix: sync mobile routing with browser URL for direct navigation (refs #163 )
...
URL-to-screen sync on mount and screen-to-URL sync via replaceState
enable direct URL navigation, page refresh, and bookmarks on mobile.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:35:53 -06:00
Eric Gullickson and Claude Opus 4.6
325cf08df0
fix: promote vehicle display utils to core with null safety (refs #165 )
...
Create shared getVehicleLabel/getVehicleSubtitle in core/utils with
VehicleLike interface. Replace all direct year/make/model concatenation
across 17 consumer files to prevent null values in vehicle names.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 19:32:40 -06:00
Eric Gullickson
75e4660c58
Merge branch 'main' of 172.30.1.72:egullickson/motovaultpro
Deploy to Staging / Build Images (push) Successful in 3m25s
Deploy to Staging / Deploy to Staging (push) Successful in 51s
Deploy to Staging / Verify Staging (push) Successful in 9s
Deploy to Staging / Notify Staging Ready (push) Successful in 8s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2026-02-13 16:28:52 -06:00
Eric Gullickson
ff8b04f146
chore: claude updates
2026-02-13 16:28:49 -06:00
Eric Gullickson and Claude Opus 4.6
1bf550ae9b
feat: add pending vehicle association resolution UI (refs #160 )
...
Deploy to Staging / Build Images (pull_request) Successful in 8m40s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 52s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Backend: Add authenticated endpoints for pending association CRUD
(GET/POST/DELETE /api/email-ingestion/pending). Service methods for
resolving (creates fuel/maintenance record) and dismissing associations.
Frontend: New email-ingestion feature with types, API client, hooks,
PendingAssociationBanner (dashboard), PendingAssociationList, and
ResolveAssociationDialog. Mobile-first responsive with 44px touch
targets and full-screen dialogs on small screens.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-13 09:39:03 -06:00
Eric Gullickson and Claude Opus 4.6
06ff8101dc
feat: add form integration, tier gating, and receipt display (refs #153 )
...
- Add tier-gated "Scan Receipt" button to MaintenanceRecordForm
- Wire useMaintenanceReceiptOcr hook with CameraCapture and ReviewModal
- Auto-populate form fields from accepted OCR results via setValue
- Upload receipt as document and pass receiptDocumentId on record create
- Show receipt thumbnail + "View Receipt" button in edit dialog
- Add receipt indicator chip on records list rows
- Add receiptDocumentId and receiptDocument to frontend types
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-12 21:40:27 -06:00
Eric Gullickson and Claude Opus 4.6
91166b021c
feat: add maintenance receipt OCR hook and review modal (refs #152 )
...
Add useMaintenanceReceiptOcr hook mirroring fuel receipt OCR pattern,
MaintenanceReceiptReviewModal with confidence indicators and inline editing,
and maintenance-receipt.types.ts for extraction field types. Includes
category/subtype suggestion via keyword matching from service descriptions.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-12 21:31:48 -06:00
Eric Gullickson and Claude Opus 4.6
80ee2faed8
fix: Replace circle toggle with MUI Switch pill style (refs #148 )
...
Deploy to Staging / Build Images (pull_request) Successful in 35s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 52s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
EmailNotificationToggle used a custom button-based toggle that rendered
as a circle. Replaced with MUI Switch component to match the pill-style
toggles used on the SettingsPage throughout the app.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-12 20:14:01 -06:00
Eric Gullickson and Claude Opus 4.6
6bb2c575b4
fix: Wire vehicleId into maintenance page to display schedules (refs #148 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m28s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 52s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 10s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Maintenance page called useMaintenanceRecords() without a vehicleId,
causing the schedules query (enabled: !!vehicleId) to never execute.
Added vehicle selector to both desktop and mobile pages, auto-selects
first vehicle, and passes selectedVehicleId to the hook. Also fixed
stale query invalidation keys in delete handlers.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-12 20:01:42 -06:00
Eric Gullickson
59e7f4053a
fix: Data validation for scheduled maintenance
Deploy to Staging / Build Images (pull_request) Successful in 3m24s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 25s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
2026-02-11 20:47:46 -06:00
Eric Gullickson
33b489d526
fix: Update auto schedule creation
Deploy to Staging / Build Images (pull_request) Successful in 3m29s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 25s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
2026-02-11 20:29:33 -06:00
Eric Gullickson and Claude Opus 4.6
11f52258db
feat: add 410 error handling, progress messages, touch targets, and tests (refs #145 )
...
- Handle poll errors including 410 Gone in useManualExtraction hook
- Add specific progress stage messages (Preparing/Processing/Mapping/Complete)
- Enforce 44px minimum touch targets on all interactive elements
- Add tests for inline editing, mobile fullscreen, and desktop modal layouts
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-11 15:12:29 -06:00
Eric Gullickson and Claude Opus 4.6
c79b610145
feat: enforce 44px minimum touch targets for receipt OCR components (refs #140 )
...
Adds minHeight/minWidth: 44 to ReceiptCameraButton, ReceiptOcrReviewModal
action buttons, and UpgradeRequiredDialog buttons and close icon to meet
mobile accessibility requirements.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-11 11:33:57 -06:00
Eric Gullickson and Claude Opus 4.6
ab0d8463be
docs: update CLAUDE.md indexes and README for OCR expansion (refs #137 )
...
Add/update documentation across backend, Python OCR service, and frontend
for receipt scanning, manual extraction, and Gemini integration. Create
new CLAUDE.md files for engines/, fuel-logs/, documents/, and maintenance/
features.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-11 11:04:19 -06:00
Eric Gullickson and Claude Opus 4.6
40df5e5b58
feat: add frontend manual extraction flow with review screen (refs #136 )
...
- Create useManualExtraction hook: submit PDF to OCR, poll job status, track progress
- Create useCreateSchedulesFromExtraction hook: batch create maintenance schedules from extraction
- Create MaintenanceScheduleReviewScreen: dialog with checkboxes, inline editing, batch create
- Update DocumentForm: remove "(Coming soon)", trigger extraction after upload, show progress
- Add 12 unit tests for review screen (rendering, selection, empty state, errors)
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-11 10:48:46 -06:00
Eric Gullickson and Claude Opus 4.6
d8dec64538
feat: add station matching from receipt merchant name (refs #132 )
...
Add Google Places Text Search to match receipt merchant names (e.g.
"Shell", "COSTCO #123 ") to real gas stations. Backend exposes
POST /api/stations/match endpoint. Frontend calls it after OCR
extraction and pre-fills locationData with matched station's placeId,
name, and address. Users can clear the match in the review modal.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-11 09:45:13 -06:00
Eric Gullickson and Claude Opus 4.6
bc91fbad79
feat: add tier gating for receipt scan in FuelLogForm (refs #131 )
...
Free tier users see locked button with upgrade prompt dialog.
Pro+ users can capture receipts normally. Works on mobile and desktop.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-11 09:32:08 -06:00
Eric Gullickson and Claude Opus 4.6
399313eb6d
feat: update useReceiptOcr to call /ocr/extract/receipt endpoint (refs #131 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-11 09:30:02 -06:00
Eric Gullickson and Claude Opus 4.6
e9020dbb2f
feat: improve VIN confidence reporting and editable review dropdowns (refs #125 )
...
Deploy to Staging / Build Images (pull_request) Successful in 4m37s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
VIN OCR confidence now reflects recognition accuracy only (not match quality).
Review modal replaces read-only fields with editable cascade dropdowns
pre-populated from NHTSA decode, with NHTSA reference hints for unmatched fields.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-08 19:24:27 -06:00
Eric Gullickson and Claude Opus 4.6
1ff1931864
fix: re-request camera stream on retake when tracks are inactive (refs #123 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m20s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
The retake button failed because the stream tracks could become inactive
during the crop phase, but handleRetake never re-acquired the camera.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-07 20:26:37 -06:00
Eric Gullickson and Claude Opus 4.6
efc55cd3db
feat: improve VIN camera crop overlay-to-crop alignment and touch targets (refs #123 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m20s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 9s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
Bridge guidance overlay position to crop tool initial coordinates so the
crop box appears centered matching the viewfinder guide. Increase handle
touch targets to 44px (32px on compact viewports) for mobile usability.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-02-07 20:05:40 -06:00
Eric Gullickson
3adbb10ff6
fix: OCR Timout still
Deploy to Staging / Build Images (pull_request) Successful in 3m23s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
2026-02-07 16:26:10 -06:00
Eric Gullickson
0499c902a8
fix: Crop box broken
Deploy to Staging / Build Images (pull_request) Successful in 3m22s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 22s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
2026-02-07 16:00:23 -06:00
Eric Gullickson
dab4a3bdf3
fix: PaddleOCR error
Deploy to Staging / Build Images (pull_request) Successful in 3m46s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 51s
Deploy to Staging / Verify Staging (pull_request) Successful in 8s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
2026-02-07 15:51:04 -06:00
Eric Gullickson
cf114fad3c
fix: build errors for OpenCV
Deploy to Staging / Build Images (pull_request) Failing after 3m16s
Deploy to Staging / Deploy to Staging (pull_request) Has been skipped
Deploy to Staging / Verify Staging (pull_request) Has been skipped
Deploy to Staging / Notify Staging Ready (pull_request) Has been skipped
Deploy to Staging / Notify Staging Failure (pull_request) Successful in 8s
2026-02-07 11:58:00 -06:00