Skip to content

Conversation

@xsahil03x
Copy link
Member

@xsahil03x xsahil03x commented Dec 11, 2025

Description of the pull request

This PR 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.

Summary by CodeRabbit

  • Chores

    • Reorganized test utilities into a dedicated stream_feeds_test package for improved modularity and maintainability.
    • Updated all internal test files to use the new test package structure.
  • New Features

    • Enhanced test helpers with optional user parameter support, allowing tests to customize the authenticated user context.

✏️ Tip: You can customize this high-level summary in your review settings.

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.
@xsahil03x xsahil03x requested a review from a team as a code owner December 11, 2025 13:45
@xsahil03x xsahil03x changed the title refactor: extract test helpers to stream_feeds_test package refactor(llc): extract test helpers to stream_feeds_test package Dec 11, 2025
@codecov
Copy link

codecov bot commented Dec 11, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.50%. Comparing base (20723b8) to head (203f473).
⚠️ Report is 1 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@coderabbitai
Copy link

coderabbitai bot commented Dec 11, 2025

Walkthrough

This PR extracts internal test utilities from the stream_feeds package into a new dedicated stream_feeds_test package, consolidating test helpers, mocks, testers, and related infrastructure. All test files are updated to import from the new centralized location, and a user parameter is introduced to test helper functions with a default value.

Changes

