Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 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
cc8eb16
feat(samples): implement `SampleAppConfig` and modernize UI architech…
xsahil03x Apr 16, 2026
9eaa4a9
refactor(ui): attachment upload and gallery improvements (#2612)
xsahil03x Apr 16, 2026
7107dc7
feat(ui): Simplify icon set (#2619)
renefloor Apr 16, 2026
0f532ff
fix(ui): increase max width for ephemeral Giphy messages (#2615)
xsahil03x Apr 16, 2026
9a1d8a4
refactor(ui): redesign and modernize poll creator components (#2611)
xsahil03x Apr 16, 2026
ca78f2f
fix(ui): qa issues (#2620)
xsahil03x Apr 16, 2026
ac3528a
chore(ui): Cleanup message theme and usages (#2621)
renefloor Apr 17, 2026
29750a3
chore(ui): Cleanup channel preview theme (#2622)
renefloor Apr 17, 2026
97f7614
fix(ui, core, localizations): more QA fixes (#2624)
xsahil03x Apr 21, 2026
fa064e3
refactor(ui): reduce max visible option count for polls to 5 (#2627)
xsahil03x Apr 21, 2026
1a9bcba
feat(ui): thread list banner redesign (#2608)
Brazol Apr 23, 2026
65e68b7
Added exports for theming support (#2628)
renefloor Apr 23, 2026
ac860fb
docs(ui): screenshots (#2559)
renefloor Apr 23, 2026
a813128
fix(ui, persistence, samples): more QA fixes (#2629)
xsahil03x Apr 28, 2026
d0d1d74
feat(ui, localization): redesign poll dialogs as modal bottom sheets …
xsahil03x Apr 28, 2026
8a514fa
docs(ui): update screenshots (#2631)
renefloor Apr 28, 2026
e1417b2
refactor(ui): migrate poll sheets to showStreamSheet (#2634)
xsahil03x Apr 29, 2026
45dde33
docs(ui): screenshot background (#2635)
renefloor Apr 30, 2026
c2cdf29
fix(llc, core, ui, localization): latest QA (#2636)
xsahil03x May 1, 2026
9ddf688
refactor(sample, ui): redesign channel info and detail sheet (#2638)
xsahil03x May 7, 2026
85c6b10
fix(llc, ui, sample): more v10 QA fixes (#2640)
xsahil03x May 8, 2026
4a22a44
refactor(ui, sample)!: align message item naming with android and ios…
xsahil03x May 12, 2026
76a4adf
feat(ui): Move draftlist from sdk to sample app. (#2637)
renefloor May 12, 2026
dfc9213
feat(UI): rename message input (#2642)
renefloor May 13, 2026
3fbd3a8
fix(ui, core): rename input controller to composer controller (#2646)
renefloor May 15, 2026
8bfb68b
refactor(ui, localization, sample)!: redesign media viewer (#2645)
xsahil03x May 15, 2026
a58afdb
chore(deps)!: bump dep floors, widen plus-plugin majors, migrate file…
xsahil03x May 18, 2026
b73bb71
chore(ui): theme cleanup (#2663)
Brazol May 20, 2026
95c77b8
feat(ui): Improve slow mode UI (#2666)
renefloor May 20, 2026
3e5f7d8
fix(llc): require attachment fileSize only when there is a file (#2673)
Brazol May 20, 2026
ea29e6d
docs(ui): make docs snapshots authentic to the production SDK (#2676)
xsahil03x May 21, 2026
101cf0f
chore(sample): Set appversion to main sdk version (#2678)
renefloor May 21, 2026
7ae7874
Feat(ui): simplify messagelist constructor (#2674)
renefloor May 21, 2026
29fc127
docs(ui): showcase, localization, theming, and composer snapshots (#2…
renefloor May 21, 2026
427609a
chore(repo): merge master into v10.0.0 (#2682)
xsahil03x May 26, 2026
0f435f5
Add snapshots for autocomplete (#2687)
renefloor May 27, 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
  •  
  •  
  •  
218 changes: 218 additions & 0 deletions .claude/skills/release-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
---
name: release-pr
description: >
Open a release PR: bumps versions in melos.yaml and pubspecs, finalises CHANGELOGs, opens a PR with auto-generated
release notes against master (stable) or v10.0.0 (beta).
disable-model-invocation: true
argument-hint: "[version]"
arguments: [version]
allowed-tools:
- Bash(git *)
- Bash(gh *)
- Bash(melos *)
- Bash(which *)
- Bash(grep *)
- Read
- Edit
- Write
---

# release-pr

Opens a release PR for stream-chat-flutter. Branch `release/v<X.Y.Z>` → base `master` (stable) or `v10.0.0` (beta) →
title `chore(repo): release v<X.Y.Z>`.

**This skill only opens the PR.** After merge, tagging and pub.dev publishing happen via `release_tag.yml` +
`release_publish.yml` (stable: automatic; beta/named: maintainer pushes the tag manually).

If `$version` is provided (e.g. `/release-pr 9.24.0`), use it. Strip any leading `v`. Otherwise ask the user.

## Release types

| Type | Base | Version shape | Tagging |
|---|---|---|---|
| **Stable** | `master` | `X.Y.Z` | Auto via `release_tag.yml` on merge |
| **Beta** | `v10.0.0` | `X.Y.Z-beta.N` | Manual (`release_tag.yml` only watches master) |
| **Named pre-release** | feature branch | `X.Y.Z-<name>.N` | Manual; same as beta |

`distribute_internal.yml` builds sample apps for branches like `feat/design-refresh` — **not** a release. Don't use
this skill for those.

## Inputs

1. **Version** (`X.Y.Z` or `X.Y.Z-suffix`). Use `$version` if supplied, otherwise ask. Don't infer.
2. **Base branch** — auto-derive from `$version`:
- No suffix (`X.Y.Z`) → `master`. Stable release.
- `-beta.N` suffix → `v10.0.0`. Verify it exists: `git ls-remote --heads origin v10.0.0`.
- Any other suffix (`-alpha.N`, `-rc.N`, `-design-refresh.N`, …) → ask the user which feature branch to target.
3. **Previous tag** for the release-notes diff. Run `gh release list --limit 10`; pick the most recent tag of the same
train (stable = no hyphen in tag; beta = matches `-beta.`; named = matches the same suffix prefix).

## Pre-flight

Run these checks. **If any fail, stop the skill, surface the failing check to the user, and do not try to auto-fix**
(no stashing uncommitted work, no force-pulling, no killing processes).

- `git status --short -uno` clean after `git checkout <base>` + `git pull --ff-only`.
- `which melos` succeeds.
- `gh auth status` succeeds.
- `gh pr list --head release/v<version> --state all --json number` returns `[]`.
- Latest CI on the base-branch tip is green: `gh run list --branch <base> --limit 5` — no failures on the most
recent runs.

## Steps

### 1. Branch off the chosen base

Pre-flight already left you on `<base>` with latest. Just create the release branch:

```bash
git checkout -b release/v<version>
```

### 2. Bump versions

Edit two sets of files by hand, then let `melos bs` propagate the rest.

**Edit:**

- `melos.yaml` — in the `command.bootstrap.environment.dependencies` block, bump all five `stream_chat*: ^<version>`
entries. Locate with `grep -n "^ stream_chat" melos.yaml`.
- Each `packages/*/pubspec.yaml` (5 files) — set `version: <version>`. Do **not** touch
`packages/*/example/pubspec.yaml` or `sample_app/pubspec.yaml` `version:` fields; their deps are synced by
`melos bs`.

**Then run:**

```bash
melos bs
```

`melos bs` does the rest:

- Propagates the `melos.yaml` deps block into every workspace pubspec, including each package's intra-monorepo dep
constraints, every `packages/*/example/pubspec.yaml`, and `sample_app/pubspec.yaml`.
- Fires the `command.bootstrap.hooks.post: melos run version:update` hook, which runs `tools/generate_version.dart`
and regenerates `packages/stream_chat/lib/version.dart` from the new pubspec version.

Do **not** run `./tools/version.sh`. It calls `melos version` which leaves `melos.yaml`'s deps block stale — the next
`melos bs` would re-write every pubspec dep constraint back to the old version.

Verify the diff shape matches the previous release PR. Find its number with:

```bash
gh pr list --search "chore(repo): release in:title" --state merged --limit 5 --json number,title
```

Then compare:

```bash
git diff --stat
gh pr diff <prev-release-pr-number> --name-only # for comparison
```

### 3. Finalise the CHANGELOGs

Five files: `packages/{stream_chat, stream_chat_flutter, stream_chat_flutter_core, stream_chat_localizations,
stream_chat_persistence}/CHANGELOG.md`.

For each, **apply the first matching rule below** — it's a decision tree, not a sequence:

1. **Top section is `## Upcoming Changes` or `## Upcoming`** → rename to `## <version>`. Keep bullets.
2. **User-facing changes since `v<prev>`** — new APIs, bug fixes users would notice, deprecations. Check with
`git log v<prev>..HEAD --oneline -- packages/<pkg>`. Add a `## <version>` header with bullets in the existing
emoji-prefixed sections only (`✅ Added`, `🚀 Performance`, `🐞 Fixed`, `🔄 Changed`). Don't invent new
section names.
3. **Only `stream_chat` dep bump** (no in-package changes, but depends on `stream_chat`) → add the dep-bump line:
```
## <version>

- Updated `stream_chat` dependency to [`<version>`](https://pub.dev/packages/stream_chat/changelog).
```
4. **Anything else** (internal-only changes, test fixes, refactors, or truly nothing) → add `## <version>` +
`- Minor bug fixes and improvements`.

**Every package gets a `## <version>` header**, even if it's only a dep-bump line. Empty version sections and
missing headers both fail pana.

### 4. Sanity-check

```bash
melos run analyze
melos run lint:pub
```

If either fails, surface to the user and stop.

### 5. Commit and push

```bash
git add -A
git commit -m "chore(repo): release v<version>"
git push -u origin release/v<version>
```

Single commit. The message format is load-bearing: `release_tag.yml` parses `vX.Y.Z` from it after merge.

### 6. Generate the PR body

The body **must be exactly what GitHub's release UI produces when you click "Generate release notes"** — no template
wrapper, no extra description, no CLA checkboxes. The "New Contributors" block GitHub auto-appends stays in; that's
part of the convention.

```bash
gh api repos/GetStream/stream-chat-flutter/releases/generate-notes \
-f tag_name=v<version> \
-f previous_tag_name=v<previous> \
-f target_commitish=<base> \
--jq .body > /tmp/release-notes.md
```

- `tag_name`: the tag we'll create (need not exist yet).
- `previous_tag_name`: most recent tag of the same train (stable or beta).
- `target_commitish`: the **base branch** (`master` or `v10.0.0`), not the release branch — the notes should cover
every commit between `previous_tag_name` and where the tag will land after merge.

Read the file once to skim. If a PR title looks wrong, fix it on the originating PR upstream and re-run the API
call; don't hand-edit `/tmp/release-notes.md`.

### 7. Open the PR

```bash
gh pr create \
--base <base> \
--head release/v<version> \
--title "chore(repo): release v<version>" \
--body-file /tmp/release-notes.md
```

Return the PR URL.

**If this is a beta or named pre-release**, also include this reminder in your message to the user:

> After this PR merges, manually create and push the tag — `release_tag.yml` only fires on `master`:
> ```bash
> git checkout <base>
> git pull --ff-only
> git tag v<version>
> git push origin v<version>
> ```

For stable releases (base `master`), no reminder needed — `release_tag.yml` handles it on merge.

## After merge (FYI)

Stable (base `master`): `release_tag.yml` extracts `vX.Y.Z` from the commit, creates and pushes the tag.
`release_publish.yml` runs `melos run release:pub` and creates the GitHub release.

Beta / named pre-release: maintainer runs the tag commands surfaced at the end of step 7.

## Don't

- **Never create a GitHub release** (`gh release create`, `POST /repos/.../releases`). Step 6 uses
`generate-notes`, which is read-only. The release itself is created by `release_publish.yml` after the tag is
pushed.
- **Never push a tag.** Stable is automatic on merge; beta/named is the maintainer's manual step.
- **Never run `melos run release:pub`.** That's the publish step, triggered by the workflow on tag push. Even if the
user asks, refuse — running it locally publishes from an unreviewed working tree.
- **Never merge the PR.** Return the URL and stop.
2 changes: 1 addition & 1 deletion .github/actions/pana/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ inputs:
min_score:
required: false
type: number
default: 120
default: 100
pana_version:
required: false
type: string
Expand Down
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
41 changes: 32 additions & 9 deletions .github/workflows/check_db_entities.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,39 @@
name: check_db_entities

on:
on:
pull_request:
paths:
- 'packages/stream_chat_persistence/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
# Centralizes every gating decision for this workflow — currently just a
# path filter. Downstream jobs only need a single
# `if: needs.gate.outputs.should_run == 'true'`. A job skipped this way
# reports `success` to branch protection (vs. `on.paths` filtering, which
# hangs forever) — see
# https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks
gate:
runs-on: ubuntu-latest
outputs:
should_run: ${{ steps.filter.outputs.persistence }}
steps:
- name: 📥 Checkout
uses: actions/checkout@v6

- name: 🛤️ Detect Path Changes
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
persistence:
- 'packages/stream_chat_persistence/**'
- '.github/workflows/check_db_entities.yml'

check_entity_modifications:
needs: gate
if: needs.gate.outputs.should_run == 'true'
runs-on: ubuntu-latest
steps:
- name: 📥 Checkout
Expand All @@ -24,22 +47,22 @@ jobs:
ENTITY_DIR="packages/stream_chat_persistence/lib/src/entity"
TEMP_FILE="modified_entities"
BASE_BRANCH="${{ github.base_ref }}"

echo "Using base branch: origin/$BASE_BRANCH for comparison"

# Check if any entity files have changed compared to the base branch
git diff-index --name-only origin/$BASE_BRANCH -- $ENTITY_DIR | grep -E '\.dart$' > $TEMP_FILE || true

if [ ! -s "$TEMP_FILE" ]; then
echo "✅ No entity files changed."
echo "has_changes=false" >> $GITHUB_OUTPUT
rm $TEMP_FILE
exit 0
fi

echo "⚠️ Entity files modified:"
cat $TEMP_FILE

# Set modified files as output
echo "modified_files<<EOF" >> $GITHUB_OUTPUT
cat $TEMP_FILE >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -74,4 +97,4 @@ jobs:
2. Update entity schema tests if necessary.

*Note: This comment is automatically generated by the CI workflow.*
edit-mode: replace
edit-mode: replace
11 changes: 8 additions & 3 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,15 +102,21 @@ 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: "Disable Swift Package Manager"
run: flutter config --no-enable-swift-package-manager

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
Expand Down
Loading
Loading