Initial commit: Grounded Flutter frontend
A to-do app that doesn't believe you — an enforcement layer rather than a
neutral ledger.
Architecture ported from Autoreceptives/Frontend/Receptive: stacked MVVM with
the mandatory 4-file screen pattern, one ParentViewModel owning the loading /
network / error overlays and the handleError decision tree, one AppDataManager
gateway, dio comms carrying the three identity headers, secure storage with
random-suffixed keys, and a single-chokepoint Navigator. Package root and Dart
package name are both Grounded; org is nya.
The enforcement engine, one unit per formula in utils/:
- DebtEngine w(class) x severity(d) x decay(t), sublinear severity so old
misses cannot swamp the score; abandonment 2x with 30-day
decay immunity; late complete retains 30%
- StandingEngine Good -> Warned -> Grounded -> Lockdown, derived not set;
Grounded replaces home with the overdue queue
- CapacityEngine blocks over-scheduling against p50 of historically completed
minutes, with a learned per-category estimation multiplier
- IntegrityEngine session integrity, weekly volume, plyometric contact ceiling
and enforced recovery gaps
- ExcuseAnalyser on-device excuse clustering plus the confrontation copy
- GuardrailEngine distress detection and rationed amnesty
- ToneEngine all enforcement copy, so the tone cap lives in one place
CommitmentEvent is append-only and is the source of truth rather than the
status field, which is what makes honest history and excuse analysis possible.
Goals contain commitments via parentId, and a task can be run from a
full-screen runner that derives elapsed time from wall-clock so screen-off
cannot lose time. Backgrounding pauses the clock and is counted. The runner is
mirrored into an ongoing notification, with alarm-class full-screen intents
reserved for non-negotiables.
Design language, fonts, icon and native splash are in place; Mason bricks are
retargeted to this project and verified end-to-end.
flutter analyze lib/ reports no errors.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mfu2gQLSFN21YRBcU2NrTt
This commit is contained in:
209
.gitignore
vendored
Normal file
209
.gitignore
vendored
Normal file
@@ -0,0 +1,209 @@
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# Grounded — repository ignore rules
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
# ── Secrets & environment ────────────────────────────────────────────────────
|
||||
# .env carries the backend hosts and app version. Committing it leaks the
|
||||
# deployment topology, so the template is tracked and the real file is not.
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
*.pem
|
||||
*.key
|
||||
*.p12
|
||||
*.jks
|
||||
*.keystore
|
||||
*.mobileprovision
|
||||
key.properties
|
||||
secrets.properties
|
||||
google-services.json
|
||||
GoogleService-Info.plist
|
||||
firebase_options.dart
|
||||
service-account*.json
|
||||
credentials.json
|
||||
*.retrofit.dart.log
|
||||
|
||||
# ── Dart / Flutter ───────────────────────────────────────────────────────────
|
||||
.dart_tool/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
.packages
|
||||
.pub-cache/
|
||||
.pub/
|
||||
build/
|
||||
coverage/
|
||||
doc/api/
|
||||
**/doc/api/
|
||||
*.dart.js
|
||||
*.info.json
|
||||
*.js_
|
||||
*.js.deps
|
||||
*.js.map
|
||||
.flutter-versions
|
||||
pubspec_overrides.yaml
|
||||
|
||||
# Generated sources
|
||||
*.g.dart
|
||||
*.freezed.dart
|
||||
*.mocks.dart
|
||||
*.config.dart
|
||||
|
||||
# Symbolication / obfuscation
|
||||
app.*.symbols
|
||||
app.*.map.json
|
||||
|
||||
# ── Mason ────────────────────────────────────────────────────────────────────
|
||||
# Bricks themselves are tracked; the resolved cache is not.
|
||||
.mason/
|
||||
**/hooks/.dart_tool/
|
||||
**/hooks/pubspec.lock
|
||||
|
||||
# ── Android ──────────────────────────────────────────────────────────────────
|
||||
**/android/**/gradle-wrapper.jar
|
||||
**/android/.gradle
|
||||
**/android/captures/
|
||||
**/android/gradlew
|
||||
**/android/gradlew.bat
|
||||
**/android/local.properties
|
||||
**/android/**/GeneratedPluginRegistrant.java
|
||||
**/android/key.properties
|
||||
**/android/app/release/
|
||||
**/android/app/debug/
|
||||
**/android/app/profile/
|
||||
*.apk
|
||||
*.aab
|
||||
*.ap_
|
||||
*.dex
|
||||
.cxx/
|
||||
|
||||
# ── iOS ──────────────────────────────────────────────────────────────────────
|
||||
**/ios/**/*.mode1v3
|
||||
**/ios/**/*.mode2v3
|
||||
**/ios/**/*.moved-aside
|
||||
**/ios/**/*.pbxuser
|
||||
**/ios/**/*.perspectivev3
|
||||
**/ios/**/*sync/
|
||||
**/ios/**/.sconsign.dblite
|
||||
**/ios/**/.tags*
|
||||
**/ios/**/.vagrant/
|
||||
**/ios/**/DerivedData/
|
||||
**/ios/**/Icon?
|
||||
**/ios/**/Pods/
|
||||
**/ios/**/.symlinks/
|
||||
**/ios/**/profile
|
||||
**/ios/**/xcuserdata
|
||||
**/ios/.generated/
|
||||
**/ios/Flutter/App.framework
|
||||
**/ios/Flutter/Flutter.framework
|
||||
**/ios/Flutter/Flutter.podspec
|
||||
**/ios/Flutter/Generated.xcconfig
|
||||
**/ios/Flutter/ephemeral/
|
||||
**/ios/Flutter/app.flx
|
||||
**/ios/Flutter/app.zip
|
||||
**/ios/Flutter/flutter_assets/
|
||||
**/ios/Flutter/flutter_export_environment.sh
|
||||
**/ios/Flutter/.last_build_id
|
||||
**/ios/ServiceDefinitions.json
|
||||
**/ios/Runner/GeneratedPluginRegistrant.*
|
||||
*.ipa
|
||||
*.dSYM.zip
|
||||
*.dSYM
|
||||
|
||||
# ── macOS ────────────────────────────────────────────────────────────────────
|
||||
**/macos/Flutter/GeneratedPluginRegistrant.swift
|
||||
**/macos/Flutter/ephemeral/
|
||||
**/macos/Flutter/Flutter-Debug.xcconfig
|
||||
**/macos/Flutter/Flutter-Release.xcconfig
|
||||
**/macos/Flutter/Flutter-Profile.xcconfig
|
||||
**/macos/Pods/
|
||||
**/xcuserdata/
|
||||
**/DerivedData/
|
||||
|
||||
# ── Windows ──────────────────────────────────────────────────────────────────
|
||||
**/windows/flutter/generated_plugin_registrant.cc
|
||||
**/windows/flutter/generated_plugin_registrant.h
|
||||
**/windows/flutter/generated_plugins.cmake
|
||||
**/windows/flutter/ephemeral/
|
||||
*.exe
|
||||
*.msix
|
||||
*.pdb
|
||||
*.ilk
|
||||
|
||||
# ── Linux ────────────────────────────────────────────────────────────────────
|
||||
**/linux/flutter/generated_plugin_registrant.cc
|
||||
**/linux/flutter/generated_plugin_registrant.h
|
||||
**/linux/flutter/generated_plugins.cmake
|
||||
**/linux/flutter/ephemeral/
|
||||
|
||||
# ── Web ──────────────────────────────────────────────────────────────────────
|
||||
**/web/*.g.dart
|
||||
lib/generated_plugin_registrant.dart
|
||||
|
||||
# ── IDEs & editors ───────────────────────────────────────────────────────────
|
||||
.idea/
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.vscode/
|
||||
!.vscode/launch.json
|
||||
!.vscode/settings.json
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
.history/
|
||||
.atom/
|
||||
.buildlog/
|
||||
.build/
|
||||
migrate_working_dir/
|
||||
.metals/
|
||||
.bloop/
|
||||
|
||||
# ── OS noise ─────────────────────────────────────────────────────────────────
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
Thumbs.db:encryptable
|
||||
desktop.ini
|
||||
$RECYCLE.BIN/
|
||||
*.lnk
|
||||
|
||||
# ── Logs, temp, caches ───────────────────────────────────────────────────────
|
||||
*.log
|
||||
*.tmp
|
||||
*.temp
|
||||
*.bak
|
||||
*.orig
|
||||
*.rej
|
||||
*.pyc
|
||||
__pycache__/
|
||||
*.class
|
||||
.cache/
|
||||
tmp/
|
||||
temp/
|
||||
node_modules/
|
||||
|
||||
# ── Archives & large binaries ────────────────────────────────────────────────
|
||||
*.zip
|
||||
*.tar
|
||||
*.tar.gz
|
||||
*.tgz
|
||||
*.rar
|
||||
*.7z
|
||||
*.iso
|
||||
*.dmg
|
||||
|
||||
# ── Working scratch ──────────────────────────────────────────────────────────
|
||||
# Icon exploration output and other throwaways.
|
||||
**/assets/icons/_*.png
|
||||
**/assets/icons/try_*.png
|
||||
scratch/
|
||||
scratchpad/
|
||||
*.local
|
||||
|
||||
# ── Agent tooling ────────────────────────────────────────────────────────────
|
||||
.claude/settings.local.json
|
||||
.agents/
|
||||
Reference in New Issue
Block a user