Eric Gullickson
669b51a6e1
fix: Navigation bug
Deploy to Staging / Build Images (push) Successful in 3m41s
Deploy to Staging / Deploy to Staging (push) Successful in 53s
Deploy to Staging / Verify Staging (push) Successful in 9s
Deploy to Staging / Notify Staging Ready (push) Successful in 9s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2026-02-15 20:06:10 -06:00
Eric Gullickson
856a305c9d
fix: Update log fuel buttons
Deploy to Staging / Build Images (push) Successful in 3m34s
Deploy to Staging / Deploy to Staging (push) Successful in 52s
Deploy to Staging / Verify Staging (push) Successful in 8s
Deploy to Staging / Notify Staging Ready (push) Successful in 8s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2026-02-15 19:53:36 -06:00
Eric Gullickson
260641e68c
fix: links from homepage to guide not working
Deploy to Staging / Build Images (pull_request) Successful in 3m36s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 53s
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
2026-02-15 19:32:46 -06:00
Eric Gullickson
1a9081c534
feat: Links on homepage
Deploy to Staging / Build Images (pull_request) Successful in 3m29s
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 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
2026-02-15 19:24:03 -06:00
Eric Gullickson
bb48c55c2e
feat: Removed trouble logging in button
Deploy to Staging / Build Images (pull_request) Successful in 3m28s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 53s
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
2026-02-15 18:38:43 -06:00
Eric Gullickson
4927b6670d
fix: remove $uri/ from nginx try_files to prevent /guide directory redirect (refs #203 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m31s
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 8s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
The /guide SPA route conflicts with the static /guide/ screenshot directory.
Nginx's try_files $uri/ matches the directory and issues a 301 redirect to
/guide/ with trailing slash, bypassing SPA routing. Removing $uri/ ensures
all non-file paths fall through to index.html for client-side routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 17:59:03 -06:00
Eric Gullickson
b73bfaf590
fix: handle trailing slash on /guide/ route (refs #203 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m29s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 53s
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 <noreply@anthropic.com >
2026-02-15 17:51:47 -06:00
Eric Gullickson
a7f12ad580
feat: Add desktop screenshots
Deploy to Staging / Build Images (pull_request) Successful in 3m31s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 53s
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
2026-02-15 17:44:09 -06:00
Eric Gullickson
b047199bc5
docs: add GuidePage documentation (refs #203 )
...
- Create CLAUDE.md for GuidePage directory with architecture docs
- Create CLAUDE.md index for pages/ directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 17:19:45 -06:00
Eric Gullickson
197aeda2ef
feat: add guide navigation integration and tests (refs #203 )
...
- Add Guide link to public nav bar (desktop + mobile) in HomePage
- Add Guide link to authenticated sidebar in Layout.tsx
- Add Guide link to HamburgerDrawer with window.location guard
- Add GuidePage integration tests (6 test scenarios)
- Remove old PDF user guide at public/docs/v2026-01-03.pdf
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 17:19:40 -06:00
Eric Gullickson
6196ebfc91
feat: add guide content sections 1-10 with screenshot placeholders (refs #203 )
...
All 10 guide sections converted from USER-GUIDE.md to styled React
components using GuideTable and GuideScreenshot shared components.
Sections 1-5: Getting Started, Dashboard, Vehicles, Fuel Logs, Maintenance.
Sections 6-10: Gas Stations, Documents, Settings, Subscription Tiers, Mobile Experience.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 16:55:30 -06:00
Eric Gullickson
864da55cec
feat: add guide page foundation and routing (refs #203 )
...
- Create GuidePage with responsive layout (sticky TOC sidebar desktop, collapsible accordion mobile)
- Add GuideTableOfContents with scroll-based active section tracking
- Create GuideScreenshot and GuideTable shared components
- Add guideTypes.ts with section metadata for all 10 sections
- Add lazy-loaded /guide route in App.tsx with public access
- Placeholder section components for all 10 guide sections
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 16:45:17 -06:00
Eric Gullickson
d8ab00970d
Merge branch 'main' of 172.30.1.72:egullickson/motovaultpro
Deploy to Staging / Build Images (push) Successful in 3m24s
Deploy to Staging / Deploy to Staging (push) Successful in 22s
Deploy to Staging / Verify Staging (push) Successful in 8s
Deploy to Staging / Notify Staging Ready (push) Successful in 7s
Deploy to Staging / Notify Staging Failure (push) Has been skipped
2026-02-15 11:14:29 -06:00
Eric Gullickson
b2c9341342
fix: tests
2026-02-15 11:14:25 -06:00
Eric Gullickson
f6684e72c0
test: add dashboard redesign tests (refs #201 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m22s
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
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 11:03:52 -06:00
Eric Gullickson
654a7f0fc3
feat: rewire DashboardScreen with vehicle roster layout (refs #200 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 10:53:35 -06:00
Eric Gullickson
767df9e9f2
feat: add dashboard ActionBar component (refs #199 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 10:50:29 -06:00
Eric Gullickson
505ab8262c
feat: add VehicleRosterCard component (refs #198 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 10:50:24 -06:00
Eric Gullickson
b57b835eb3
feat: add vehicle health types and roster data hook (refs #197 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 10:48:37 -06:00
Eric Gullickson
7140c7e8d4
fix: wire up Add Maintenance button on vehicle detail page (refs #194 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m24s
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
Rename "Schedule Maintenance" to "Add Maintenance", match contained
button style to "Add Fuel Log", and open inline MaintenanceRecordForm
dialog on click. Applied to both desktop and mobile views.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 10:01:33 -06:00
Eric Gullickson
850f713310
fix: prevent URL sync effects from stripping Auth0 callback params (refs #188 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m21s
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
Root cause: React fires child effects before parent effects. App's URL
sync effect called history.replaceState() on /callback, stripping the
?code= and &state= query params before Auth0Provider's useEffect could
read them via hasAuthParams(). The SDK fell through to checkSession()
instead of handleRedirectCallback(), silently failing with no error.
Guard both URL sync effects to skip on /callback, /signup, /verify-email.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 09:24:56 -06:00
Eric Gullickson
b5b82db532
fix: resolve auth callback failure from IndexedDB cache issues (refs #188 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m23s
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
Add allKeys() to IndexedDBStorage to eliminate Auth0 CacheKeyManifest
fallback, revert set()/remove() to non-blocking persist, add auth error
display on callback route, remove leaky force-auth-check interceptor,
and migrate debug console calls to centralized logger.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 09:06:40 -06:00
Eric Gullickson
da59168d7b
fix: IndexedDB cache broken on page reload - root cause of mobile login failure (refs #190 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m25s
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
loadCacheFromDB used store.getAll() which returns raw values, not
key-value pairs. The item.key check always failed, so memoryCache
was empty after every page reload. Auth0 SDK state stored before
redirect was lost on mobile Safari (no bfcache).
Also fixed set()/remove() to await IDB persistence so Auth0 state
is fully written before loginWithRedirect() navigates away.
Added 10s timeout on callback loading state as safety net.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 22:20:34 -06:00
Eric Gullickson
38debaad5d
fix: skip stale token validation during callback code exchange (refs #190 )
...
Deploy to Staging / Build Images (pull_request) Successful in 3m28s
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 <noreply@anthropic.com >
2026-02-14 22:09:09 -06:00
Eric Gullickson
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 <noreply@anthropic.com >
2026-02-14 21:59:31 -06:00
Eric Gullickson
15128bfd50
fix: add missing hook dependencies for stale token effect (refs #190 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 21:57:28 -06:00
Eric Gullickson
723e25e1a7
fix: add pre-auth session clear mechanism on HomePage (refs #192 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 21:56:24 -06:00
Eric Gullickson
6e493e9bc7
fix: detect and clear stale IndexedDB auth tokens (refs #190 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 21:55:54 -06:00
Eric Gullickson
a195fa9231
fix: allow callback route to complete Auth0 code exchange (refs #189 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 21:55:24 -06:00
Eric Gullickson
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 <noreply@anthropic.com >
2026-02-14 21:45:03 -06:00
Eric Gullickson
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 <noreply@anthropic.com >
2026-02-13 21:43:47 -06:00
Eric Gullickson
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 <noreply@anthropic.com >
2026-02-13 21:14:22 -06:00
Eric Gullickson
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 <noreply@anthropic.com >
2026-02-13 20:57:37 -06:00
Eric Gullickson
6751766b0a
chore: create AddReceiptDialog component with upload and camera options (refs #183 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 20:55:21 -06:00
Eric Gullickson
bc72f09557
feat: add desktop sidebar collapse to icon-only mode (refs #176 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 20:07:00 -06:00
Eric Gullickson
f987e94fed
chore: verify notification bell functionality and improve empty state (refs #180 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 20:02:56 -06:00
Eric Gullickson
da4cd858fa
chore: use display name instead of email in header greeting (refs #177 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 20:01:56 -06:00
Eric Gullickson
553877bfc6
chore: add upload date and file type icon to document cards (refs #172 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 20:00:49 -06:00
Eric Gullickson
daa0cd072e
chore: remove Insurance default bias from Add Document modal (refs #175 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:56:34 -06:00
Eric Gullickson
afd4583450
chore: show service type in maintenance schedule names for differentiation (refs #174 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:55:25 -06:00
Eric Gullickson
f03cd420ef
chore: add Maintenance page title and remove duplicate vehicle dropdown (refs #169 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:53:13 -06:00
Eric Gullickson
e4be744643
chore: restructure Fuel Logs to list-first with add dialog (refs #168 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:49:46 -06:00
Eric Gullickson
f2b20aab1a
feat: add recent activity feed to dashboard (refs #166 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:48:06 -06:00
Eric Gullickson
accb0533c6
feat: add call-to-action links in zero-state dashboard stats cards (refs #179 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:45:14 -06:00
Eric Gullickson
0dc273d238
chore: remove dashboard auto-refresh footer text (refs #178 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:43:57 -06:00
Eric Gullickson
56be3ed348
chore: add Year Make Model subtitle to vehicle cards and hide empty VIN (refs #167 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:41:23 -06:00
Eric Gullickson
bc9c386300
chore: differentiate Stations icon from Fuel Logs in bottom nav (refs #181 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:40:09 -06:00
Eric Gullickson
7a74c7f81f
chore: remove redundant Stations from mobile More menu (refs #173 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:39:16 -06:00
Eric Gullickson
73976a7356
fix: add Maintenance to mobile More menu (refs #164 )
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 19:38:21 -06:00
Eric Gullickson
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 <noreply@anthropic.com >
2026-02-13 19:35:53 -06:00