Grapevine_Disease_Detection/VinEye
Yanis a3cd906a6d fix(scanner): yield to scheduler before runSync + min skeleton + gallery placeholder
- useDetection.analyze() now awaits a requestAnimationFrame before
  calling runInference. Without it React commits isAnalyzing=true and
  immediately hits the synchronous TFLite runSync that blocks the JS
  thread for 500-1500ms — the analyzing skeleton overlay appears AFTER
  the inference, defeating its purpose.
- Same hook enforces a minimum 600ms total before resolving so a
  cached/fast inference doesn't show a skeleton flicker that reads as
  a glitch.
- ScannerScreen.handleCapture is split: capture stays inline,
  processImage(uri) is now its own async function. Cleaner control
  flow when a take succeeds but analysis is delegated.
- The previously dead "image gallery" icon next to the shutter is now
  a real TouchableOpacity that fires a "coming soon" toast (we'll wire
  it to expo-image-picker once we add the lib + native rebuild).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 14:03:12 +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 fix(scanner): yield to scheduler before runSync + min skeleton + gallery placeholder 2026-05-01 14:03:12 +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