# mobile-next 官方固定基线（docs/upstream）

## 上游来源与固定版本

| 项 | 值 |
|---|---|
| 上游仓库 | `https://github.com/OpenIMSDK/openim-flutter-demo.git` |
| 固定标签 | `3.8.3-patch.3` |
| 固定提交 | `b3dfdb1e8aaeaaf6f0793e10cadd20d5c184a31f`（"Updated IM SDK"，2025-03-07） |
| 校验方式 | `git ls-remote --tags` 解析 tag `^{}` 指向即上述提交 |
| 许可证 | OpenIM Open Source License（AGPL-3.0 + 附加条款），原文随导入保留在 `mobile-next/LICENSE`；子包 `openim_common/LICENSE`、`openim_live/LICENSE`、`local_plugin/flutter_openim_live_alert/LICENSE` |

> 必须固定在该提交，禁止追随上游 `main`。重建基线命令见 `docs/upstream/build-and-rollback.md`。

## 与本卡仓库（tongxunruanjian）的差异

基线在官方原版基础上只做了「必须才能构建/入库」的最小改动，**业务代码零改动**。与上游提交 `b3dfdb1e` 整树比对（`git diff b3dfdb1e 8046ec7:mobile-next`）的实际差异如下。

| 项 | 差异 | 说明 |
|---|---|---|
| `mobile-next/pubspec.lock` | `flutter_openim_sdk` 由锁文件 `3.8.3+2` 对齐为 `3.8.3+3` | `flutter pub get` 按 `pubspec.yaml` 声明 `3.8.3+3` 重新解析；上游锁文件落后于 pubspec。属官方产物，已披露。 |
| 6 个 `.dart` 文件 | 仅文件模式/权限位变化，blob 哈希完全相同 | 内容零改动，不属于业务差异。 |
| `.DS_Store` | 上游工作树中的 macOS 垃圾文件未随导入入库 | 删除/忽略，无源码改动。 |
| `mobile-next/.gitignore` | **与上游完全一致** | Flutter 构建产物忽略规则加在了**仓库根** `.gitignore`，不是 `mobile-next/.gitignore`。 |

除上表外，`mobile-next/` 与上游提交 `b3dfdb1e` 的跟踪内容一致（不含 `.git`、`build/`、`.dart_tool/` 等非跟踪内容）。**不存在未披露的业务改动。**

## 工具链锁定

| 工具 | 版本 | 位置 |
|---|---|---|
| Flutter | 3.24.5 stable（revision `dec2ee5c1f`，engine `a18df97ca5`） | `C:\flutter324` |
| Dart | 3.5.4（随 Flutter 3.24.5 分发） | 同上 |
| Java / JDK | Temurin 17.0.20+8 | `toolchain\jdk17` |
| Gradle | 7.6.3（`mobile-next/android/gradle/wrapper/gradle-wrapper.properties` 锁定） | 自动下载缓存 |
| Android Gradle Plugin | 7.3.1（`mobile-next/android/build.gradle`） | - |
| Kotlin | 1.9.23（`mobile-next/android/build.gradle` `ext.kotlin_version`） | - |
| compileSdk / targetSdk / minSdk | 34 / 33 / 24（`mobile-next/android/app/build.gradle`） | - |
| build-tools | 36.0.0 | Android SDK |
| 依赖锁文件 | `mobile-next/pubspec.lock` | 已入库 |

### 关键依赖（对照）

| 依赖 | 版本 | 说明 |
|---|---|---|
| `flutter_openim_sdk` | 3.8.3+3（基线自带，仅对照）；兼容门禁目标 `3.8.3+hotfix.12`（SDK 接入提交） | 升级差异见 SDK 接入提交与 `docs/acceptance/sdk-compat-gate.md` |
| `livekit_client` | 2.2.5（上游自带，仅对照；正式迁移不采用，保留现有 2.5.0+hotfix.3） | 不随本卡迁移 |
| `flutter_webrtc` / `dart_webrtc` | 0.12.10 / 1.5.2+hotfix.1（上游自带，仅对照） | 不随本卡迁移 |

## 许可证状态与门禁

- 本卡只构建并保留 OpenIM 标识与许可证的官方基线，不做「畅联」换标，不产出/发布试用或生产安装包。
- AGPL-3.0 附加条款（禁止未经授权的商业使用、禁止删除/修改/隐藏 OpenIM LOGO 与版权信息）的内部商用与换标边界，尚未取得书面结论；未确认前不得进入品牌迁移或对外/内部试用发布。

## 回退

- 基线导入提交：`git revert 8046ec7483d68f67011913da12e5e671479b5ff0`（本卡固定基线导入提交），可单独回退，不影响 `mobile/`、`pc-client/`、`account-service/` 与现网。
- 或直接删除并行目录：`git rm -r mobile-next`。
