Grapevine_Disease_Detection/VinEye
Yanis e34e0db34c chore(api): don't trigger logout on anonymous 401 + skip pushScan for guests
Symptom: a guest scanning a plant fired POST /api/mobile/scans without
a Bearer token, the backend rightfully replied 401, and the apiPost
emitter dispatched 'unauthorized' which AuthContext interpreted as
"session lost" and wiped the local guest, kicking the user back to
Onboarding.

Two fixes:
1. apiGet/apiPost now track whether a Bearer was actually attached
   to the request and only emit the 'unauthorized' event when one was
   sent. An anonymous 401 stays a plain SERVER error.
2. pushScan() short-circuits if getToken() returns null, so guests
   never even hit the network for scan persistence.

Combined effect: guests stay guests, registered users still get
session-revocation feedback when their token is rejected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 14:02:24 +02:00
..
.claude chore(ml,android): retire react-native-fast-tflite + nitro, mock JS only 2026-04-30 21:14:38 +02:00
assets feat(mobile): UI overhaul + ML pipeline + Android build fixes 2026-04-30 21:00:03 +02:00
plugins chore(android): propagate CMake fix to native subprojects 2026-05-01 11:30:55 +02:00
src chore(api): don't trigger logout on anonymous 401 + skip pushScan for guests 2026-05-01 14:02:24 +02:00
.gitignore add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
.npmrc chore(deps,infra): pnpm hoisted mode + dependency cleanup for Map rebuild 2026-04-30 12:31:39 +02:00
app.json feat(scanner,ml): real TFLite inference + preload + flip camera + analyzing skeleton 2026-05-01 11:31:17 +02:00
App.tsx feat(auth): onboarding flow + local auth (no backend) 2026-05-01 09:33:27 +02:00
babel.config.js add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
CLAUDE.md chore(android): propagate CMake fix to native subprojects 2026-05-01 11:30:55 +02:00
components.json add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
global.css add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
index.ts add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
metro.config.js feat(mobile): UI overhaul + ML pipeline + Android build fixes 2026-04-30 21:00:03 +02:00
nativewind-env.d.ts add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
package.json feat(mobile): backend sync auth + ban handling + scan push 2026-05-01 12:11:11 +02:00
pnpm-lock.yaml feat(mobile): backend sync auth + ban handling + scan push 2026-05-01 12:11:11 +02:00
tailwind.config.js add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00
tsconfig.json add VinEye frontend app + fix hardcoded paths + gitignore 2026-04-02 10:30:05 +02:00