code
Clone this repository
https://tangled.org/bretton.dev/coves-mobile
git@knot.bretton.dev:bretton.dev/coves-mobile
For self-hosted knots, clone URLs may differ based on your setup.
Introduces a caching layer for CommentsProvider instances to enable instant
back-navigation when returning to previously viewed posts.
Key changes:
- Add CommentsProviderCache with LRU eviction (15 posts max)
- Refactor CommentsProvider to be immutable per post (postUri/postCid in constructor)
- Add reference counting to prevent evicting in-use providers
- Add scroll position and draft text preservation to CommentsProvider
- Add staleness tracking for background refresh of cached data
- Wire up cache in main.dart with sign-out cleanup
The cache automatically disposes providers when evicted and clears all
providers on sign-out for privacy.
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New features:
- FocusedThreadScreen for viewing deep comment threads
- "Read X more replies" link at maxDepth navigates to focused view
- Ancestors shown flat above anchor, replies threaded below
- Auto-scroll to anchor comment on open
Performance & code quality:
- Fix O(n虏) descendant counting - only compute when needed at maxDepth
- Extract threading colors to shared kThreadingColors constant
- Remove unused Consumer<VoteProvider> wrapper
- Extract StatusBarOverlay reusable widget
Tests:
- Add unit tests for countDescendants
- Add widget tests for CommentThread max-depth behavior
- Add widget tests for FocusedThreadScreen rendering
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add support for --dart-define=ENV=dev as a convenience shorthand
alongside the existing ENVIRONMENT override. Maps 'dev'/'local' to
local environment and 'prod'/'production' to production.
Also remove macos Flutter config files from tracking (already in gitignore).
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Animation improvements:
- Increase collapse duration to 350ms expand / 280ms collapse
- Add combined fade + size + slide transitions
- Content slides down from parent on expand, up on collapse
- Add ClipRect to prevent overflow on nested threads
- Badge now uses scale + opacity animation with easeOutBack bounce
Compact collapsed state:
- Hide comment content when collapsed (only show avatar + username)
- Move "+X hidden" badge to right side, simplified to "+X"
- Reduce padding in collapsed state
PR review fixes:
- Return unmodifiable Set from collapsedComments getter
- Add accessibility Semantics with collapse/expand hints
- Add 6 unit tests for collapse state management
Also includes dart format fixes across touched files.
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Podfile.lock for reproducible CocoaPods builds
- Update Xcode project and workspace settings
- Update AppFrameworkInfo.plist
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Podfile for iOS native dependencies
- Update xcconfig files to include CocoaPods integration
- Ignore macOS directory (not targeting this platform)
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>