From 1918e5738e20ea3f14a784067e6ac33b53e85d3f Mon Sep 17 00:00:00 2001 From: tongtongstudio Date: Mon, 3 Aug 2026 15:37:47 +0800 Subject: [PATCH] docs: add project AGENTS.md and Flutter AGENTS.md, fix appName MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加根目录 AGENTS.md 定义全仓工程总览及各端开发规范 - 添加 webrtc_controller_flutter/AGENTS.md 定义 Flutter 项目技术栈、架构与编码规范 - 修正 WebRTCController app/build.gradle 中 appName 返回值 --- AGENTS.md | 195 ++++++++++++++++++++++++++++ WebRTCController/app/build.gradle | 2 +- webrtc_controller_flutter/AGENTS.md | 165 +++++++++++++++++++++++ 3 files changed, 361 insertions(+), 1 deletion(-) create mode 100644 AGENTS.md create mode 100644 webrtc_controller_flutter/AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..210b524 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,195 @@ +# AGENTS.md — 项目全局规则 + +本仓库是一个 **WebRTC 远程控制系统** 的多端单体仓库(monorepo),包含 Android 被控端、多平台控制端(Android / iOS / Flutter / Web)、Spring Boot 信令服务器及其后台管理前端。 + +--- + +## 一、工程总览 + +| 目录 | 工程类型 | 主语言 | 构建工具 | 角色 | +|---|---|---|---|---| +| `WebRTCSignalServer/` | Spring Boot 后端 | Java 25 | Maven | 信令服务器 + REST API | +| `WebRTCSignalServerWeb/` | Vue3 SPA | TypeScript | Vite | 服务器后台管理前端 | +| `WebRTCControlled/` | Android App | Java | Gradle | **被控端**(投屏 + 接收指令) | +| `WebRTCController/` | Android App | Java | Gradle | **控制端**(观看 + 发送指令) | +| `webrtc_controller_flutter/` | Flutter App | Dart | Flutter CLI | 控制端(Android/iOS 跨平台) | +| `webrtc_controller_ios/` | iOS App | Swift 5 | Xcode + SPM | 控制端(原生 iOS) | +| `WebRTCControllerWeb/` | Vue3 SPA | JavaScript | Vite | 控制端(网页版) | +| `AdbLoopbackController/` | Android App | Java | Gradle | ADB 回环控制工具(独立) | +| `vue-vben-admin-origin/` | 第三方模板 | TypeScript | pnpm | **只读参考**,禁止修改 | + +--- + +## 二、各工程详细规则 + +### 1. `WebRTCSignalServer/` — 信令服务器 + +- **类型**:Spring Boot 4.1.0 应用,`spring-boot-starter-parent` +- **语言**:Java 25(`25`) +- **坐标**:`com.tt:webrtc-signal-server:1.0.0` +- **核心依赖**:`spring-boot-starter-websocket`、`starter-web`、`starter-data-jpa`(MySQL)、`starter-data-redis`、`starter-validation`、`spring-security-crypto`(仅 BCrypt 编码器,**不启用** Security 自动配置)、Jackson +- **测试**:`spring-boot-starter-test` + H2(无外部 MySQL 时上下文可启动) +- **构建**:`mvn clean package` / `mvn spring-boot:run` + +**AI 规则** +- 使用 Java 25 语法,可用 record、sealed、switch 模式匹配、文本块。 +- 持久化统一走 JPA Repository,不要手写 JDBC。 +- Redis 用于:在线状态、频控计数、nonce 去重、踢线广播。新增缓存需说明 key 规范与 TTL。 +- 密码只允许 BCrypt 编码,禁止明文或可逆加密存储。 +- 请求体参数校验统一使用 `jakarta.validation` 注解,不在 Controller 里手写 if 校验。 +- 不要引入 Spring Security 的完整过滤器链(当前设计是刻意只用 crypto 模块)。 +- 信令协议改动必须同步更新所有客户端(Android / iOS / Flutter / Web)。 + +### 2. `WebRTCSignalServerWeb/` — 后台管理前端 + +- **类型**:Vue 3 SPA,ESM(`"type": "module"`) +- **技术栈**:Vue `^3.5.12` + TypeScript `^5.6.3` + Vite `^5.4.10` + Pinia `^2.2.4` + Vue Router `^4.4.5` + Element Plus `^2.8.4` + ECharts `^5.5.1` + axios `^1.7.7` +- **脚本**:`npm run dev` / `npm run build`(含 `vue-tsc --noEmit`)/ `npm run preview`(端口 5180) + +**AI 规则** +- 统一使用 `