-
Notifications
You must be signed in to change notification settings - Fork 1
refactor(llc): extract test helpers to stream_feeds_test package #68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This commit extracts all test utility code from `packages/stream_feeds/test/test_utils` into a new internal package, `packages/stream_feeds_test`. This refactoring includes: - Moving test helpers, testers, mocks, and test data generators. - Creating the `stream_feeds_test` package to house these utilities. - Updating existing tests in `stream_feeds` to import and use the new package. - Adding `stream_feeds_test` as a `dev_dependency` in `stream_feeds`. - Ignoring the new test utility package in Codecov reports.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #68 +/- ##
==========================================
- Coverage 59.52% 59.50% -0.03%
==========================================
Files 121 121
Lines 3778 3778
==========================================
- Hits 2249 2248 -1
- Misses 1529 1530 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
WalkthroughThis PR extracts internal test utilities from the Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart (1)
53-66: Health‑check helper extraction looks good; consider deterministic timestamps if ever assertedMoving the health‑check payload into
_createHealthCheckEventkeeps the mock isolated from concrete event types and improves reuse. If tests ever start asserting oncreated_at, consider taking it as a parameter or using a fixed value to avoid time‑dependent flakiness; otherwise this is fine as‑is.packages/stream_feeds_test/test/stream_feeds_test_test.dart (1)
22-24: Consider making the mock class private.Since
MockTestClassis only used within this test file, consider prefixing it with an underscore to indicate it's a private implementation detail.-class MockTestClass extends Mock { +class _MockTestClass extends Mock { int getValue(); }And update the usage:
- final mock = MockTestClass(); + final mock = _MockTestClass();
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (40)
codecov.yml(1 hunks)packages/stream_feeds/pubspec.yaml(1 hunks)packages/stream_feeds/test/client/feeds_client_impl_test.dart(1 hunks)packages/stream_feeds/test/models/feed_id_test.dart(1 hunks)packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart(1 hunks)packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart(1 hunks)packages/stream_feeds/test/state/activity_comment_list_test.dart(1 hunks)packages/stream_feeds/test/state/activity_list_test.dart(1 hunks)packages/stream_feeds/test/state/activity_test.dart(1 hunks)packages/stream_feeds/test/state/bookmark_folder_list_test.dart(1 hunks)packages/stream_feeds/test/state/bookmark_list_test.dart(1 hunks)packages/stream_feeds/test/state/comment_list_test.dart(1 hunks)packages/stream_feeds/test/state/comment_reply_list_test.dart(1 hunks)packages/stream_feeds/test/state/feed_list_test.dart(1 hunks)packages/stream_feeds/test/state/feed_test.dart(16 hunks)packages/stream_feeds/test/state/follow_list_test.dart(1 hunks)packages/stream_feeds/test/state/poll_list_test.dart(1 hunks)packages/stream_feeds/test/state/poll_vote_list_test.dart(1 hunks)packages/stream_feeds/test/test_utils.dart(0 hunks)packages/stream_feeds/test/test_utils/testers/api_mocker_mixin.dart(0 hunks)packages/stream_feeds_test/README.md(1 hunks)packages/stream_feeds_test/analysis_options.yaml(1 hunks)packages/stream_feeds_test/example/stream_feeds_test_example.dart(1 hunks)packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart(1 hunks)packages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/activity_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/activity_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/base_tester.dart(4 hunks)packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/comment_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dart(4 hunks)packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/feed_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/poll_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dart(3 hunks)packages/stream_feeds_test/lib/stream_feeds_test.dart(1 hunks)packages/stream_feeds_test/pubspec.yaml(1 hunks)packages/stream_feeds_test/test/stream_feeds_test_test.dart(1 hunks)
💤 Files with no reviewable changes (2)
- packages/stream_feeds/test/test_utils/testers/api_mocker_mixin.dart
- packages/stream_feeds/test/test_utils.dart
🧰 Additional context used
📓 Path-based instructions (4)
**/*.dart
📄 CodeRabbit inference engine (.cursor/rules/cursor-rules-location.mdc)
**/*.dart: Use the barrel_files package with @includeInBarrelFile annotations for public API management in Dart projects; keep implementation details in lib/src/ without annotations
Mark only classes, functions, and enums intended for external package usage with @includeInBarrelFile; keep repository classes, mappers, and internal state objects in lib/src/ without annotations
**/*.dart: Use@freezedmixed mode for data classes in Dart
ReturnResult<T>from all repository methods in Dart
Apply early return patterns consistently in Dart code
Use pattern matching withswitchexpressions in Dart
Mark public APIs with@includeInBarrelFileannotation in Dart
Follow enhanced enum vs sealed class guidelines in Dart
Use const constructors where possible in Dart
Implement proper disposal patterns in Dart StateNotifiers and providers
Ensure pure Dart compatibility across VM, Flutter, and Web environments
Plan for StateNotifier reactive patterns when implementing state management in Dart
**/*.dart: Use @freezed for all data classes with required id fields and const constructors
Implement StateNotifier-based reactive state management with automatic change notifications
Apply Result pattern for all async operations with explicit error handling
Use early return patterns for clean control flow in Dart code
Create extension functions for data mapping using.toModel()pattern instead of mapper classes
Mark public APIs with @includeInBarrelFile annotation for barrel file export management
Implement proper resource management with disposal and cleanup patterns in Dart code
Use constructor injection for all dependencies in Dart classes
**/*.dart: All data models should use @freezed with Dart's mixed mode syntax and include @OverRide annotations on fields
Mark classes for public export using @includeInBarrelFile annotation
Use extension functions with.toModel()convention for data mapping instead of dedicated mapper classes
All repository methods must return Result...
Files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/lib/src/testers/activity_list_tester.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds_test/lib/src/testers/comment_list_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/poll_list_tester.dartpackages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dartpackages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
packages/stream_feeds/test/**/*.dart
📄 CodeRabbit inference engine (AGENTS.md)
packages/stream_feeds/test/**/*.dart: Test through public APIs only, not internal StateNotifier implementations
Use HTTP interceptors instead of mocking repositories in tests
Mirror thelib/structure intest/directory organization
Files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds/test/state/activity_test.dart
packages/stream_feeds/pubspec.yaml
📄 CodeRabbit inference engine (AGENTS.md)
packages/stream_feeds/pubspec.yaml: Pure Dart SDK: The stream_feeds package must have no platform-specific dependencies and work outside of Flutter
Use semantic versioning for SDK releases
Files:
packages/stream_feeds/pubspec.yaml
{**/api/**/*.dart,**/*_api.dart,**/client/*.dart}
📄 CodeRabbit inference engine (.cursor/rules/stream-feeds-api.mdc)
{**/api/**/*.dart,**/*_api.dart,**/client/*.dart}: Stream Feeds API integration should be implemented according to the Activity Streams specification with structured actor, verb, object, and target fields
Implement proper authentication using API keys and user tokens via the StreamFeedsClient with tokenProvider parameter
Implement structured error handling for Stream Feeds API responses including 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, and 500 Internal Server Error status codes
Use batch operations for bulk activity creation and updates to optimize API performance
Implement WebSocket event handlers for real-time Stream Feeds updates including activity events, reaction events, follow events, and member events
Respect API rate limiting by implementing retry logic with retry-after headers and designing applications to handle rate limit responses gracefully
Implement circuit breaker pattern for automatic failure recovery in Stream Feeds API interactions
Use connection pooling and gzip compression for efficient HTTP connection management and reduced bandwidth when communicating with Stream Feeds API
Files:
packages/stream_feeds/test/client/feeds_client_impl_test.dart
🧠 Learnings (30)
📓 Common learnings
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/test/**/*.dart : Mirror the `lib/` structure in `test/` directory organization
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/test/**/*.dart : Test through public APIs only, not internal StateNotifier implementations
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/stream_feeds.dart : Keep public API minimal - most code should be in `lib/src/` internal directory
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/test/**/*.dart : Use HTTP interceptors instead of mocking repositories in tests
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/stream_feeds.dart : Export public API classes from main library entry point `lib/stream_feeds.dart`
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/test/**/*.dart : Mirror the `lib/` structure in `test/` directory organization
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/activity_list_tester.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds_test/lib/src/testers/comment_list_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/poll_list_tester.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dartpackages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/test/**/*.dart : Test through public APIs only, not internal StateNotifier implementations
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/activity_list_tester.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds_test/lib/src/testers/comment_list_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/poll_list_tester.dartpackages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/analysis_options.yamlpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dartpackages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/stream_feeds.dart : Keep public API minimal - most code should be in `lib/src/` internal directory
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/test/**/*.dart : Use HTTP interceptors instead of mocking repositories in tests
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/activity_list_tester.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds_test/lib/src/testers/comment_list_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/poll_list_tester.dartpackages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dartpackages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/stream_feeds.dart : Export public API classes from main library entry point `lib/stream_feeds.dart`
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/stream_feeds.dart : Use `///` for public API documentation in exported classes and methods
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds_test/lib/src/testers/comment_list_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/generated/**/*.dart : Never manually edit generated files (`*.freezed.dart`, `*.g.dart`, `src/generated/`)
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlcodecov.ymlpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/**/*.dart : Use `//` for internal/private code documentation
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:36:35.233Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/cursor-rules-location.mdc:0-0
Timestamp: 2025-12-05T14:36:35.233Z
Learning: Applies to test/**/*.dart : Mirror test structure to lib structure in test/ directory with corresponding test file organization following lib/src/ architecture layers
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/generated/**/*.dart : Never manually edit OpenAPI-generated API code files in `src/generated/`
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlcodecov.ymlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds_test/README.mdpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/follow_list_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/stream_feeds.dart : Follow Effective Dart documentation guidelines for all public APIs
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/stream_feeds.dart : Include examples for complex APIs in documentation
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds_test/lib/src/testers/comment_list_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dartpackages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dartpackages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dartpackages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/pubspec.yaml : Pure Dart SDK: The stream_feeds package must have no platform-specific dependencies and work outside of Flutter
Applied to files:
packages/stream_feeds/test/state/bookmark_folder_list_test.dartpackages/stream_feeds/test/state/feed_list_test.dartpackages/stream_feeds/test/state/poll_list_test.dartpackages/stream_feeds_test/pubspec.yamlpackages/stream_feeds/test/state/bookmark_list_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/comment_list_test.dartpackages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dartpackages/stream_feeds/test/state/follow_list_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/state/**/*.dart : State class naming convention: Use `*State` suffix for state classes (e.g., `FeedState`, `ActivityListState`)
Applied to files:
packages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds/test/state/activity_test.dart
📚 Learning: 2025-12-05T14:37:17.519Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/stream-feeds-api.mdc:0-0
Timestamp: 2025-12-05T14:37:17.519Z
Learning: Applies to {**/api/**/*.dart,**/*_api.dart,**/client/*.dart} : Stream Feeds API integration should be implemented according to the Activity Streams specification with structured actor, verb, object, and target fields
Applied to files:
packages/stream_feeds/test/state/activity_comment_list_test.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds/test/state/activity_list_test.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/lib/src/testers/activity_list_tester.dartpackages/stream_feeds/test/models/feed_id_test.dartpackages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dartpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/repository/**/*.dart : Use extension functions for API-to-domain model mapping in repositories
Applied to files:
packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/**/*.dart : Apply Dart analyzer configuration from `analysis_options.yaml` for code quality
Applied to files:
packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds_test/pubspec.yamlcodecov.ymlpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds_test/analysis_options.yamlpackages/stream_feeds_test/lib/stream_feeds_test.dart
📚 Learning: 2025-12-05T14:37:17.519Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/stream-feeds-api.mdc:0-0
Timestamp: 2025-12-05T14:37:17.519Z
Learning: Applies to {**/api/**/*.dart,**/*_api.dart,**/client/*.dart} : Implement circuit breaker pattern for automatic failure recovery in Stream Feeds API interactions
Applied to files:
packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dartpackages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dart
📚 Learning: 2025-12-05T14:37:37.953Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/stream-feeds-sdk.mdc:0-0
Timestamp: 2025-12-05T14:37:37.953Z
Learning: Test public SDK interfaces through StreamFeedsClient using HTTP interceptors instead of repository mocks
Applied to files:
packages/stream_feeds_test/pubspec.yamlpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds_test/README.mdpackages/stream_feeds_test/test/stream_feeds_test_test.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dart
📚 Learning: 2025-12-05T14:37:17.519Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/stream-feeds-api.mdc:0-0
Timestamp: 2025-12-05T14:37:17.519Z
Learning: Applies to {**/api/**/*.dart,**/*_api.dart,**/client/*.dart} : Implement WebSocket event handlers for real-time Stream Feeds updates including activity events, reaction events, follow events, and member events
Applied to files:
packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/activity_tester.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/ws/events/**/*.dart : Real-time event handlers must use `freezed` for type-safe event handling in WebSocket layer
Applied to files:
packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds/pubspec.yaml
📚 Learning: 2025-12-05T14:37:17.519Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/stream-feeds-api.mdc:0-0
Timestamp: 2025-12-05T14:37:17.519Z
Learning: Applies to {**/api/**/*.dart,**/*_api.dart,**/client/*.dart} : Use connection pooling and gzip compression for efficient HTTP connection management and reduced bandwidth when communicating with Stream Feeds API
Applied to files:
packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
📚 Learning: 2025-12-05T14:37:17.519Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/stream-feeds-api.mdc:0-0
Timestamp: 2025-12-05T14:37:17.519Z
Learning: Applies to {**/api/**/*.dart,**/*_api.dart,**/client/*.dart} : Implement structured error handling for Stream Feeds API responses including 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, and 500 Internal Server Error status codes
Applied to files:
packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/models/**/*.dart : Follow Freezed 3.0 mixed mode syntax with `override` annotations for fields
Applied to files:
packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dartpackages/stream_feeds/pubspec.yamlpackages/stream_feeds/test/state/follow_list_test.dart
📚 Learning: 2025-12-05T14:37:17.519Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: .cursor/rules/stream-feeds-api.mdc:0-0
Timestamp: 2025-12-05T14:37:17.519Z
Learning: Applies to {**/api/**/*.dart,**/*_api.dart,**/client/*.dart} : Implement proper authentication using API keys and user tokens via the StreamFeedsClient with tokenProvider parameter
Applied to files:
packages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/lib/src/testers/base_tester.dartpackages/stream_feeds/test/client/feeds_client_impl_test.dartpackages/stream_feeds_test/lib/src/testers/feed_list_tester.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dartpackages/stream_feeds/test/state/activity_test.dartpackages/stream_feeds_test/lib/src/testers/feed_tester.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/models/**/*.dart : Request naming convention: Use `*Request` suffix for request classes (e.g., `FeedAddActivityRequest`)
Applied to files:
packages/stream_feeds/test/state/feed_test.dartpackages/stream_feeds_test/example/stream_feeds_test_example.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/models/**/*.dart : Use `freezed` for all data classes in the Stream Feeds SDK
Applied to files:
packages/stream_feeds/pubspec.yaml
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/state/**/*StateNotifier.dart : Use StateNotifier for reactive state management
Applied to files:
packages/stream_feeds/test/state/comment_reply_list_test.dartpackages/stream_feeds/test/state/poll_vote_list_test.dart
📚 Learning: 2025-12-05T14:38:02.662Z
Learnt from: CR
Repo: GetStream/stream-feeds-flutter PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-05T14:38:02.662Z
Learning: Applies to packages/stream_feeds/lib/src/models/**/*.dart : All models should have an `id` field when representing entities
Applied to files:
packages/stream_feeds/test/models/feed_id_test.dart
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build
- GitHub Check: analyze
- GitHub Check: stream_feeds
Description of the pull request
This PR extracts all test utility code from
packages/stream_feeds/test/test_utilsinto a new internal package,packages/stream_feeds_test.This refactoring includes:
stream_feeds_testpackage to house these utilities.stream_feedsto import and use the new package.stream_feeds_testas adev_dependencyinstream_feeds.Summary by CodeRabbit
Chores
stream_feeds_testpackage for improved modularity and maintainability.New Features
✏️ Tip: You can customize this high-level summary in your review settings.