diff --git a/README.md b/README.md index 6fe3c42..2c98edb 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ Android APK: - 已生成 Android debug APK:`android/app/build/outputs/apk/debug/app-debug.apk` - 已生成 Android signed release APK:`android/app/build/outputs/apk/release/app-release.apk` - `npm run apk:release` 还会额外产出带版本号的文件:`android/app/build/outputs/apk/release/boss-android-v{versionName}-release.apk` -- 当前最新 release 构建版本:`2.2.0`(`versionCode=9`) +- 当前最新 release 构建版本:`2.2.1`(`versionCode=10`) - 当前 APK 已切到原生 Android 客户端:`MainActivity + BossApiClient + 原生 XML 布局` - 当前原生活动页已经覆盖:会话首页、项目详情、项目目标、版本记录、消息转发、线程详情、设备详情、添加设备、账号与安全、设置、AI 账号、技能、运维中心、关于 - 当前原生一级体验已回退到微信式交互:`会话 / 设备 / 我的` 固定底部 tab,会话首页是简单聊天列表,项目详情页是聊天优先,只保留 `项目目标 / 版本记录` 两个轻入口 @@ -100,6 +100,7 @@ Android APK: - `2.1.0` 已在本机连接的华为真机上完成签名包覆盖安装与启动复核,原生三栏入口和子活动页声明已全部接通 - `2.1.1` 已补上原生 OTA 下载链路:关于页会直接请求受保护的 `/api/v1/user/ota/package`,下载完成后可拉起系统安装器 - `2.2.0` 已把原生 UI 从控制台风格回退到微信式简单列表和聊天优先视图,并复核了设备页 / 我的页 / 深层高级入口 +- `2.2.1` 已继续补齐原生交互细节:聊天页发送后会先出现本地“发送中”气泡,关于页会展示 OTA 下载进度 / 重试 / 安装授权提示,根 tab 会记住用户上次停留位置并改成“再按一次返回进入后台” ## 本地启动 @@ -250,6 +251,7 @@ npm run aab:release - APP 日志桥已经改成会话感知:只会按当前登录账号解析绑定设备,不再在未登录页默认按全局管理员设备写日志 - APP 外壳已经从“桌面预览卡片”切回真机态:移动端不再渲染假的 `9:41 / 5G` 状态栏,底部 `会话 / 设备 / 我的` 导航固定在视口底部,背景改为全屏 cover,不再出现圆角矩形外壳 - 原生 Android 当前也和这套产品口径对齐:根页采用微信式简单列表,项目聊天页改成消息流优先,`设备 / 我的` 页不再展示控制台式统计卡片 +- 原生聊天页当前会即时渲染本地发送中消息,并且只有在用户接近底部或本次发送是主动触发时才自动滚到底 - 登录成功后的进入首页链路已做稳态处理:会先确认 `/api/auth/session` 可读,再执行 `replace(/conversations)`,并附带一次原生级兜底跳转,避免真机 WebView 偶发停留在“正在进入会话首页” - `/api/v1/events` 已作为 SSE 出口使用,会话页、设备页、技能页和项目详情页会按事件自动刷新,不再只靠手动刷新 - 我的页新增 `技能` 入口,`/me/skills` 会按设备分组展示 Skill,并支持一键复制调用语句 @@ -266,6 +268,8 @@ npm run aab:release - `POST /api/auth/send-code` 与固定验证码 `000000` 仍保留给注册 / 重置密码和后续认证收口,不作为当前登录页前置条件 - 新注册和重置密码现在使用 `scrypt` 哈希;历史 `sha256` 密码会在下一次密码登录时自动迁移 - 原生 Android 当前把 `ProjectForwardActivity / ThreadDetailActivity / OpsCenterActivity` 等复杂能力下沉到二级或更深层入口,不再把线程预算 / 转发 / 运维说明堆在主聊天页和一级我的页 +- 原生 OTA 当前除了整包下载和系统安装器拉起,还会在关于页保留本地下载状态;离开关于页再回来时,仍能看到进行中 / 失败 / 待授权 / 可安装状态 +- Android 本地 Gradle 验证当前必须串行执行,避免并发 `testDebugUnitTest / compileDebugJavaWithJavac / assembleDebug` 相互踩坏中间产物 - 当前默认最高管理员账号:`17600003315` - 当前默认测试密码:`boss123456` - 当前本机 Codex 节点 `mac-studio` 已绑定到 `17600003315` diff --git a/android/app/build.gradle b/android/app/build.gradle index bb24e02..20763b7 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -33,8 +33,8 @@ android { applicationId "com.hyzq.boss" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 9 - versionName "2.2.0" + versionCode 10 + versionName "2.2.1" buildConfigField "String", "BOSS_API_BASE_URL", "\"https://boss.hyzq.net\"" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/docs/architecture/ai_handoff_index_cn.md b/docs/architecture/ai_handoff_index_cn.md index f106be1..c295dee 100644 --- a/docs/architecture/ai_handoff_index_cn.md +++ b/docs/architecture/ai_handoff_index_cn.md @@ -133,7 +133,7 @@ - 邮件:`Postfix + Dovecot` - Android:`AppCompatActivity + 原生 XML 布局 + HttpURLConnection` - 原生登录恢复:`SharedPreferences + restore token` -- 当前最新原生 APK:`2.2.0`(`versionCode=9`) +- 当前最新原生 APK:`2.2.1`(`versionCode=10`) 当前不要误判成已经用了: diff --git a/docs/architecture/api_and_service_inventory_cn.md b/docs/architecture/api_and_service_inventory_cn.md index e9caf7a..5a62beb 100644 --- a/docs/architecture/api_and_service_inventory_cn.md +++ b/docs/architecture/api_and_service_inventory_cn.md @@ -42,9 +42,14 @@ - `ProjectDetailActivity` 已改成聊天优先布局 - 主面只保留 `项目目标 / 版本记录` - `消息转发 / 线程详情 / 运维调试` 仍保留对应原生活动页,但已退出主聊天面 + - 当前已补上本地发送中气泡、发送按钮状态控制,以及“只有接近底部才自动滚到底”的消息流行为 +- 当前根页导航: + - `MainActivity` 会记住最近一次停留的 `会话 / 设备 / 我的` tab + - 根页返回逻辑已改成“先回会话 tab,再按一次返回进入后台” - 当前 `关于` 页: - 保留版本与 OTA 操作 - 新增深层 `高级与调试` 入口,用于进入 `OpsCenterActivity` + - 当前已补上 OTA 下载进度、失败重试、安装授权提示和返回关于页后的本地状态恢复 - 当前登录:临时免验证,点击登录直接创建最高管理员会话 - 当前会话恢复:`SharedPreferences` 中保存 `boss_session / restore_token / account` diff --git a/docs/architecture/current_runtime_and_deploy_status_cn.md b/docs/architecture/current_runtime_and_deploy_status_cn.md index 77b49c4..caba540 100644 --- a/docs/architecture/current_runtime_and_deploy_status_cn.md +++ b/docs/architecture/current_runtime_and_deploy_status_cn.md @@ -109,13 +109,14 @@ cd /Users/kris/code/boss - 当前已生成 Android debug APK:`android/app/build/outputs/apk/debug/app-debug.apk` - 当前已生成 Android signed release APK:`android/app/build/outputs/apk/release/app-release.apk` - 当前 release 构建还会额外生成带版本号的 APK:`android/app/build/outputs/apk/release/boss-android-v{versionName}-release.apk` -- 当前最新 release 构建版本:`2.2.0`(`versionCode=9`) +- 当前最新 release 构建版本:`2.2.1`(`versionCode=10`) - 当前 release keystore 位于本机 `android/keystores/boss-release.keystore`,签名参数位于 `android/signing/release-signing.properties` - `2.0.1` 已在本机连接的华为真机上复核通过,修复了 `Theme.SplashScreen` 导致的 `AppCompatActivity` 启动闪退 - `2.1.0` 已把 Web 一级页和主要二级页全部补成原生活动页:`MainActivity / ProjectDetailActivity / ProjectGoalsActivity / ProjectVersionsActivity / ProjectForwardActivity / ThreadDetailActivity / DeviceDetailActivity / DeviceEnrollmentActivity / SkillInventoryActivity / SecurityActivity / SettingsActivity / AiAccountsActivity / OpsCenterActivity / AboutActivity` - `2.1.0` 已完成签名包覆盖安装到本机连接的华为真机,并确认 `com.hyzq.boss` 可以成功拉起进程 - `2.1.1` 已补上原生 OTA 下载安装引导、`REQUEST_INSTALL_PACKAGES` 权限声明,以及根页默认入口/返回逻辑收口 - `2.2.0` 已把原生 UI 回退到微信式交互:会话首页改为简单聊天列表,项目详情页改为聊天优先,只保留 `项目目标 / 版本记录` 两个轻入口,设备页和我的页根面改为简单列表,`高级与调试` 已下沉到 `关于` +- `2.2.1` 已继续补齐原生交互细节:聊天页会即时显示本地“发送中”气泡,并且只在用户接近底部或本次发送主动触发时自动滚到底;关于页会显示 OTA 下载进度 / 重试 / 安装授权提示,离开后再回来仍会恢复本地下载状态;根 tab 会记住最近一次用户停留页,并把一级页返回逻辑收成“先回会话 tab,再按一次返回进入后台” ## 2. 服务器状态 @@ -198,6 +199,7 @@ cd /Users/kris/code/boss - 服务器侧主 Agent 实时回复依赖被绑定设备的 `local-agent` 在线并能执行 `codex exec`;如果设备离线,只能保留任务或走 API 容灾账号 - API 容灾当前由用户在 APP 的 `我的 > AI 账号` 页面自行配置 `OpenAI API` 账号,不再依赖服务器预置 Key - 原生 Android 的二级深层页虽然仍保留 `ProjectForwardActivity / ThreadDetailActivity / OpsCenterActivity` 等能力,但它们已经退出主 UI 正面;后续如再加入口,需继续遵守“一级微信式,复杂能力下沉”的规则 +- Android 本地 Gradle 验证当前必须串行执行;如果并发跑 `testDebugUnitTest / compileDebugJavaWithJavac / assembleDebug`,会导致中间产物互踩并出现假失败 - 图片 / 视频真实文件上传仍未接对象存储 - 认证虽然已有最小会话 Cookie,但还没有刷新令牌、跨端会话治理、CSRF 防护和更细的风控策略 - 邮件对外正式投递仍缺少 DNS / 信誉相关的最终收口,例如 SPF、DKIM、DMARC、MX 与退信策略 diff --git a/public/downloads/boss-android-latest-aab.json b/public/downloads/boss-android-latest-aab.json index 9a48bd2..fc60050 100644 --- a/public/downloads/boss-android-latest-aab.json +++ b/public/downloads/boss-android-latest-aab.json @@ -1,11 +1,11 @@ { "artifactType": "aab", - "fileName": "boss-android-v2.2.0-release.aab", - "urlPath": "/downloads/boss-android-v2.2.0-release.aab", - "sizeBytes": 2856550, - "updatedAt": "2026-03-27T05:35:23Z", - "sha256": "897f9620bcab202817e530874517eb755837f79ff927fba0128c8e96742cbdd6", - "versionName": "2.2.0", - "versionCode": 9, + "fileName": "boss-android-v2.2.1-release.aab", + "urlPath": "/downloads/boss-android-v2.2.1-release.aab", + "sizeBytes": 2864252, + "updatedAt": "2026-03-27T07:43:43Z", + "sha256": "3f9fec6fa5279fa703436dac6e9d7d0390bf52265c5529306e1e02fab919dc5c", + "versionName": "2.2.1", + "versionCode": 10, "buildFlavor": "release" } diff --git a/public/downloads/boss-android-latest.aab b/public/downloads/boss-android-latest.aab index fc4ce4f..5ead325 100644 Binary files a/public/downloads/boss-android-latest.aab and b/public/downloads/boss-android-latest.aab differ diff --git a/public/downloads/boss-android-latest.apk b/public/downloads/boss-android-latest.apk index 8865655..3cd25ea 100644 Binary files a/public/downloads/boss-android-latest.apk and b/public/downloads/boss-android-latest.apk differ diff --git a/public/downloads/boss-android-latest.json b/public/downloads/boss-android-latest.json index f282d5d..515388b 100644 --- a/public/downloads/boss-android-latest.json +++ b/public/downloads/boss-android-latest.json @@ -1,10 +1,10 @@ { - "fileName": "boss-android-v2.2.0-release.apk", + "fileName": "boss-android-v2.2.1-release.apk", "urlPath": "/api/v1/user/ota/package", - "sizeBytes": 3037496, - "updatedAt": "2026-03-27T05:35:21Z", - "sha256": "7bf501d24d15f7c0a8cc7757e48514c7b92c4956fd7695736cb99d01406c391a", - "versionName": "2.2.0", - "versionCode": 9, + "sizeBytes": 3043187, + "updatedAt": "2026-03-27T07:43:25Z", + "sha256": "86b2ef0d455fb289ce7eafdec75f5006c241f4db5bff94b7ccb36d4998ff40ef", + "versionName": "2.2.1", + "versionCode": 10, "buildFlavor": "release" } diff --git a/public/downloads/boss-android-v2.2.1-release.aab b/public/downloads/boss-android-v2.2.1-release.aab new file mode 100644 index 0000000..5ead325 Binary files /dev/null and b/public/downloads/boss-android-v2.2.1-release.aab differ diff --git a/public/downloads/boss-android-v2.2.1-release.apk b/public/downloads/boss-android-v2.2.1-release.apk new file mode 100644 index 0000000..3cd25ea Binary files /dev/null and b/public/downloads/boss-android-v2.2.1-release.apk differ