Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
9109c2d
refactor(ui)!: re-wrote message actions and modals (#2156)
xsahil03x May 22, 2025
08600ee
refactor(ui): sync theme with figma (#2263)
xsahil03x May 26, 2025
31b2809
refactor!(ui): add support for customising reaction picker (#2248)
xsahil03x Jun 10, 2025
396fcca
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jun 16, 2025
eb9d91c
refactor(ui)!: improve reaction bubble implementation (#2277)
xsahil03x Jun 17, 2025
6a5cf55
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jun 17, 2025
d2aabea
chore(ui): make `CustomMessageAction` extendable
xsahil03x Jun 17, 2025
39bc67b
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jun 17, 2025
f9d454c
chore(repo): add migration guide
xsahil03x Jun 18, 2025
5a2dc40
chore(repo): update CHANGELOG.md
xsahil03x Jun 18, 2025
76debfd
chore(repo): update migration guide
xsahil03x Jun 18, 2025
75d9d17
chore(repo): release v10.0.0-beta.1 (#2283)
xsahil03x Jun 18, 2025
c038038
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jun 27, 2025
dead3f9
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jun 30, 2025
0ffdd7c
chore: include latest stable release in beta changelogs
xsahil03x Jun 30, 2025
8c8dbd2
chore(repo): release v10.0.0-beta.2 (#2292)
xsahil03x Jun 30, 2025
74bb460
feat(ui)!: refactor poll message into attachment (#2296)
xsahil03x Jul 3, 2025
3a2b3e3
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jul 4, 2025
cc69eb3
refactor(llc): introduce event controller, resolver (#2301)
xsahil03x Jul 10, 2025
74188e3
refactor(ui)!: add support for non-attachment types in attachment pic…
xsahil03x Jul 11, 2025
cc33ba3
chore(repo): remove deprecated classes, methods, and properties (#2306)
xsahil03x Jul 16, 2025
fd1e502
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jul 17, 2025
3e95d5c
chore(repo): release v10.0.0-beta.3 (#2310)
xsahil03x Jul 17, 2025
86d3220
chore(ui): hide reaction picker bubble border and mask (#2316)
xsahil03x Jul 20, 2025
a514537
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jul 21, 2025
7d3fa7f
feat(llc): add support for sharing live and static locations (#2305)
xsahil03x Jul 23, 2025
376f0fe
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jul 23, 2025
a32d298
fix(ui): adjust reaction picker and message modal animations
xsahil03x Jul 24, 2025
84b2994
feat(persistence): add support for location persistence (#2319)
xsahil03x Jul 24, 2025
00c0b15
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jul 24, 2025
7fe34aa
feat(llc, ui, persistence)!: add support for reaction emoji_code (#2326)
xsahil03x Jul 25, 2025
bf33673
feat(ui): add `StreamChatConfiguration.maybeOf()` method
xsahil03x Jul 25, 2025
c37fa34
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jul 25, 2025
0a6b932
chore: Update Goldens
xsahil03x Jul 25, 2025
d1819c1
chore(repo): release v10.0.0-beta.4 (#2333)
xsahil03x Jul 25, 2025
48b0cc7
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jul 30, 2025
ba38c8e
chore: merge fixes
xsahil03x Jul 30, 2025
3ad5cab
fix(llc): fixed skipPush and skipEnrichUrl not preserving during mess…
VladShturma Jul 30, 2025
8e06a36
fix(llc, ui): update message state on failure
xsahil03x Jul 30, 2025
4ca7fe9
refactor(ui): introduce showStreamDialog and replace showStreamMessag…
xsahil03x Aug 6, 2025
74fecb2
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Aug 6, 2025
dfa6170
chore: fix lints
xsahil03x Aug 6, 2025
1433346
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Aug 13, 2025
8376c94
chore: merge fixes
xsahil03x Aug 13, 2025
b138da2
chore: Update Goldens
xsahil03x Aug 13, 2025
2b8a21e
chore(repo): release v10.0.0-beta.5 (#2354)
xsahil03x Aug 13, 2025
c511c68
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Sep 19, 2025
0f8a4f5
chore: Update Goldens
xsahil03x Sep 19, 2025
90d5bc2
fix(ui): ensure dialog confirmation for delete/flag actions (#2384)
xsahil03x Sep 19, 2025
c7c1dd3
fix(ui): enable sending reply in threads for users with sendReply cap…
xsahil03x Sep 23, 2025
74f46ab
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Sep 24, 2025
4d8635c
chore: Update Goldens
xsahil03x Sep 24, 2025
9af6ba2
test: fix tests
xsahil03x Sep 24, 2025
6a52cb0
chore(repo): release v10.0.0-beta.6 (#2393)
xsahil03x Sep 24, 2025
e7576f9
feat(llc, ui): add delete message for me (#2394)
xsahil03x Sep 26, 2025
5a02491
feat(persistence): add deletedForMe and deletedMessages fields (#2395)
xsahil03x Sep 26, 2025
4bb47e1
feat(llc)!: add standalone file/image upload/remove methods (#2396)
xsahil03x Sep 26, 2025
7ba65c2
feat(llc): improve message validation for upload criteria
xsahil03x Oct 9, 2025
bd17255
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Oct 15, 2025
37e0466
chore: merge fixes
xsahil03x Oct 15, 2025
e6f5e25
chore(repo): release v10.0.0-beta.7 (#2417)
xsahil03x Oct 15, 2025
0db0485
feat(llc, persistence): handle user.messages.deleted event (#2423)
xsahil03x Oct 21, 2025
ea361cd
feat(ui): add `attachmentPickerOptionsBuilder` (#2415)
xsahil03x Oct 29, 2025
b38b320
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Oct 29, 2025
76fdb59
chore: update migration guide
xsahil03x Oct 29, 2025
3f89e28
chore(repo): release v10.0.0-beta.8 (#2425)
xsahil03x Oct 29, 2025
f594ac4
feat(ui)!: enhance onAttachmentTap with fallback to default behavior …
xsahil03x Oct 31, 2025
30da524
feat(llc): Store endAt in UTC (#2428)
xsahil03x Nov 3, 2025
182706c
feat(ui): add reactionIndicatorBuilder for custom reaction indicators…
xsahil03x Nov 13, 2025
341973d
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Nov 18, 2025
736a7be
chore: merge fixes
xsahil03x Nov 18, 2025
b5874a1
chore: Update Goldens
xsahil03x Nov 18, 2025
2a117b0
chore(repo): release v10.0.0-beta.9 (#2446)
xsahil03x Nov 18, 2025
302ade6
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Dec 3, 2025
ee5d767
chore: Update Goldens
xsahil03x Dec 3, 2025
e223a99
chore(repo): release v10.0.0-beta.10 (#2458)
xsahil03x Dec 3, 2025
56e021f
chore: Fix version typo in changelog
xsahil03x Dec 3, 2025
976b06f
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Dec 10, 2025
44a4e9d
chore: Update Goldens
xsahil03x Dec 10, 2025
3ceae47
chore(repo): release v10.0.0-beta.11 (#2470)
xsahil03x Dec 10, 2025
276ad42
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Dec 23, 2025
ae9c8ee
fix(ui): fix regression in emoji_code support for reactions (#2474)
xsahil03x Dec 30, 2025
88f8a93
refactor(ui)!: replace ArgumentError with typed errors (#2479)
xsahil03x Jan 14, 2026
c758522
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Jan 28, 2026
f8b5f71
chore(repo): bump drift and drift_dev to version 2.28.0
xsahil03x Jan 28, 2026
c7ac636
chore: apply review fixes
xsahil03x Jan 28, 2026
43705e0
chore: fix lints
xsahil03x Jan 28, 2026
7a758b1
chore: fix tests
xsahil03x Jan 28, 2026
4ddccab
chore(repo): release v10.0.0-beta.12 (#2493)
xsahil03x Jan 28, 2026
25bca48
Merge branch 'master' into v10.0.0
xsahil03x Feb 2, 2026
ae4d075
Merge branch 'master' into v10.0.0
xsahil03x Feb 2, 2026
6b3ef7c
chore: update migration.md
xsahil03x Feb 2, 2026
6780dc3
Merge remote-tracking branch 'origin/master' into v10.0.0
xsahil03x Feb 4, 2026
210ff93
feat(repo)!: design refresh (#2503)
xsahil03x Apr 10, 2026
de33f88
chore(repo): release v10.0.0-beta.13 (#2609)
renefloor Apr 10, 2026
4428a96
fix release of stream_chat_flutter (#2610)
renefloor Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ updates:
# All packages grouped into a single configuration using multi-directory support
- package-ecosystem: "pub"
directories:
- "/sample_app"
- "/packages/stream_chat"
- "/packages/stream_chat_flutter_core"
- "/packages/stream_chat_flutter"
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/distribute_external.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ jobs:
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}

- name: Setup Ruby
Expand Down Expand Up @@ -103,13 +102,16 @@ jobs:
uses: actions/checkout@v6
with:
fetch-depth: 0

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '26.3'

- name: "Install Flutter"
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}

- name: Setup Ruby
Expand Down
57 changes: 53 additions & 4 deletions .github/workflows/distribute_internal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ on:
push:
branches:
- master
# TODO: Remove feat/design-refresh once merged to master
- feat/design-refresh
# TODO: Remove once merged to master
- v10.0.0
workflow_dispatch:
inputs:
platform:
Expand Down Expand Up @@ -75,7 +75,6 @@ jobs:
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}

- name: "Install Tools"
Expand Down Expand Up @@ -113,13 +112,16 @@ jobs:
uses: actions/checkout@v6
with:
fetch-depth: 0

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '26.3'

- name: "Install Flutter"
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}

- name: "Install Tools"
Expand All @@ -144,3 +146,50 @@ jobs:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }}
run: bundle exec fastlane distribute_to_firebase

# TODO: Remove once feat/design-refresh is merged to master
ios_testflight:
needs: determine_platforms
if: ${{ needs.determine_platforms.outputs.run_ios == 'true' }}
runs-on: macos-15 # Requires xcode 15 or later
timeout-minutes: 30
steps:
- name: Connect Bot
uses: webfactory/ssh-agent@v0.9.1
with:
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}

- name: "Git Checkout"
uses: actions/checkout@v6
with:
fetch-depth: 0

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '26.3'

- name: "Install Flutter"
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}

- name: "Install Tools"
run: flutter pub global activate melos

- name: "Bootstrap Workspace"
run: melos bootstrap

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
working-directory: sample_app/ios

- name: Distribute to TestFlight Internal
working-directory: sample_app/ios
env:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }}
run: bundle exec fastlane distribute_to_testflight_internal
3 changes: 1 addition & 2 deletions .github/workflows/legacy_version_analyze.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: legacy_version_analyze
env:
# Note: The versions below should be manually updated after a new stable
# version comes out.
flutter_version: "3.27.4"
flutter_version: "3.38.1"

on:
push:
Expand Down Expand Up @@ -44,7 +44,6 @@ jobs:
with:
flutter-version: ${{ env.flutter_version }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}

- name: 📊 Analyze and test packages
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/stream_flutter_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ jobs:
with:
flutter-version: ${{ env.flutter_version }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}
- name: "Install Tools"
run: |
Expand Down Expand Up @@ -67,7 +66,6 @@ jobs:
with:
flutter-version: ${{ env.flutter_version }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}
- name: "Install Tools"
run: |
Expand All @@ -94,7 +92,6 @@ jobs:
with:
flutter-version: ${{ env.flutter_version }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}
# This step is needed due to https://github.com/actions/runner-images/issues/11279
- name: Install SQLite3
Expand Down Expand Up @@ -168,8 +165,11 @@ jobs:
with:
flutter-version: ${{ env.flutter_version }}
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}
- uses: maxim-lobanov/setup-xcode@v1
if: matrix.platform == 'ios'
with:
xcode-version: '26.3'
- name: "Install Tools"
run: flutter pub global activate melos
- name: "Bootstrap Workspace"
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/update_goldens.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ jobs:
with:
flutter-version: "3.x"
channel: stable
cache: true
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}

- name: 📦 Install Tools
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ GeneratedPluginRegistrant.*
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/App.framework
**/ios/Flutter/ephemeral
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
Expand Down
148 changes: 148 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Overview

This is a Dart/Flutter monorepo for Stream Chat's official Flutter SDK, managed with [Melos](https://pub.dev/packages/melos). All packages live under `packages/`.

## Common Commands

### Setup
```bash
melos bootstrap # Fetch and link all dependencies (equivalent to pub get for all packages)
```

### Testing
```bash
melos run test:all # Run all Dart & Flutter tests
melos run test:dart # Run Dart-only tests
melos run test:flutter # Run Flutter tests
# Run tests in a specific package:
cd packages/stream_chat_flutter && flutter test
cd packages/stream_chat_flutter && flutter test test/src/path/to/test_file.dart
```

### Golden Tests
```bash
melos run update:goldens # Regenerate all golden image files
# In CI, CI goldens are used; locally, platform goldens are used (configured via alchemist)
```

### Linting & Formatting
```bash
melos run lint:all # Run analyze + format
melos run analyze # Run dart analyze --fatal-infos on all packages
melos run format # Check formatting (page width: 120)
```

### Code Generation
```bash
melos run generate:all # Run build_runner for all packages
melos run generate:flutter # Run build_runner for Flutter packages only
melos run generate:dart # Run build_runner for Dart packages only
```

### Versioning
```bash
melos run version:update # Regenerate version.dart from pubspec.yaml (runs automatically after bootstrap)
```

## Package Architecture

The SDK is layered — each package builds on top of the previous:

```
stream_chat # Pure Dart, no Flutter dependency
└── stream_chat_persistence # Local disk cache using Drift (optional)
└── stream_chat_flutter_core # Flutter business logic, no UI
└── stream_chat_flutter # Full UI component library
└── stream_chat_localizations # i18n for UI components
```

### `stream_chat`
Low-level Dart client. Key types:
- `StreamChatClient` — central API client, manages WebSocket, REST, and state
- `Channel` — represents a chat channel, has its own state and streaming APIs
- Models in `lib/src/core/models/`: `Message`, `User`, `Member`, `Reaction`, `Poll`, `Event`, `Attachment`, `Draft`, etc.
- Generated code (`.g.dart`, `.freezed.dart`) for JSON serialization/immutable models — do not edit manually

### `stream_chat_flutter_core`
Business logic layer. Key types:
- `StreamChatCore` — root widget, manages app lifecycle, WebSocket reconnection, and connectivity
- `StreamChannel` — provides a `Channel` to the widget tree via `StreamChannel.of(context)`
- `PagedValueNotifier<Key, Value>` — base class for all list controllers
- Controllers: `StreamChannelListController`, `StreamMessageListController` (via `MessageListCore`), `StreamUserListController`, `StreamMemberListController`, `StreamThreadListController`, `StreamDraftListController`, `StreamMessageReminderListController`, `StreamPollController`
- `BetterStreamBuilder<T>` — efficient StreamBuilder that only rebuilds when data changes

### `stream_chat_flutter`
Full UI package. Key architectural points:

**Root widget hierarchy:**
`StreamChat` → `StreamChatTheme` → `StreamChatConfiguration` → `StreamChatCore` → app content

**Theming:** `StreamChatThemeData` (accessed via `StreamChatTheme.of(context)`) contains per-component theme data objects. Components read their theme from context. `StreamChatConfigurationData` holds non-theme UI config.

**Widget tree integration pattern:**
- `StreamChat.of(context)` — get the chat state (current user, client)
- `StreamChannel.of(context)` — get the current channel state
- `StreamChatTheme.of(context)` — get current theme data

**Key UI components:**
- `StreamChannelListView` + `StreamChannelListTile` — channel list using `StreamChannelListController`
- `StreamMessageListView` — message list with floating date dividers, unread indicators, thread separators
- `StreamMessageInput` (legacy) / `StreamChatMessageComposer` (new design system) — message composition
- `StreamMessageWidget` — renders individual messages with attachments, reactions, threads
- Scroll views in `lib/src/scroll_view/` — generic paged scroll views for channels, threads, members, users, drafts, polls

**New design system components** (`lib/src/components/`):
- `StreamUserAvatar`, `StreamChannelAvatar`, `StreamUserAvatarGroup` — avatar components; these are chat-domain wrappers around the base components in `stream_core_flutter`
- `StreamChatMessageComposer` — new composer using `MessageComposerFactory` for custom layouts

**Golden tests:** Use `alchemist` package. Platform goldens used locally, CI goldens used in CI (detected via `CI`/`GITHUB_ACTIONS` env vars). Goldens stored alongside tests in `goldens/` subdirectories.

### `stream_chat_localizations`
Provides `StreamChatLocalizations` — Flutter localizations delegate with translations for all UI strings.

### `stream_chat_persistence`
Optional local persistence using Drift (SQLite). Implements `ChatPersistenceClient` from `stream_chat`.

## Code Style

- Line length: **120 characters** (configured in `analysis_options.yaml`)
- Imports: always use package imports (`always_use_package_imports`), not relative imports
- All public APIs **must** have doc comments (`public_member_api_docs`)
- Sort constructors first, unnamed constructors before named
- Prefer `const` constructors, `final` locals, single quotes
- Trailing commas: `preserve` (formatter setting)
- Generated files (`.g.dart`, `.freezed.dart`) are excluded from analysis

## PR & Commit Conventions

PR titles follow [Conventional Commits](https://www.conventionalcommits.org/):
- `fix(scope): description` — bug fix
- `feat(scope): description` — new feature
- `refactor(scope)!: description` — breaking change
- `chore(scope): description`, `docs:`, `test:`, etc.

After modifying any package, update its `CHANGELOG.md`.

## Figma Designs

UI designs for this SDK are in the **Chat SDK Design system** Figma project. Use the Figma MCP server to look up designs when implementing or updating UI components.

## `stream_core_flutter` (external sibling repo)

Basic UI components that can be shared across Stream products live in the `stream_core_flutter` package in the **stream-core-flutter** repository (a sibling repo, not inside this monorepo). These components:
- Never depend on chat domain models (`Channel`, `Message`, `User`, etc.)
- Provide primitive building blocks: avatars, layout primitives, theming tokens, etc.

Components in this repo can be wrappers around those base components, adding chat domain models and extra logic on top. For example, `StreamChannelAvatar` wraps the base `StreamAvatarGroup` from `stream_core_flutter` and adds channel-specific member resolution logic.

`stream_core_flutter` types used here are re-exported via a `show` allowlist in `lib/stream_chat_flutter.dart`. When adding a new type from `stream_core_flutter`, add it to that allowlist.

## Dependency Management

Dependencies are centrally managed in `melos.yaml` under `command.bootstrap.dependencies`. Do **not** edit version constraints directly in individual `pubspec.yaml` files — update `melos.yaml` and run `melos bootstrap`.

> Note: `stream_chat_flutter` uses a local path dependency to `stream_core_flutter` (pointing to the sibling repo) when making changes to both repos together. Use a git dependency when no local changes to `stream_core_flutter` are needed.
11 changes: 7 additions & 4 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ analyzer:
- packages/*/lib/scrollable_positioned_list/**
- packages/*/lib/**/*.freezed.dart

formatter:
page_width: 120
trailing_commas: preserve

linter:
rules:
# these rules are documented on and in the same order as
Expand All @@ -19,7 +23,6 @@ linter:
- control_flow_in_finally
- empty_statements
- hash_and_equals
- invariant_booleans
- literal_only_boolean_expressions
- no_adjacent_strings_in_list
- no_duplicate_case_values
Expand All @@ -40,7 +43,9 @@ linter:
- avoid_null_checks_in_equality_operators
- avoid_positional_boolean_parameters
- avoid_private_typedef_functions
- avoid_redundant_argument_values
# Does not always make sense to remove them; it also makes it hard
# to notice future breaking changes.
# - avoid_redundant_argument_values
- avoid_return_types_on_setters
- avoid_returning_null_for_void
- avoid_shadowing_type_parameters
Expand All @@ -64,7 +69,6 @@ linter:
- leading_newlines_in_multiline_strings
- library_names
- library_prefixes
- lines_longer_than_80_chars
- missing_whitespace_between_adjacent_strings
- non_constant_identifier_names
- null_closures
Expand All @@ -81,7 +85,6 @@ linter:
- prefer_const_declarations
- prefer_const_literals_to_create_immutables
- prefer_contains
- prefer_equal_for_default_values
- prefer_final_fields
- prefer_final_in_for_each
- prefer_final_locals
Expand Down
Loading
Loading