chore: publish attachment storage release v2.5.0
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
- `src/boss_control`:空占位目录,不参与当前运行
|
||||
- `src/boss_device_agent`:空占位目录,不参与当前运行
|
||||
|
||||
## 当前运行状态(2026-03-28)
|
||||
## 当前运行状态(2026-03-29)
|
||||
|
||||
本地:
|
||||
|
||||
@@ -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.4.0`(`versionCode=12`)
|
||||
- 当前最新 release 构建版本:`2.5.0`(`versionCode=13`)
|
||||
- 当前 APK 已切到原生 Android 客户端:`MainActivity + BossApiClient + 原生 XML 布局`
|
||||
- 当前原生活动页已经覆盖:会话首页、项目详情、项目目标、版本记录、会话信息、群资料、发起群聊、消息转发、线程详情、设备详情、添加设备、账号与安全、设置、AI 账号、技能、运维中心、关于
|
||||
- 当前原生一级体验已回退到微信式交互:`会话 / 设备 / 我的` 固定底部 tab,会话首页是简单聊天列表,`主 Agent / 审计对话` 以普通置顶会话样式排在最前;项目详情页是聊天优先,只保留 `项目目标 / 版本记录` 两个轻入口
|
||||
@@ -107,6 +107,7 @@ Android APK:
|
||||
- `2.2.1` 已继续补齐原生交互细节:聊天页发送后会先出现本地“发送中”气泡,关于页会展示 OTA 下载进度 / 重试 / 安装授权提示,根 tab 会记住用户上次停留位置并改成“再按一次返回进入后台”
|
||||
- `2.3.0` 已把会话模型切到“线程 = 聊天窗口”,补上文件夹名副信息、后台活跃数量动态图标、微信式会话信息页、线程改名、独立群聊创建、群资料页,以及 `主 Agent / 审计对话` 普通置顶会话化
|
||||
- `2.4.0` 已把消息转发切到微信式原生链路:聊天页支持长按消息操作、多选合并转发、统一目标会话选择页;单条消息转发显示为普通转发消息,多条消息转发显示为“聊天记录”卡片
|
||||
- `2.5.0` 已补齐聊天附件主链:原生聊天框左侧 `+` 会打开底部抽屉,支持图片 / 视频 / 文件发送;默认走服务器文件存储,`我的 > 附件与存储` 可切到阿里 OSS 私有桶;附件消息已支持下载 / 打开、手动分析、自动分析状态,以及带 task token 的主 Agent 附件分析链接
|
||||
|
||||
## 本地启动
|
||||
|
||||
@@ -287,6 +288,8 @@ npm run aab:release
|
||||
- `GET /api/v1/app-logs` 现在已支持登录态下按 `deviceId / projectId / level / category / source / cursor` 查询日志分页
|
||||
- 设备写接口 `POST /api/v1/app-logs`、`POST /api/v1/devices/[deviceId]/skills`、`POST /api/v1/workers/[workerId]/thread-context` 现在都要求有效设备 token 或匹配登录会话
|
||||
- 当前认证仍是 MVP:已有最小会话 Cookie,但还没有刷新令牌、跨端会话治理、吊销审计和 CSRF 防护
|
||||
- 当前图片 / 视频入口会写入消息账本,但真实文件上传还没有接对象存储
|
||||
- 聊天附件当前已支持真实上传、消息落账本、受保护下载和原生打开;默认存储后端为服务器文件存储
|
||||
- 当前用户已可在 `我的 > 附件与存储` 切到阿里 OSS 私有桶,下载链会按附件快照生成签名地址,避免用户后续修改配置后旧附件失效
|
||||
- 图片 / PDF / 文本默认自动进入主 Agent 附件分析;视频 / Office / 大文件默认手动触发
|
||||
- 当前采用“极轻云 + 本地设备端”的路线,云端只承载 Web、轻 API 和状态文件
|
||||
- 服务器侧主 Agent 对话能否返回真实大模型回复,依赖被绑定设备的 `local-agent` 在线并能执行 `codex exec`;服务器本身不直接持有主 GPT 会话
|
||||
|
||||
@@ -36,8 +36,8 @@ android {
|
||||
applicationId "com.hyzq.boss"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 12
|
||||
versionName "2.4.0"
|
||||
versionCode 13
|
||||
versionName "2.5.0"
|
||||
buildConfigField "String", "BOSS_API_BASE_URL", "\"https://boss.hyzq.net\""
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
@@ -35,6 +35,10 @@
|
||||
- `src/lib/boss-device-auth.ts`:设备 token / 登录会话混合鉴权辅助
|
||||
- `src/lib/boss-events.ts`:SSE 事件总线
|
||||
- `src/lib/boss-master-agent.ts`:主 Agent 真实回复链路、Master Codex Node relay 与 API 容灾逻辑
|
||||
- `src/lib/boss-attachments.ts`:附件类型识别、分析状态决策和下载头
|
||||
- `src/lib/boss-storage.ts`:附件存储抽象、配置校验和脱敏输出
|
||||
- `src/lib/boss-storage-server-file.ts`:服务器文件存储上传 / 读取
|
||||
- `src/lib/boss-storage-aliyun-oss.ts`:阿里 OSS 私有桶上传 / 签名下载
|
||||
- `src/lib/boss-ota.ts`:APK OTA 产物定位与元数据读取
|
||||
- `src/lib/boss-projections.ts`:当前聚合 BFF 投影视图
|
||||
- `src/components/app-runtime.tsx`:APP 日志桥、SSE 刷新和 Skill 面板
|
||||
@@ -51,6 +55,7 @@
|
||||
- `android/app/src/main/java/com/hyzq/boss/GroupInfoActivity.java`:原生群资料页,支持群名修改与成员查看
|
||||
- `android/app/src/main/java/com/hyzq/boss/GroupCreateActivity.java`:原生独立群聊创建页
|
||||
- `android/app/src/main/java/com/hyzq/boss/ForwardTargetActivity.java`:原生微信式会话选择页,承接单条转发与多选合并转发
|
||||
- `android/app/src/main/java/com/hyzq/boss/AttachmentComposerState.java`:原生附件发送确认规则与待上传附件模型
|
||||
- `android/app/src/main/java/com/hyzq/boss/DeviceDetailActivity.java`:原生设备详情与技能入口
|
||||
- `android/app/src/main/java/com/hyzq/boss/AiAccountsActivity.java`:原生 AI 账号管理页
|
||||
- `android/app/src/main/java/com/hyzq/boss/OpsCenterActivity.java`:原生运维 / 审计中心
|
||||
@@ -75,6 +80,11 @@
|
||||
- `GET /api/v1/projects/master-agent` 正常,主 Agent 项目页已能看到 APP 实时日志
|
||||
- `GET /api/v1/accounts` 正常,已返回主 GPT / 备用 GPT / API 容灾摘要
|
||||
- `GET /api/v1/devices/mac-studio/skills` 正常
|
||||
- `GET /api/v1/storage/config` 正常,已返回当前登录用户的附件存储模式和脱敏 OSS 摘要
|
||||
- `POST /api/v1/storage/config/validate` 正常,已验证可校验并保存阿里 OSS 私有桶配置
|
||||
- `POST /api/v1/projects/[projectId]/attachments` 正常,已支持图片 / 视频 / 文件上传与附件消息写入
|
||||
- `POST /api/v1/projects/[projectId]/attachments/[attachmentId]/analyze` 正常,已支持手动触发主 Agent 附件分析
|
||||
- `GET /api/v1/attachments/[attachmentId]/download` 正常,已支持会话鉴权下载和 task token 下载
|
||||
- `POST /api/auth/login` 正常,会写入 `boss_session`
|
||||
- `boss_session` 当前默认保持 30 天
|
||||
- `GET /api/auth/session` 正常
|
||||
@@ -118,6 +128,8 @@
|
||||
- 线程改名当前遵循微信最新逻辑:从聊天页右上角进入会话信息页,再进行改名
|
||||
- 当前已支持从单线程会话发起独立群聊:原会话保留,新群聊自动命名并可在群资料页改名
|
||||
- 当前已支持微信式消息转发:长按消息可直接 `转发 / 多选 / 复制 / 删除`,单条消息转发显示为普通转发消息,多条消息转发显示为聊天记录卡片
|
||||
- 当前已支持聊天附件主链:原生聊天框左侧 `+` 会打开底部抽屉,支持图片 / 视频 / 文件发送;图片 / PDF / 文本默认自动进入主 Agent 附件分析,视频 / Office / 大文件默认手动触发
|
||||
- 当前附件与存储配置页位于 `我的 > 附件与存储`:默认使用服务器文件存储,用户可按账号切到阿里 OSS 私有桶;下载链会优先使用附件上传时固化的 OSS 快照,避免用户后续改配置后旧附件失效
|
||||
- 主 Agent 项目页会实时吸收 APP 端日志,用于边对话边指导 APK / Web 优化
|
||||
- 移动端 UI 已去掉假的状态栏与桌面预览壳;底部一级导航固定在视口底部,返回逻辑不会再把 APP 根页直接弹回桌面
|
||||
- `项目目标` 支持用户编辑、主 Agent 复核、完成项自动划线
|
||||
@@ -139,7 +151,7 @@
|
||||
- 邮件:`Postfix + Dovecot`
|
||||
- Android:`AppCompatActivity + 原生 XML 布局 + HttpURLConnection`
|
||||
- 原生登录恢复:`SharedPreferences + restore token`
|
||||
- 当前最新原生 APK:`2.4.0`(`versionCode=12`)
|
||||
- 当前最新原生 APK:`2.5.0`(`versionCode=13`)
|
||||
|
||||
当前不要误判成已经用了:
|
||||
|
||||
@@ -193,7 +205,7 @@ npm run apk:debug
|
||||
- APP 实时日志同步、主 Agent 日志镜像、SSE 自动刷新和 Skill 同步页已经接通,但日志检索、告警和远程 Skill 管理仍未做
|
||||
- 数据库尚未替代文件存储
|
||||
- 域名入口的代理 / 分裂 DNS 结构仍未完全摸清
|
||||
- 图片 / 视频真实文件上传仍未接对象存储
|
||||
- 当前只支持服务器文件存储和阿里 OSS,尚未接更多对象存储或更丰富的附件详情页
|
||||
- 认证没有真实 session 和令牌吊销
|
||||
|
||||
## 9. 继续开发时的工作原则
|
||||
|
||||
@@ -50,6 +50,8 @@
|
||||
- 当前已经支持微信式消息转发:长按消息可直接 `转发 / 多选 / 复制 / 删除`
|
||||
- 当前多选模式会切换成微信式 `取消 + 已选数量 + 底部转发` 状态
|
||||
- 当前统一使用 `ForwardTargetActivity` 选择目标会话,替换旧的备注转发主链
|
||||
- 当前已支持聊天附件主链:输入框左侧 `+` 会打开底部抽屉,支持图片 / 视频 / 文件发送;图片 / 视频先确认,文件直接发送
|
||||
- 当前附件消息支持下载、原生打开、手动分析和自动分析状态展示
|
||||
- `线程详情 / 运维调试` 仍保留对应原生活动页,但已退出主聊天面
|
||||
- 当前已补上本地发送中气泡、发送按钮状态控制,以及“只有接近底部才自动滚到底”的消息流行为
|
||||
- 当前根页导航:
|
||||
@@ -124,6 +126,7 @@
|
||||
- `GET /devices/add`
|
||||
- `GET /me/security`
|
||||
- `GET /me/about`
|
||||
- `GET /me/storage`
|
||||
- `GET /me/ai-accounts`
|
||||
- `GET /me/ops`
|
||||
- `GET /me/ops/audit`
|
||||
@@ -389,6 +392,69 @@
|
||||
- 当前目标既可以是单线程会话,也可以是群聊、`主 Agent` 或 `审计对话`
|
||||
- 非开发任务下如命中线程沟通限制,接口会预留 `approvalRequired / approvalReason` 返回
|
||||
|
||||
#### `POST /api/v1/projects/[projectId]/attachments`
|
||||
|
||||
- 用途:上传图片 / 视频 / 文件,并在当前会话写入附件消息
|
||||
- 输入:
|
||||
- `file`
|
||||
- `sourceType`: `image | video | file`
|
||||
- 当前行为:
|
||||
- 默认使用当前登录用户的附件存储配置,未配置时走 `server_file`
|
||||
- 用户切到 `oss + aliyun_oss` 后,会上传到阿里 OSS 私有桶,并在附件里固化 `storageSnapshot`
|
||||
- 图片 / PDF / 文本默认会生成 `queued_auto` 附件分析任务
|
||||
- 视频 / Office / 大文件默认标记为 `ready_manual`
|
||||
- 返回:
|
||||
- `message`
|
||||
- `attachment`
|
||||
- `analysisTask`
|
||||
- `downloadUrl`
|
||||
|
||||
#### `POST /api/v1/projects/[projectId]/attachments/[attachmentId]/analyze`
|
||||
|
||||
- 用途:手动触发某个附件的主 Agent 分析
|
||||
- 当前行为:
|
||||
- 仅允许对 `ready_manual` 或 `failed` 状态的附件重新发起
|
||||
- 返回新的 `attachment_analysis` 任务摘要
|
||||
|
||||
#### `GET /api/v1/attachments/[attachmentId]/download`
|
||||
|
||||
- 用途:受保护下载或预览附件
|
||||
- 当前保护:
|
||||
- 默认要求有效 `boss_session`
|
||||
- 对主 Agent 附件分析任务,支持 `taskId + token` 的受控下载
|
||||
- 当前行为:
|
||||
- `server_file` 会直接流式返回文件
|
||||
- `aliyun_oss` 会按附件上传时固化的 `storageSnapshot` 生成临时签名 URL 并跳转
|
||||
|
||||
#### `GET /api/v1/storage/config`
|
||||
|
||||
- 用途:读取当前登录用户的附件存储配置
|
||||
- 返回:
|
||||
- `mode`: `server_file | oss`
|
||||
- `ossProvider`
|
||||
- 已脱敏的 OSS 配置摘要
|
||||
|
||||
#### `PATCH /api/v1/storage/config`
|
||||
|
||||
- 用途:更新当前登录用户的附件存储模式或 OSS 草稿配置
|
||||
- 当前行为:
|
||||
- 默认模式为 `server_file`
|
||||
- 当前 OSS provider 仅支持 `aliyun_oss`
|
||||
|
||||
#### `POST /api/v1/storage/config/validate`
|
||||
|
||||
- 用途:校验并保存当前登录用户的阿里 OSS 配置
|
||||
- 最小配置字段:
|
||||
- `accessKeyId`
|
||||
- `accessKeySecret`
|
||||
- `bucket`
|
||||
- `endpoint`
|
||||
- `region`
|
||||
- `prefix`(可选)
|
||||
- 当前行为:
|
||||
- 只支持阿里 OSS 私有桶 + 签名 URL
|
||||
- 成功后会回写已脱敏配置和验证时间
|
||||
|
||||
#### `POST /api/v1/projects/[projectId]/goals`
|
||||
|
||||
- 用途:新增项目目标
|
||||
@@ -601,6 +667,7 @@
|
||||
- `authSessions`
|
||||
- `aiAccounts`
|
||||
- `aiAccountSwitchHistory`
|
||||
- `userAttachmentStorageConfigs`
|
||||
- `threadContextSnapshots`
|
||||
- `threadHandoffPackages`
|
||||
- `threadContextAlerts`
|
||||
@@ -623,5 +690,6 @@
|
||||
|
||||
- 正式数据库
|
||||
- 正式鉴权中间件
|
||||
- 图片 / 视频真实文件上传和对象存储
|
||||
- 多家对象存储适配(当前只有服务器文件存储和阿里 OSS)
|
||||
- 完整的附件详情页与富预览器
|
||||
- 完整的多端用户会话系统与刷新令牌体系
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Boss 当前运行与部署状态
|
||||
|
||||
更新时间:`2026-03-28`
|
||||
更新时间:`2026-03-29`
|
||||
|
||||
## 1. 本地状态
|
||||
|
||||
@@ -114,7 +114,7 @@ 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.4.0`(`versionCode=12`)
|
||||
- 当前最新 release 构建版本:`2.5.0`(`versionCode=13`)
|
||||
- 当前 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`
|
||||
@@ -124,6 +124,9 @@ cd /Users/kris/code/boss
|
||||
- `2.2.1` 已继续补齐原生交互细节:聊天页会即时显示本地“发送中”气泡,并且只在用户接近底部或本次发送主动触发时自动滚到底;关于页会显示 OTA 下载进度 / 重试 / 安装授权提示,离开后再回来仍会恢复本地下载状态;根 tab 会记住最近一次用户停留页,并把一级页返回逻辑收成“先回会话 tab,再按一次返回进入后台”
|
||||
- `2.3.0` 已把原生会话模型切到“线程 = 聊天窗口”:补上文件夹名副信息、后台活跃数量动态图标、微信式会话信息页、线程改名、独立群聊创建、群资料页,以及 `主 Agent / 审计对话` 普通置顶会话化
|
||||
- `2.4.0` 已把原生消息转发切到微信式链路:单条消息支持长按直接转发,多选消息支持合并转发成聊天记录卡片,统一使用原生会话选择页替换旧的备注转发页
|
||||
- `2.5.0` 已补齐聊天附件主链:原生聊天框左侧 `+` 已改成底部抽屉,支持图片 / 视频 / 文件发送;图片 / PDF / 文本会自动排队给主 Agent 分析,视频 / Office / 大文件改成手动触发
|
||||
- `2.5.0` 已上线 `我的 > 附件与存储`:默认使用服务器文件存储,用户可切到阿里 OSS 私有桶并填写最小配置;下载链会使用附件上传时固化的 OSS 快照,避免后续改配置后旧附件失效
|
||||
- 当前附件分析任务已带受控 `task token` 下载链接和文本摘录:本地开发环境会跟随请求 origin 生成链接,生产环境默认走 `https://boss.hyzq.net`
|
||||
|
||||
## 2. 服务器状态
|
||||
|
||||
@@ -207,7 +210,7 @@ cd /Users/kris/code/boss
|
||||
- API 容灾当前由用户在 APP 的 `我的 > AI 账号` 页面自行配置 `OpenAI API` 账号,不再依赖服务器预置 Key
|
||||
- 原生 Android 的二级深层页虽然仍保留 `ProjectForwardActivity / ThreadDetailActivity / OpsCenterActivity` 等能力,但它们已经退出主 UI 正面;后续如再加入口,需继续遵守“一级微信式,复杂能力下沉”的规则
|
||||
- Android 本地 Gradle 验证当前必须串行执行;如果并发跑 `testDebugUnitTest / compileDebugJavaWithJavac / assembleDebug`,会导致中间产物互踩并出现假失败
|
||||
- 图片 / 视频真实文件上传仍未接对象存储
|
||||
- 聊天附件当前已经支持真实上传、消息落账本、受保护下载和原生打开;默认后端为服务器文件存储,可按用户切到阿里 OSS 私有桶
|
||||
- 认证虽然已有最小会话 Cookie,但还没有刷新令牌、跨端会话治理、CSRF 防护和更细的风控策略
|
||||
- 邮件对外正式投递仍缺少 DNS / 信誉相关的最终收口,例如 SPF、DKIM、DMARC、MX 与退信策略
|
||||
- 外部真实邮箱的 end-to-end 收件链路还没有在生产账号上完成最终验收
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"artifactType": "aab",
|
||||
"fileName": "boss-android-v2.4.0-release.aab",
|
||||
"urlPath": "/downloads/boss-android-v2.4.0-release.aab",
|
||||
"sizeBytes": 2894817,
|
||||
"updatedAt": "2026-03-28T00:59:18Z",
|
||||
"sha256": "beaca830a470bb5af180cb75dff60fc9e2039f10214480ae0cd7503bd793af22",
|
||||
"versionName": "2.4.0",
|
||||
"versionCode": 12,
|
||||
"fileName": "boss-android-v2.5.0-release.aab",
|
||||
"urlPath": "/downloads/boss-android-v2.5.0-release.aab",
|
||||
"sizeBytes": 2906325,
|
||||
"updatedAt": "2026-03-29T09:19:37Z",
|
||||
"sha256": "e230a1e0eae8e1e6d264f11feb3125ff40661dc2e049e18d8f683c3571e3a568",
|
||||
"versionName": "2.5.0",
|
||||
"versionCode": 13,
|
||||
"buildFlavor": "release"
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"fileName": "boss-android-v2.4.0-release.apk",
|
||||
"fileName": "boss-android-v2.5.0-release.apk",
|
||||
"urlPath": "/api/v1/user/ota/package",
|
||||
"sizeBytes": 3071649,
|
||||
"updatedAt": "2026-03-28T00:59:14Z",
|
||||
"sha256": "34831f13e8458fe668f7358c6a0d37d39430d3b8002a6c998b445b40f99e3672",
|
||||
"versionName": "2.4.0",
|
||||
"versionCode": 12,
|
||||
"sizeBytes": 3083087,
|
||||
"updatedAt": "2026-03-29T09:20:05Z",
|
||||
"sha256": "92183a0ebed80da5e363ffcd8e41a4acfd650aac76072ac5a4e432af5902f59f",
|
||||
"versionName": "2.5.0",
|
||||
"versionCode": 13,
|
||||
"buildFlavor": "release"
|
||||
}
|
||||
|
||||
BIN
public/downloads/boss-android-v2.5.0-release.aab
Normal file
BIN
public/downloads/boss-android-v2.5.0-release.aab
Normal file
Binary file not shown.
BIN
public/downloads/boss-android-v2.5.0-release.apk
Normal file
BIN
public/downloads/boss-android-v2.5.0-release.apk
Normal file
Binary file not shown.
Reference in New Issue
Block a user