feat(sketchpad): keyboard-free glyph picker + offline Gemma feedback#45
Open
KpG782 wants to merge 4 commits into
Open
feat(sketchpad): keyboard-free glyph picker + offline Gemma feedback#45KpG782 wants to merge 4 commits into
KpG782 wants to merge 4 commits into
Conversation
## Summary - Centered the model setup screen for all web layouts (desktop, landscape, portrait, short portrait) to improve vertical alignment and consistency. - Added web-specific centered rendering path in _ModelSetupBody with minHeight + Center wrapping. - Added optional webCentered flags on layout variants and reused existing content structure. - Kept mobile/tablet behavior unchanged while allowing web-only center alignment.
Hand-off prompt at docs/kudlit_full_audit_prompt.md orchestrates 3 recon + 7 lane subagents in parallel, produces a markdown suite under docs/audit/<date>/ (index, exec summary, top-10, plus 7 lane reports). The 2026-05-14 run covered all 29 screens and emitted 11 P0 / 34 P1 / 27 P2 UX findings, plus cross-cutting parity, architecture, performance, security, accessibility and nav reports. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Lane A (auth + router): - 30s OTP resend cooldown + 5-attempt verify lockout w/ 60s backoff - AuthChangeEvent.passwordRecovery handler with /reset-password route - Admin route gated by currentUserRoleProvider.isAdmin - Web password reset uses Uri.base.origin/auth/reset Lane B (UX + a11y): - TextField hint alpha raised to 160 in chat + translate inputs - subtleForeground darkened to #4A5068 (~6.5:1 on blue900) - Removed "Authentication is UI-only for now." caption Lane C (performance): - ScanTab pause/resume on tab switch in home_screen - Halts native YOLO model (not just dispatch as 7f28abc did) Lane D (multiplatform): - kIsWeb in-memory stubs for 5 sqflite datasources - profile_management uses graceful no-op (cache-first repo absorbs) Lane E (security): - New Supabase Edge Function supabase/functions/gemini-proxy - cloud_gemma_datasource routes via functions.invoke - GEMINI_API_KEY removed from client bundle Lane F (architecture): - baybayin_detector returns Future<Either<Failure, T>> - New scanner/domain/{failures,usecases}/ directories - All 3 detector impls and callers migrated to .fold Deploy required: supabase functions deploy gemini-proxy and supabase secrets set GEMINI_API_KEY=... flutter analyze: clean. flutter build web: ok. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
showDragHandle/isScrollControlled) — fixes theBoxConstraints w=Infinitycrash class.localModelReadinessProvider(Butty's mechanism) beforeanalyzeImage, so on-device feedback works after restart instead of silently falling back to cloud.Verification
flutter analyzeclean across the project.flutter_gemmanative-asset relink failure blocksflutter teston this host. Device hot-restart verification recommended.🤖 Generated with Claude Code