Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,27 @@
"Bash(git commit -m ' *)",
"WebFetch(domain:docs.nvidia.com)",
"Bash(grep -i \"\\\\.dart$\")",
"Bash(xargs grep -l \"class.*Card\\\\|class.*Widget\")"
"Bash(xargs grep -l \"class.*Card\\\\|class.*Widget\")",
"Bash(dir \"G:\\\\GitHub\\\\petfolio\\\\PetFolio Redesign\")",
"Bash(xargs sed -i 's/\\\\.line200/.line/g; s/\\\\.line100/.line2/g')",
"Bash(sed -i \"/import 'package:petfolio\\\\/features\\\\/pet_profile\\\\/data\\\\/models\\\\/pet_species.dart'/d\" lib/core/widgets/app_header.dart)",
"Bash(sed -i \"/import 'package:petfolio\\\\/features\\\\/pet_profile\\\\/data\\\\/models\\\\/pet_species.dart'/d\" lib/features/care/presentation/screens/care_screen.dart)",
"Bash(sed -i \"/import '..\\\\/..\\\\/data\\\\/models\\\\/pet_species.dart'/d\" lib/features/pet_profile/presentation/screens/onboarding_screen.dart)",
"mcp__Claude_in_Chrome__tabs_context_mcp",
"mcp__Claude_in_Chrome__select_browser",
"mcp__Claude_in_Chrome__navigate",
"mcp__Claude_in_Chrome__browser_batch",
"mcp__Windows-MCP__Screenshot",
"mcp__Claude_in_Chrome__get_page_text",
"Bash(python -m http.server 8765)",
"Bash(Start-Sleep -Seconds 2)",
"Bash(curl -s http://localhost:8765/ -o NUL)",
"mcp__Claude_in_Chrome__javascript_tool",
"mcp__Windows-MCP__Click",
"mcp__Windows-MCP__App",
"mcp__Windows-MCP__Snapshot",
"mcp__Claude_in_Chrome__find",
"Bash(dir \"G:\\\\GitHub\\\\petfolio\\\\google_fonts\" /b)"
]
}
}
124 changes: 75 additions & 49 deletions .claudeignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# These folders contain hundreds of HTML, JSX, XML, and PNG
# files from UI audits and design stitches. They will flood
# the context window and cause severe token bloat.
claude_design/
docs/resolved-deprecated/claude_design/
docs/logs/
qa-screens/
redesign_stitch/
Expand Down Expand Up @@ -35,57 +35,83 @@ build/
# ==========================================
# Unless you are specifically asking the agent to write Kotlin/Swift,
# keep these ignored so it focuses on the `lib/` directory.
android/.gradle
android/.kotlin
android/gradle-wrapper.jar
android/captures/
android/gradlew
android/gradlew.bat
android/local.properties
android/GeneratedPluginRegistrant.java
android/.cxx/

ios/**/dgph
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/ServiceDefinitions.json
ios/Runner/GeneratedPluginRegistrant.*



web/
macos/
windows/
linux/

# Android related
**/android/**/gradle-wrapper.jar
.gradle/
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/key.properties
*.jks

# iOS/XCode related
**/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/.last_build_id
**/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/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*

# macOS
**/Flutter/ephemeral/
**/Pods/
**/macos/Flutter/GeneratedPluginRegistrant.swift
**/macos/Flutter/ephemeral
**/xcuserdata/

# Windows
**/windows/flutter/generated_plugin_registrant.cc
**/windows/flutter/generated_plugin_registrant.h
**/windows/flutter/generated_plugins.cmake

# Linux
**/linux/flutter/generated_plugin_registrant.cc
**/linux/flutter/generated_plugin_registrant.h
**/linux/flutter/generated_plugins.cmake

# Coverage
coverage/

# Symbols
app.*.symbols

# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
!/dev/ci/**/Gemfile.lock

# ==========================================
# 5. ASSETS & MEDIA
# ==========================================
assets/
google_fonts/

*.png
*.jpg
*.jpeg
Expand All @@ -112,7 +138,7 @@ skills-lock.json
.idea/
.vscode/
.claude/
.agents/

.cursor/
*.iml
.metadata
11 changes: 11 additions & 0 deletions .remember/remember.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,14 @@ This file contains high-signal architectural, structural, and feature-related co
- Wrap database auth checks in subselects: `(select auth.uid())` for RLS performance.
- **Errors & UI Alerts**:
- App-wide notifier-triggered failures must utilize `AppSnackBar.showError` and `appSnackBarMessengerKey` instead of assigning transient errors to long-lived state providers.


## 4. Responsiveness & Bottom Navigation Layout
- **Unified Breakpoints**:
- Built a shared `ResponsiveLayout` helper (`lib/core/widgets/responsive_layout.dart`) with breakpoints `mobileMax = 600` and `tabletMax = 1024`.
- Core screens are responsive, constraining main view content to centered columns (typically `560px` to `800px`) on wider screens (Tablets/Web/Desktop) to prevent stretching.
- **Mobile Bottom Spacing**:
- Because `_FloatingNav` overlays screen content inside the shell route layout, bottom-docked interactive buttons on full-screen non-scrollable layouts (e.g., the Matching screen's `_ActionDock`) must use dynamic bottom padding on mobile viewports (`SizedBox(height: isWide ? 16 : (92 + MediaQuery.paddingOf(context).bottom))`) to sit cleanly above the floating navigation bar.
- **Root Navigator for Modal Sheets**:
- Modal bottom sheets shown from screens wrapped by the shell navigator (such as the switcher, cart drawer, story options, and care forms) must set `useRootNavigator: true`. This forces them to render on the root navigator, rendering above the floating navigation bar.

Loading
Loading