chore: publish attachment storage release v2.5.0

This commit is contained in:
kris
2026-03-29 17:22:07 +08:00
parent 5fb75b50b4
commit e051a49f7a
11 changed files with 110 additions and 24 deletions

View File

@@ -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. 继续开发时的工作原则

View File

@@ -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
- 完整的附件详情页与富预览器
- 完整的多端用户会话系统与刷新令牌体系

View File

@@ -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 收件链路还没有在生产账号上完成最终验收