Releases: TokenRollAI/tool-bridge-mobile
Release list
Tool Bridge Mobile v0.0.11 (Preview)
Tool Bridge Mobile v0.0.11(Preview)
Preview:修复真实远程拍照完成后无法交付对象,并升级 Tool Bridge device SDK;不是 production、
App Store 或 Google Play 正式版本。
修复与变更
- 将
@tool-bridge/sdk精确升级到 0.17.0,移除已废弃的uploadContextObject/camera/photosContext
假设,改用网关为每次 device call 注入的窄call.uploadObjectStore capability。 - 相机结果改为稳定
store://default/...引用;上传同时提交 JPEG size、SHA-256、脱敏文件名和基于
commandId 摘要的幂等键,并复核 Gateway 返回的对象描述。 - 缺少本次调用的 Store upload capability 时,在本地确认、相机 probe 和打开预览前 fail closed。
- Android Preview 构建在 prebuild 与 Gradle bundle 两阶段都保持
APP_VARIANT=preview,避免 native
package 是 Preview、内嵌 JS 配置却回落 Development。
证据与已知限制
- 旧 0.0.9 真机日志已证明远程命令实际打开相机、生成并重编码 JPEG;失败发生在旧 Context 上传,且照片
按设计只存在于 App 私有临时文件,不写入系统相册。 - SDK 0.17 的
call.uploadObject只使用 SDK 原始 call signal,不接受 App 的前台丢失 signal;上传开始后
切后台仍可能产生未返回的 Store 对象。当前会拒绝成功结果并清理本地文件,但完整中止需上游支持组合 signal。 - Android Preview 0.0.11 已完成 APK native/JS variant 反查、ADB 覆盖安装和一次真实远程后摄调用;相机
日志记录takePictureInternal/onImageCaptured,Store 对象为ready,受保护读回的 JPEG MIME、
11,569 字节与 SHA-256 均和设备返回一致。 - 同一源码随后在锁定 Node 22.23.1 下再次完成 release clean build;最终 APK 覆盖安装后恢复
active/online/direct_call。为避免重复副作用,没有在该重建 artifact 上再次拍照。 - iOS simulator build 已尝试,但本机只有 Command Line Tools、缺少完整 Xcode/CocoaPods,尚未形成 iOS
build 或真机证据;未自动安装系统级工具链。
Tool Bridge Mobile v0.0.10 (Preview)
Tool Bridge Mobile v0.0.10(Preview)
Preview:修复 Android/iOS 前台相机硬件探测,不是 production、App Store 或
Google Play 正式版本。
修复
- 不再在 Android/iOS 上调用 Web-only 的
CameraView.isAvailableAsync(),改为通过 Camera2 与
AVFoundation 只读枚举设备的前/后镜头,避免有权限且硬件正常时误报camera_probe_failed。 - 在本地确认前检查请求的
facing;设备缺少对应镜头时稳定返回
camera_facing_unavailable,并保留不向远端暴露原生异常的边界。
验证边界
- Android Preview release clean build、全量
pnpm verify与 Android 真机前置镜头的可见预览、
自动拍摄和本地图像处理已通过。 - Gateway 尚未挂载可写
camera/photoscontext,因此真实对象上传 E2E 未完成;iOS 原生
build 和真机需在安装完整 Xcode/CocoaPods 的环境继续验收。
Tool Bridge Mobile v0.0.8 (Preview)
Tool Bridge Mobile v0.0.8(Preview)
这是供内部验证设备本地信箱长正文投递的 GitHub Pre-release,不是 production、App Store 或 Google Play
正式版本。本版本在 v0.0.7 三 tab 与新闻/邮件式信箱界面基础上,提高单条信箱正文容量并修复 Preview
发布元数据门禁;不放宽本地策略、确认、权限 probe、SQLite 去重、审计或图片安全边界。
本次变化
信箱长正文
- 将
phone/inbox.deliver的单条 Markdownbody上限从 4,000 字符提高到 64,000 字符,支持 Agent 投递
新闻整理、订阅摘要等长篇内容; - device expose 的 JSON Schema 同步公开
maxLength: 64000,本地 schema 与 runtime contract 覆盖
64,000 字符成功落盘、64,001 字符在产生副作用前拒绝; - 保留 1,000 条消息 retention、Markdown token/图片数量限制、一次只阅读一条消息、正文专用存储与
普通日志/审计脱敏。容量提高不等于正文或移动端资源变为无界。
发布门禁
- 统一 package version、Expo App version、Android
versionCode、iOSbuildNumber与配置验证脚本的
release metadata 为 0.0.8/8; - 修复 v0.0.7 中配置验证脚本仍期望 0.0.6/6,导致 PR、
main与 tag workflow 在
verify:config失败的问题。
安装包与证据边界
Android Preview 包使用 ai.tokenroll.toolbridgemobile.preview,内嵌 production JavaScript bundle,
并继续使用内部 debug test key 签名。本地自动化只证明 Agent 可发现的 schema、本地参数裁决与专用 SQLite
落盘边界;尚未验证真实 Gateway 对 64,000 字符 inbox/deliver frame 的兼容性,也未完成 Android/iOS
真机长正文的内存、搜索、布局、后台或锁屏验收。
pairing、设备专用最小权限 credential、短期 WebSocket ticket、durable mailbox 与 push 仍未实现。
请勿把 API key、Authorization、SK、敏感 arguments 或原始 WebSocket 失败内容写入日志、issue 或截图。
Tool Bridge Mobile v0.0.5 (Preview)
Tool Bridge Mobile v0.0.5(Preview)
这是供内部验证应用图标与 attention flash 通道的 GitHub Pre-release,不是 production、App Store 或
Google Play 正式版本。本版本未改动本地命令运行时、策略裁决与确认流程,继续保留“设备本地裁决优先”的
安全边界;新增的 flash 通道走系统 torch API,不声明 Camera 权限。
本次变化
应用图标
此前 app.config.ts 从未配置 icon/adaptiveIcon,安装后显示的是 Expo 默认图标。
- 新增
assets/icon/brand-mark.svg作为唯一形状来源:桥形标识按上游tool-bridge仓库根目录的
tool-bridge.png逐行/逐列扫描测量重建(拱线最小二乘拟合三次贝塞尔,连线端点截断在节点圆环上以
保证内孔镂空干净),渲染稿与原位图逐像素比对差异 2.91%,集中在抗锯齿边缘; - 配色取
src/ui/theme.ts的background#08111f与primary#66d9c8,与应用内视觉同源,不再是
上游的黑白线稿; pnpm icons:generate从该 SVG 导出四份并提交进仓库:app-icon.png(1024²,iOS/通用,不透明)、
adaptive-icon.png(Android 自适应前景,透明)、monochrome-icon.png(Android 13+ 主题化图标)、
favicon.png(48²,笔画显著加粗);- Android 自适应前景宽度占比 0.548:108dp 画布中系统保证不被厂商遮罩裁掉的只有居中 66dp 圆,标识
宽高比 1048:480 较扁,这是让墨迹半对角落进该圆的上限。因此前景层视觉上比 iOS 图标小一圈,换取
圆形 / squircle / 方形任意遮罩下两端节点都不被切; - 导出依赖
rsvg-convert(macOSbrew install librsvg),不进package.json也不在 CI 执行。
attention flash 通道
- flash 由此前的
flash_not_implemented改为经系统 torch API 实际点亮:Android
CameraManager.setTorchMode、iOSAVCaptureDevice.torchMode; - 只在探测到闪光灯硬件时点亮,不声明 Camera 权限、不打开相机采集流;无硬件、被其他 App 占用或
系统拒绝时诚实返回flash_unavailable,不把 API 接受请求等同于用户一定感知; docs/CAPABILITIES.md、docs/SECURITY.md与llmdoc/architecture/capability-slices.md同步更新
能力边界描述。
校验门禁
- 新增
pnpm verify:app-icons(已挂进聚合verify):不依赖rsvg-convert,自行解析已提交 PNG 的
尺寸、透明通道与自适应图标安全区比例,并检查app.config.ts引用完整,防止图标悄悄退回 Expo
默认或破掉平台约束。四个负向场景(尺寸错、前景层不透明、超出安全区、配置引用缺失)均已验证能拦住; verify:app-config增加图标断言,确认三个环境共用同一套品牌图标——安装标识隔离,视觉标识不分叉;- 修正
verify-app-config.mjs中滞留在0.0.3的版本期望值(v0.0.4 提交漏改,与app.config.ts不符); /artifacts/加入.gitignore:本地构建的 APK 不应进版本控制,发布产物只经 release workflow 上传。
补装 expo-font(修复 v0.0.4 起两端原生构建失败)
v0.0.4 引入 @expo/vector-icons 时漏装了它声明的原生 peer expo-font,导致自 main 的 v0.0.4 合并点
起 verify:doctor 报 Missing peer dependency,Android preview APK 与 iOS simulator 两个构建 job
一直失败;缺失原生 peer 还可能让 App 在 Expo Go 之外崩溃。本版本以精确版本 57.0.1 直接列入依赖,
expo-doctor 恢复 21/21 通过。不注册其 config plugin——该 plugin 只用于嵌入自定义字体文件,而本仓库
只用 @expo/vector-icons 自带的运行时加载字体。docs/TECH-STACK.md 依赖表同步补记
@expo/vector-icons 与 expo-font(v0.0.4 也未记录)。
安装包
Release 附件中的 tool-bridge-mobile-preview-v0.0.5.apk:
- application id:
ai.tokenroll.toolbridgemobile.preview; - 内嵌 JavaScript bundle,不需要 Metro;
- 使用自动生成的 Android debug test key 签名,只用于内部安装;
- 同目录
.sha256文件用于核对 APK 完整性。
重要限制
- 图标尚未完成双端真机验收:已通过
expo prebuild确认 Android 侧生成
ic_launcher_foreground/ic_launcher_monochrome与@color/iconBackground,并检查圆形遮罩下
标识完整,但各厂商启动器实际遮罩、Android 13+ 主题化取色、iOS 主屏与设置页的实际观感都需真机确认;
48px 下笔画偏细,小尺寸可辨识度也待真机核对; - flash 通道未做双端真机物理验收:torch 实际亮度、被其他 App 抢占 torch、系统拒绝路径都只经单元
测试覆盖,没有真机证据; - 未改动高特权能力、后台前台服务、策略裁决与原生权限;v0.0.3 / v0.0.4 记录的能力边界与限制继续适用;
- 未开启 TalkBack / VoiceOver 等真机可访问性验收;
- pairing、设备专用最小权限 credential、短期 WebSocket ticket、mailbox 与 push 仍未实现;
- 手工 API key fallback 尚未通过完整 Gateway compatibility matrix;配置保存成功不代表鉴权成功;
- 没有 production signer、AAB、iOS 设备包、商店合规、SBOM、真机矩阵或 staged rollout 证据。
只有 SDK 收到 Gateway ready 后 App 才显示 online。请不要把 API key 或原始网络异常写进 issue、日志
或截图。
Tool Bridge Mobile v0.0.3 (Preview)
Tool Bridge Mobile v0.0.3(Preview)
这是供内部验证高特权能力、后台运行与新 UI 的 GitHub Pre-release,不是 production、App Store 或
Google Play 正式版本。本版本按明确的本地授权探索方向扩展了设备控制能力,同时保留“设备本地裁决优先”
的安全边界。
本次变化
高特权 phone/system 能力簇(新)
exec_shell:以 App 自身权限执行一条 shell 命令并返回 stdout/stderr/exitCode(不获取 root,输出与
时长受本地上限约束);clipboard_get/clipboard_set:读取/写入系统剪贴板;open_intent:通过系统打开任意 URL 或自定义 scheme/Intent(区别于受 hostname allowlist 限制的
phone/apps);accessibility_status:探测无障碍服务是否开启(UI 自动化前置);- 原生边界由新增的
tool-bridge-systemExpo 模块提供;iOS 无 shell/AccessibilityService 对等能力,
相应工具结构化返回 unsupported,不伪装成功。
新控制模式 direct_call(允许直接调用)
- 在设备本地设置中新增第三档控制模式:
direct_call除紧急停用外放行全部命令(含 high risk 与
confirmation: always),实现“不再逐次询问”; trusted_session维持“仅放行非高危”;ask_every_time为默认;紧急停用始终可中断;- 系统权限、前后台/锁屏状态与 native probe 仍是各能力的最终裁决,
direct_call只放开策略层确认。
后台运行(Android 前台服务)
- 新增设备本地“允许后台运行”开关(默认关闭,持久化于本地 settings);
- 开启后 Android 启动一个
dataSync前台服务并显示常驻可见通知,App 退到后台时保持设备连接; - SDK transport 生命周期放宽:
active与background均保持连接,inactive/unknown过渡态与紧急停用
仍 suspend; - iOS 不支持后台常驻长连接,开关在 iOS 为 no-op,后台可达仍依赖未交付的 push/mailbox。
UI 重构
- 新增第五个“设置”标签页,集中管理控制模式、后台运行、网关配置、本地通知与紧急停用;
- 首页精简为只读总览:状态徽标(控制模式/连接/后台运行/前后台)、连接详情与进行中的
attention/计时器; - 新增
Pill状态徽标与SettingToggle开关组件,保留最小触控尺寸与非仅颜色依赖的无障碍语义。
原生配置
- Android 新增
FOREGROUND_SERVICE与FOREGROUND_SERVICE_DATA_SYNC权限; - 通过 config plugin 注入 non-exported、
dataSync类型的ToolBridgeForegroundService; - 未新增相机、麦克风、后台位置、boot/exact alarm、FCM/APNs 或 Face ID 权限。
安装包
Release 附件中的 tool-bridge-mobile-preview-v0.0.3.apk:
- application id:
ai.tokenroll.toolbridgemobile.preview; - 内嵌 JavaScript bundle,不需要 Metro;
- 使用自动生成的 Android debug test key 签名,只用于内部安装;
- 同目录
.sha256文件用于核对 APK 完整性。
重要限制
- 高特权能力、后台前台服务与新 UI 均只完成本地实现、单元/组件测试与双端 autolinking 发现,尚未
完成双端真机验收:shell 实际输出、剪贴板、无障碍探测、Intent handoff、前台服务保活、Doze/厂商
省电与常驻通知呈现都需真机确认; accessibility_status只探测服务开关状态,尚未实现读取屏幕节点或模拟点击/输入的 UI 自动化;direct_call是用户在设备本地明确选择的高信任模式;能力目录仍以正式协议 profile 为准,本版本未
引入上游高特权 credential 隔离或最小权限;- pairing、设备专用最小权限 credential、短期 WebSocket ticket、mailbox 与 push 尚未实现;
- 手工 API key fallback 尚未通过完整 Gateway compatibility matrix;配置保存成功不代表鉴权成功;
- 没有 production signer、AAB、iOS 设备包、商店合规、SBOM、真机矩阵或 staged rollout 证据;
- 清除本机 Gateway 配置不会撤销服务端 API key。
只有 SDK 收到 Gateway ready 后 App 才显示 online。请不要把 API key 或原始网络异常写进 issue、日志
或截图。
Tool Bridge Mobile v0.0.2 (Preview)
Tool Bridge Mobile v0.0.2(Preview)
这是供内部定位 Android 前台连接问题的 GitHub Pre-release,不是 production、App Store 或 Google Play
正式版本。
本次变化
- 首页在 SDK transport 失败时显示固定的失败类型、失败阶段和 WebSocket close code;
- 可区分连接超时、DNS、TLS、WebSocket upgrade、网络不可达、连接重置与未知关闭;
- 原始 WebSocket reason、Gateway URL query、Authorization、API key 和 deviceId 不进入诊断、日志、审计
或 UI; - 主动暂停、配置切换、credential invalidation 和旧 socket 的迟到事件不会覆盖当前诊断;
- SDK 收到
ready后清除旧诊断。
本版本没有新增远程 capability、系统权限、原生模块或持久化 schema,也没有调整 SDK 当前连接超时。
安装包
Release 附件中的 tool-bridge-mobile-preview-v0.0.2.apk:
- application id:
ai.tokenroll.toolbridgemobile.preview; - 内嵌 JavaScript bundle,不需要 Metro;
- 使用自动生成的 Android debug test key 签名,只用于内部安装;
- 同目录
.sha256文件用于核对 APK 完整性。
重要限制
- 固定诊断字段只提升现场取证能力,不代表真机连接根因已经确认或修复;
- pairing、设备专用最小权限 credential、短期 WebSocket ticket、mailbox 与 push 尚未实现;
- 手工 API key fallback 尚未通过完整 Gateway compatibility matrix;配置保存成功不代表鉴权成功;
- 没有 production signer、AAB、iOS 设备包、商店合规、SBOM、真机矩阵或 staged rollout 证据;
- haptic、媒体、位置、通知、后台/锁屏和弱网行为尚未完成双端真机验收;
- 清除本机 Gateway 配置不会撤销服务端 API key。
只有 SDK 收到 Gateway ready 后 App 才显示 online。请不要把 API key 或原始网络异常写进 issue、日志
或截图。
Tool Bridge Mobile v0.0.1 (Preview)
Tool Bridge Mobile v0.0.1(Preview)
这是首个供内部试用的 GitHub Pre-release,不是 production、App Store 或 Google Play 正式版本。
可体验内容
- 使用
@tool-bridge/sdk/device@0.11.0的前台 Tool Bridge device transport; - 首页手工配置 Gateway HTTPS origin 与 API key,secret 只保存到系统 SecureStore;
- 本地状态、能力、媒体与活动页面,以及 Ask every time / Trusted / Disabled 控制模式;
- status、haptic attention、受控媒体、App/地图 handoff、一次性前台位置、本地通知与 App 内计时器;
- SQLite command 去重、crash recovery、有界保留、脱敏审计与仅审计历史清除。
安装包
Release 附件中的 tool-bridge-mobile-preview-v0.0.1.apk:
- application id:
ai.tokenroll.toolbridgemobile.preview; - 内嵌 JavaScript bundle,不需要 Metro;
- 使用自动生成的 Android debug test key 签名,只用于内部安装;
- 同目录
.sha256文件用于核对 APK 完整性。
重要限制
- pairing、设备专用最小权限 credential、短期 WebSocket ticket、mailbox 与 push 尚未实现;
- 手工 API key fallback 尚未通过真实 Gateway compatibility matrix;配置保存成功不代表鉴权成功;
- 没有 production signer、AAB、iOS 设备包、商店合规、SBOM、真机矩阵或 staged rollout 证据;
- haptic、媒体、位置、通知、后台/锁屏和弱网行为尚未完成双端真机验收;
- 清除本机 Gateway 配置不会撤销服务端 API key。
只有 SDK 收到 Gateway ready 后 App 才显示 online。请不要把 API key 写进 issue、日志或截图。