chore(ci)(deps): Bump actions/checkout from 4 to 6#2
Open
dependabot[bot] wants to merge 1 commit intomainfrom
Open
chore(ci)(deps): Bump actions/checkout from 4 to 6#2dependabot[bot] wants to merge 1 commit intomainfrom
dependabot[bot] wants to merge 1 commit intomainfrom
Conversation
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
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>
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
… engine v1.0 build-plan items #2 + #3, the actual moat. Zero major habit trackers productize either; this PR ships both on-device. #2 - Laziness analytics (lib/services/skip_pattern_service.dart): - 7x24 (DOW x hour) per-habit skip-rate matrix, recomputed from the completion log over a default 84-day window. - Wilson 95% CI lower bound per cell - chosen over the textbook normal-approximation interval because the latter underestimates uncertainty at small n and breaks at p in {0,1}, both routine in habit data ("skipped 3/3 Tuesday evenings"). - Cells flagged as high-skip-risk when attempts >= 4 AND CI lower bound > 0.4. Threshold deliberately keeps false-positive intervention rate low at small n: a raw 1.0 skip rate over 3 attempts is still consistent with a true rate near 0.3 by chance, and we don't want to nag the user based on noise. - SkipPattern is Hive @HiveType(4); per-habit storage ~2.5 KB (168 ints + 168 doubles + habitId + timestamp). - nextHighRiskWindow(habit, lookAheadDays) returns the next flagged cell within the lookahead - used by the if-then engine to schedule pre-window prompts. #3 - Implementation-intention prompt engine (lib/services/implementation_intention_service.dart): - Gollwitzer 1999 / Gollwitzer & Sheeran 2006 meta-analysis: if-then plans deliver d=0.65 on goal attainment. No major habit app ships this. We do. - propose(habit, pattern, dow, hour) generates a prefilled "IF [context cue], THEN [action]" template. The when-clause is anchored to a stable existing routine (waking, finishing dinner, leaving work) chosen by hour bucket - specificity matters (Gollwitzer found vague cues halve the effect size). The then-clause defaults to habit.twoMinuteVersion (Clear's 2-min rule), falling back to habit.name. - commit(proposal, whenClause, thenClause) persists what the user accepted - they can keep or edit either clause. - recordAdherenceForWindow(habit, observedAt) increments windowsObserved on every passing target window and windowsAdhered when the habit was completed that day. The ratio surfaces as user feedback ("your Tuesday-evening plan worked 8 of 10 times"). - ImplementationIntention is Hive @HiveType(5). Wired into main.dart's MultiProvider so any screen can read either service via Provider.of<>. Hive adapters registered. Tests (test/skip_pattern_test.dart): - Wilson lower-bound math validated against a published reference value (n=20 k=10 95% CI [0.299, 0.701]). - n=0 returns 0.0 (not NaN); k=0 and k=n return finite bounds. - Lower bound rises with sample size at fixed p̂ (correctness check). - The BUILD_PLAN flagging threshold (n>=4, lb>0.4) actually IS non-trivial: 3 of 4 misses (raw 0.75) does NOT flag - small-n noise is rejected. 6 of 8 misses DOES flag - consistent skipping over 8 attempts is the threshold. - SkipPattern.cellIndex round-trips for all 168 (DOW, hour) cells. - SkipPattern.isHighRiskAt + highRiskCells cell selection logic. Build status: still not validated locally (Flutter SDK not on PATH). The previous CI failure was a Dart version mismatch (Flutter 3.27.4 ships Dart 3.6.2, pubspec requires ^3.8.1); the FLUTTER_VERSION pin was bumped to 3.41.5 (Dart 3.11.0) in the prior commit, so this push will be the first end-to-end CI validation of the Hive codegen + new test suite. Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Bumps actions/checkout from 4 to 6.
Release notes
Sourced from actions/checkout's releases.
... (truncated)
Changelog
Sourced from actions/checkout's changelog.
... (truncated)
Commits
de0fac2Fix tag handling: preserve annotations and explicit fetch-tags (#2356)064fe7fAdd orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID is set (...8e8c483Clarify v6 README (#2328)033fa0dAdd worktree support for persist-credentials includeIf (#2327)c2d88d3Update all references from v5 and v4 to v6 (#2314)1af3b93update readme/changelog for v6 (#2311)71cf226v6-beta (#2298)069c695Persist creds to a separate file (#2286)ff7abcdUpdate README to include Node.js 24 support details and requirements (#2248)08c6903Prepare v5.0.0 release (#2238)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)