chore(deps)(deps): Bump flutter_lints from 5.0.0 to 6.0.0 in the flutter-core group across 1 directory#6
Open
dependabot[bot] wants to merge 1 commit intomainfrom
Open
Conversation
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Outtsett
added a commit
that referenced
this pull request
May 3, 2026
…skip-tolerant streak math Replaces the default Flutter counter scaffold with the v1.0 foundation matching docs/BUILD_PLAN.md. Models (Hive @HiveType): - Habit (typeId 0): identity (Clear), skip tolerance (Lally), 2-min version (Clear), occursOn / scheduledOccurrencesIn rolling-window helpers. - HabitCompletion (typeId 2): one row per (habit, calendar-day); composite Hive key for O(1) "completed today?" lookup. - NotificationDelivery (typeId 3): audit row per scheduled / fired / tapped / dismissed / failed event for measuring drift. - HabitCadence (typeId 10) + NotificationEventType (typeId 11) enums. - typeId 1 reserved for the pre-existing UserSubscription; typeIds 4 and 5 reserved for SkipPattern + ImplementationIntention (v1.0 #2/#3). Providers (ChangeNotifier): - HabitProvider: CRUD + completion logging deduped per day; skip- tolerant streak math (rolling 14-day window, persists if completed >= scheduled - skipTolerance, never resets to zero — Lally 2010); identity vote tally (Clear's identity-based change). - ThemeProvider: theme persistence in Hive settings box; premium themes gated by IAP entitlement (silent downgrade if un-entitled); system-brightness tracking. Notification service (v1.0 #1 — bulletproof reminders): - iOS: .timeSensitive interruption level so reminders bypass Focus Mode + Notification Summary digest. - Android 14+: USE_EXACT_ALARM + AndroidScheduleMode.exactAllowWhileIdle for Doze survival. SCHEDULE_EXACT_ALARM runtime permission ceremony. - Every schedule / fire / tap / dismiss / failure / permission-denied event written to a Hive audit box. Drift between intendedAt and fired event's at is the v1.0 reliability metric (zero missed scheduled fires across 7-day device test = ship criterion #1). UI: - main.dart: Hive init + adapter registration + open boxes for habits, completions, notification audit, and settings; init notification service + fire-and-forget permission request; MultiProvider tree; MaterialApp routed to HomeScreen. - HomeScreen: heatmap-first today list, no streak counter, identity vote line ("Cast 1 vote for {identity}"), 200ms haptic Pavlovian celebration on completion (Atoms / Fogg "Shine"). Empty-state copy matches identity framing. - AppTheme: Material 3 ThemeData factories (free light/dark, premium paper/inkNavy palettes matching the Lundeen brand). Tests: - test/widget_test.dart replaced from the broken default scaffold (referenced a non-existent class) with pure-logic tests for Habit scheduling helpers and the streak-state classification, including a guard test that the streak enum never acquires a "broken / zero- reset" terminal state. Pubspec adds: provider 6.1.2, flutter_local_notifications 19.2.0, timezone 0.10.0, permission_handler 11.3.1, purchases_flutter 9.5.0 (RevenueCat — wired in v1.0 #6), health 13.0.0 (HealthKit / Health Connect — wired in v1.0 #4), home_widget 0.7.0, intl, uuid, collection, path_provider. Build status: not yet validated locally — Flutter SDK is not installed on the dev machine. CI will validate on next push. Tyler must `winget install --id=Google.Flutter`, then `flutter pub get`, then `dart run build_runner build --delete-conflicting-outputs` to generate Hive adapters before `flutter run`. Remaining v1.0 build items: laziness analytics, implementation- intention prompt engine, HealthKit write-back, full reward-system v1 (heatmap viz + weekly reflection), RevenueCat IAP. See docs/BUILD_PLAN.md build order. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d2fcea6 to
bbf051f
Compare
Outtsett
added a commit
that referenced
this pull request
May 3, 2026
Removes 24 files + lib/utils/ from a previous abandoned scaffold pass that was blocking flutter analyze --fatal-infos: * lib/models/analytics_data.dart (0 bytes) + analytics_data.g.dart (orphan generated code referencing the empty source — won't compile) * lib/screens/analytics_screen.dart (558 lines, but BROKEN: imports the empty progress_tracking_service.dart, uses habitProvider.habits which is not the API HabitProvider exposes — it's allHabits / activeHabits / habitsFor — and it ships Material 2 styling that contradicts the Material 3 BUILD_PLAN convention) * 8 zero-byte screens (add_habit, analytics_new, habit_schedule, onboarding, premium, premium_laziness, progress_tracking, settings) * 7 zero-byte services (ad, background_completion, invisible_purchase, laziness_analytics, progress_tracking, purchase, smart_notification) * 4 zero-byte widgets (habit_card, premium_banner, progress_summary_widget, theme_showcase_widget) * lib/utils/ entirely (empty + violates BUILD_PLAN's "no utils dump") KEPT: lib/models/user_subscription.dart (203 lines, Hive @HiveType(1) real impl, used by the v1.0 #6 RevenueCat IAP wiring). This matches the global "ONE active model at a time, build on it iteratively or wipe clean" rule and the "no skeleton implementations" rule. Several of these slots will be re-filled with production implementations as v1.0 build items #2-#6 land: - skip_pattern_service.dart (v1.0 #2) - implementation_intention_service.dart (v1.0 #3) - health_writeback_service.dart (v1.0 #4) - purchase_service.dart (v1.0 #6, RevenueCat) - add_habit_screen.dart (v1.0 #5 reward system) - premium_screen.dart (v1.0 #6) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Outtsett
added a commit
that referenced
this pull request
May 3, 2026
…etime IAP v1.0 build-plan items #5 + #6, the last two foundation pieces. #5 - Reward system v1: - lib/widgets/skip_pattern_heatmap.dart - 7x24 (DOW x hour) grid coloured by Wilson lower-bound risk. Cells with attempts==0 or below minAttempts (default 4) render neutral; the rest blend theme.primary -> theme.error along the lower bound. Tap callback exposes (dayOfWeek, hour, riskLowerBound, attempts, skips) for the analytics screen to drill in. Theme-blended so it works on both Material 3 light / dark and the premium paper / inkNavy palettes. - HabitProvider.surfaceVersionFor(habit, date, isHighSkipRisk) decides whether HomeScreen renders the full habit name or its twoMinuteVersion (Clear's 2-min rule + Wood 2019 context-over- willpower). High-risk days get an auto-substituted 2-min copy with a visible "2-min" badge so the user knows the app is helping, not silently rewriting. - HabitProvider.toggleCompletion now forwards wasTwoMinuteVersion: bool into the persisted HabitCompletion so analytics can later correlate two-minute-version usage with skip-pattern outcomes. - HomeScreen wires SkipPatternService -> surfaceVersionFor -> displayName; the rest of the card layout is unchanged so the haptic + Pavlovian celebration flow stays intact. #6 - RevenueCat IAP (the $6.99 lifetime): - lib/services/purchase_service.dart - ChangeNotifier wrapper around purchases_flutter. Configures via --dart-define so no secrets land in the repo (App Store privacy nutrition label "Data Not Collected" depends on it): RC_PUBLIC_API_KEY_IOS RC_PUBLIC_API_KEY_ANDROID RC_PREMIUM_ENTITLEMENT_ID (default: premium_lifetime) RC_LIFETIME_PRODUCT_ID (default: lifetime_001) - When env is unset, isConfigured == false and every purchase path short-circuits to PurchaseOutcome.notConfigured. App still runs; UI hides the buy button instead of erroring. - PurchaseOutcome { success, userCancelled, error, notConfigured } distinguishes user-cancelled from real errors so we don't show error dialogs on a buyer who just dismissed the StoreKit / Play Billing sheet. - Subscribes to Purchases.addCustomerInfoUpdateListener so entitlement state stays current across re-purchase / refund / cross-device restore. - _PremiumEntitlementBridge in main.dart listens to PurchaseService and forwards entitlement -> ThemeProvider so premium themes auto-unlock on purchase, auto-downgrade on refund, no UI thrash. - main.dart MultiProvider tree gains ChangeNotifierProvider<PurchaseService>.value, providers list re-ordered for readability. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bbf051f to
d6d477f
Compare
Bumps the flutter-core group with 1 update in the / directory: [flutter_lints](https://github.com/flutter/packages/tree/main/packages). Updates `flutter_lints` from 5.0.0 to 6.0.0 - [Commits](https://github.com/flutter/packages/commits/flutter_lints-v6.0.0/packages) --- updated-dependencies: - dependency-name: flutter_lints dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: flutter-core ... Signed-off-by: dependabot[bot] <support@github.com>
d6d477f to
e69ad99
Compare
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.
Bumps the flutter-core group with 1 update in the / directory: flutter_lints.
Updates
flutter_lintsfrom 5.0.0 to 6.0.0Commits
6eebe72[flutter_lints] Bump lints dependency to 6.0.0 and bump package to 6.0.0 (#9108)0093e2e[video_player_android] Add note about Android platform views known issue (#9312)62f38a1[camera_android_camerax] ImplementenableAudiofor video recording (#9264)9c11e9b[video_player_android] isBuffering flag always return true after calling seek...6efa04b[camera,video_player] replace onSurfaceDestroyed with onSurfaceCleanup (#9316)c33fa39[camera,video_player] Update Android to 3.29 minimum (#9317)5a7d40fUpdate repo for 3.32 stable (#9311)2a847d7[camera_avfoundation] Correct pigeon configuration output paths (#9313)d692e43[process] Remove from the repository (#9310)fe5dd86Ensure Example Packages Work on Android API 36 (#9241)