Cohort / File(s) Summary
Configuration & Package Setup
codecov.yml, packages/stream_feeds/pubspec.yaml, packages/stream_feeds_test/pubspec.yaml, packages/stream_feeds_test/analysis_options.yaml
Added ignore pattern for test package coverage; removed direct test dependencies (test, mocktail, web_socket_channel) from main package; added path dependency to new stream_feeds_test package; configured new test package with dependencies and analysis options.
Main Package Test Import Updates
packages/stream_feeds/test/client/feeds_client_impl_test.dart, packages/stream_feeds/test/models/feed_id_test.dart, packages/stream_feeds/test/resolvers/poll/*_test.dart, packages/stream_feeds/test/state/*_test.dart
Updated imports from package:test/test.dart and ../test_utils.dart to package:stream_feeds_test/stream_feeds_test.dart; minor test data restructuring in feed_test.dart to use User objects.
Old Test Utilities Removal
packages/stream_feeds/test/test_utils.dart, packages/stream_feeds/test/test_utils/testers/api_mocker_mixin.dart
Removed all export directives from test_utils.dart and deleted api_mocker_mixin.dart (functionality moved to new test package).
New Test Package: Helpers
packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
Refactored health check event creation with dedicated helper function; updated to use Map-based representation instead of inlined event object.
New Test Package: Testers
packages/stream_feeds_test/lib/src/testers/base_tester.dart, packages/stream_feeds_test/lib/src/testers/activity_*_tester.dart, packages/stream_feeds_test/lib/src/testers/bookmark_*_tester.dart, packages/stream_feeds_test/lib/src/testers/comment_*_tester.dart, packages/stream_feeds_test/lib/src/testers/feed_*_tester.dart, packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart, packages/stream_feeds_test/lib/src/testers/poll_*_tester.dart
Added optional user parameter (defaulting to User(id: 'luke_skywalker')) to all test helper functions and base tester; updated imports to use consolidated helpers; propagated user parameter through test creation calls.
New Test Package: Public API
packages/stream_feeds_test/lib/stream_feeds_test.dart
Created new public library entry point exporting test framework (mocktail, test) and all test utilities (helpers and testers).
New Test Package: Documentation & Examples
packages/stream_feeds_test/README.md, packages/stream_feeds_test/example/stream_feeds_test_example.dart, packages/stream_feeds_test/test/stream_feeds_test_test.dart
Added documentation for test package; created example test demonstrating feedTest usage; added test coverage validating re-exports of test framework and mocktail.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Key areas requiring attention:
    • Verify all test imports are correctly updated and functional across 20+ test files
    • Confirm user parameter addition to test helpers maintains backward compatibility (all have sensible defaults)
    • Review base_tester.dart changes to token generation logic using the new user parameter
    • Check feed_test.dart for correctness of User object refactoring vs. previous string-based userId
    • Validate the new stream_feeds_test package exports all necessary utilities and re-exports test/mocktail correctly
    • Ensure api_mocker_mixin functionality is properly preserved in the new package structure

Possibly related PRs

  • refactor(llc)!: unify comment data model and add tests #64: Introduces reorganization of test utilities and new/updated test helpers (activity_comment_list_test, comment_reply_list_test, tester exports), directly aligned with this PR's extraction of test infrastructure into a dedicated package.

Suggested reviewers

  • Brazol
  • renefloor

Poem

🐰 A test warren, once scattered and spread,
Now shelters as one, cozy and fed!
With users by default and helpers consolidated,
The testing suite's unified, well-navigated—
Hops of refactoring, clean and bright! 🌟

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description is largely complete with clear explanation of changes, but lacks required CLA checkbox and best practices acknowledgment from the template.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The PR title 'refactor: extract test helpers to stream_feeds_test package' clearly and accurately summarizes the main change: moving test utilities from one location to a new dedicated package.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/test-package

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a 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 asserted

Moving the health‑check payload into _createHealthCheckEvent keeps the mock isolated from concrete event types and improves reuse. If tests ever start asserting on created_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 MockTestClass is 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 20723b8 and 203f473.

📒 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 @freezed mixed mode for data classes in Dart
Return Result<T> from all repository methods in Dart
Apply early return patterns consistently in Dart code
Use pattern matching with switch expressions in Dart
Mark public APIs with @includeInBarrelFile annotation 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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/comment_list_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/poll_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dart
  • packages/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 the lib/ structure in test/ directory organization

Files:

  • packages/stream_feeds/test/state/bookmark_folder_list_test.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/activity_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/comment_list_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/poll_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/activity_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/comment_list_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/poll_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/analysis_options.yaml
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds_test/lib/src/testers/poll_vote_list_tester.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/activity_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/comment_list_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/poll_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/comment_list_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • codecov.yml
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/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.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • codecov.yml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/activity_comment_list_test.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_removed_test.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/comment_list_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/stream_feeds/test/state/follow_list_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/follow_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/bookmark_folder_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/comment_reply_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/feed_list_test.dart
  • packages/stream_feeds/test/state/poll_list_test.dart
  • packages/stream_feeds_test/pubspec.yaml
  • packages/stream_feeds/test/state/bookmark_list_test.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/stream_feeds/test/state/comment_list_test.dart
  • packages/stream_feeds/test/state/comment_reply_list_test.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds/test/state/poll_vote_list_test.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds/test/state/activity_list_test.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/lib/src/testers/activity_list_tester.dart
  • packages/stream_feeds/test/models/feed_id_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_comment_list_tester.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_tester.dart
  • packages/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.dart
  • packages/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.dart
  • packages/stream_feeds_test/pubspec.yaml
  • codecov.yml
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds_test/analysis_options.yaml
  • packages/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.dart
  • packages/stream_feeds_test/lib/src/helpers/web_socket_mocks.dart
  • packages/stream_feeds/test/resolvers/poll/poll_answer_casted_test.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/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.yaml
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds_test/README.md
  • packages/stream_feeds_test/test/stream_feeds_test_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/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.dart
  • packages/stream_feeds/test/state/feed_test.dart
  • packages/stream_feeds_test/lib/src/testers/activity_tester.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/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.dart
  • packages/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.dart
  • packages/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.dart
  • packages/stream_feeds/pubspec.yaml
  • packages/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.dart
  • packages/stream_feeds_test/lib/src/testers/base_tester.dart
  • packages/stream_feeds/test/client/feeds_client_impl_test.dart
  • packages/stream_feeds_test/lib/src/testers/feed_list_tester.dart
  • packages/stream_feeds_test/example/stream_feeds_test_example.dart
  • packages/stream_feeds/test/state/activity_test.dart
  • packages/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.dart
  • packages/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.dart
  • packages/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

@xsahil03x xsahil03x merged commit 3bc9565 into main Dec 12, 2025
11 checks passed
@xsahil03x xsahil03x deleted the feat/test-package branch December 12, 2025 11:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants