diff --git a/README.md b/README.md index c8d775e..ae1d0c7 100644 --- a/README.md +++ b/README.md @@ -6,20 +6,20 @@ - [ESP32 固件索引](device/README.md) - [服务端源码](https://git.eehut.com/liuchuansen/agentmate_service) -## 最新服务端:v0.5.1 +## 最新服务端:v0.6.0 -发布日期:2026-10-11。修复自动升级候选程序丢失执行权限导致的 permission denied;包含密码登录、外部访问和网页重启。旧版升级器需通过安装脚本引导升级一次。 +发布日期:2026-10-13。新增官方设备固件检查、下载与串口升级、本地应用文件升级、待机配色设置和已结束会话清理。推荐搭配 AGM-C3 v2.1;旧设备需先安装完整烧录包中的回滚 bootloader。 | 平台 | 架构 | 下载 | | --- | --- | --- | -| macOS | arm64(Apple Silicon) | [agentmate-v0.5.1-darwin-arm64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.5.1/agentmate-v0.5.1-darwin-arm64.tar.gz) | -| macOS | amd64(Intel) | [agentmate-v0.5.1-darwin-amd64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.5.1/agentmate-v0.5.1-darwin-amd64.tar.gz) | -| Linux | amd64(x86_64) | [agentmate-v0.5.1-linux-amd64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.5.1/agentmate-v0.5.1-linux-amd64.tar.gz) | -| Linux | arm64(aarch64) | [agentmate-v0.5.1-linux-arm64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.5.1/agentmate-v0.5.1-linux-arm64.tar.gz) | -| Windows | amd64(x64) | [agentmate-v0.5.1-windows-amd64.zip](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.5.1/agentmate-v0.5.1-windows-amd64.zip) | -| Windows | arm64(ARM64) | [agentmate-v0.5.1-windows-arm64.zip](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.5.1/agentmate-v0.5.1-windows-arm64.zip) | +| macOS | arm64(Apple Silicon) | [agentmate-v0.6.0-darwin-arm64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.6.0/agentmate-v0.6.0-darwin-arm64.tar.gz) | +| macOS | amd64(Intel) | [agentmate-v0.6.0-darwin-amd64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.6.0/agentmate-v0.6.0-darwin-amd64.tar.gz) | +| Linux | amd64(x86_64) | [agentmate-v0.6.0-linux-amd64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.6.0/agentmate-v0.6.0-linux-amd64.tar.gz) | +| Linux | arm64(aarch64) | [agentmate-v0.6.0-linux-arm64.tar.gz](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.6.0/agentmate-v0.6.0-linux-arm64.tar.gz) | +| Windows | amd64(x64) | [agentmate-v0.6.0-windows-amd64.zip](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.6.0/agentmate-v0.6.0-windows-amd64.zip) | +| Windows | arm64(ARM64) | [agentmate-v0.6.0-windows-arm64.zip](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/service/v0.6.0/agentmate-v0.6.0-windows-arm64.zip) | -[发布说明与安装方法](service/v0.5.1/README.md) · [SHA256 校验清单](service/v0.5.1/SHA256SUMS) · [修改日志](service/v0.5.1/CHANGELOG.md) +[发布说明与安装方法](service/v0.6.0/README.md) · [SHA256 校验清单](service/v0.6.0/SHA256SUMS) · [修改日志](service/v0.6.0/CHANGELOG.md) 每份服务端发布包均包含可执行文件、安装脚本、平台安装说明和构建信息,解压后无需安装 Go。macOS 两种架构均启用 cgo,保留 CH340 USB 串口自动发现能力。 @@ -27,7 +27,7 @@ | 设备型号 | 最新固件 | 下载与说明 | | --- | --- | --- | -| AGM-C3(ESP32-C3,4 MB Flash) | v1.4 | [烧录包、应用固件与安装说明](device/AGM-C3/v1.4/README.md) | +| AGM-C3(ESP32-C3,4 MB Flash) | v2.1 | [烧录包、应用固件与安装说明](device/AGM-C3/v2.1/README.md) | 完整设备版本列表见 [设备索引](device/README.md)。服务端与设备固件分别维护版本号。 diff --git a/device/AGM-C3/README.md b/device/AGM-C3/README.md index 4d82fdb..9904feb 100644 --- a/device/AGM-C3/README.md +++ b/device/AGM-C3/README.md @@ -6,8 +6,9 @@ | 固件版本 | 发布日期 | AT 协议 | 发布说明 | | --- | --- | --- | --- | +| v2.1 | 2026-10-13 | 2 | [下载与烧录](v2.1/README.md) | | v1.4 | 2026-10-11 | 2 | [下载与烧录](v1.4/README.md) | -v1.4 增加 Codex 配额与上下文轮换显示,推荐搭配 [AgentMate 服务端 v0.3.3](../../service/v0.3.3/README.md)。 +v2.1 提供新版界面、待机配色、串口 OTA 和启动回滚,推荐搭配 [AgentMate 服务端 v0.6.0](../../service/v0.6.0/README.md)。旧设备请先安装完整烧录包中的回滚 bootloader。 [设备型号索引](../README.md) · [仓库首页](../../README.md) diff --git a/device/AGM-C3/v2.1/BUILDINFO.txt b/device/AGM-C3/v2.1/BUILDINFO.txt new file mode 100644 index 0000000..8ba8974 --- /dev/null +++ b/device/AGM-C3/v2.1/BUILDINFO.txt @@ -0,0 +1,24 @@ +model=AGM-C3 +firmware_version=2.1 +at_software_version=v2.1 +protocol_version=2 +target=esp32c3 +chip_revision_min=0.3 +flash_size=4MB +flash_mode=dio +flash_frequency=80m +app_offset=0x20000 +app_partition_size=0x1A0000 +app_size_bytes=652640 +bootloader_app_rollback_enabled=1 +ota_test_fail_boot=0 +build_date=2026-10-13 +source_repository=https://git.eehut.com/liuchuansen/agentmate_esp32 +source_commit=c859021f029a1f2595b091fdc2b89892d28729f5 +components_commit=0d64650af522f1871cf2d96133d9ed78711d8234 +esp_idf=v5.5.1-789-g8d036f2edc +esptool=4.10.0 +compiler=riscv32-esp-elf-gcc (crosstool-NG esp-14.2.0_20251107) 14.2.0 +configuration=sdkconfig.defaults (fresh SDKCONFIG) +verification=idf.py build; image checksum/hash; font CRC; ASan/UBSan UI/LED/XMODEM/OTA host tests +hardware_flash_test=not_performed diff --git a/device/AGM-C3/v2.1/CHANGELOG.md b/device/AGM-C3/v2.1/CHANGELOG.md new file mode 100644 index 0000000..4175989 --- /dev/null +++ b/device/AGM-C3/v2.1/CHANGELOG.md @@ -0,0 +1,81 @@ +# 更新日志 + +## 2.1 — 2026-10-13 + +### 串口升级 + +- 新增备用 OTA 槽升级流程:XMODEM1K/CRC 传输、整文件 SHA-256、长度与 AgentMate 应用身份验证,接收成功后需显式 COMMIT 才切换启动槽。 +- 升级页展示接收、验证、完成或失败状态;支持传输取消、原样重传、超时与失败清理,拒绝固件更新期间的普通业务命令。 +- 发布 bootloader 启用应用回滚;新镜像首次启动完成硬件、UART、UI/灯环检查并持续健康 10 秒后确认,30 秒未通过则回滚。发布镜像关闭强制自检失败测试选项。 + +### 待机配色 + +- 默认采用暖琥珀 AMBER,支持 WHITE、MINT、CODEX 配色与查询,并保存到 NVS。 +- 设置成功后立即预览时间待机页 5 秒;等待输入或批准的会话优先显示,重复设置不重复写入 NVS。 + +### 兼容性 + +- 软件版本 v2.1,AT 协议仍为 2,引脚和 Flash 分区布局不变。推荐搭配服务 v0.6.0。 +- 旧设备必须先安装本版完整烧录包中的回滚 bootloader;单独更新应用无法更新 bootloader。完整烧录保留 NVS,但重置 OTA 槽选择到 ota_0。 +- 本次通过构建与主机自动测试,没有执行真机烧录或实际串口 OTA 验收。 + +## 2.0 — 2026-10-12 + +### 界面改版 + +- 按 `docs/design/session_page_five_rows.html` v6.2 实现当前支持的全部页面:启动、连接、Session、时间日期待机、Codex 用量、设备信息和产测。 +- 默认屏幕背景统一纯黑;连接顶栏使用更明显的弧形下边界,Session 头部使用 agent 代表色描边和目录文字。 +- Session 图标放大并直接融入黑底,主状态与明细合并布局;状态区保留黑底和彩色动态边框,等待输入与批准沿用原有动效。 +- 明细按工作时长 10 秒、有效 agent 用量 3 秒、有效上下文 3 秒轮换,无效项跳过。单个用量窗口保持原宽度;配额使用紫色面板,上下文使用蓝色面板。 +- 上下文增加 CTX 标题,token 数值右对齐并支持 K/M 单位和三位有效数字;已用与总量使用等高、深浅不同的面板。 +- 待机时间采用 52 px 方正数字,日期放大;Codex 待机用量改为卡片,保留百分比、进度条和重置时间,支持双窗口与单窗口。 +- 产测页面采用统一中文布局,保留原有颜色、字体、背光、LED 测试和自动测试流程。 + +### 资源与刷新 + +- ESP32-C3 目录仅显示可打印 ASCII,其他 Unicode 字符逐个替换为 `?`;协议保存和回读的原始 UTF-8 不变。 +- 移除完整中文目录字库,仅保留固定文案字形;数字按字形绘制,继续使用局部刷新与共享小块缓冲。 +- 增加弧形顶栏缓存、单双用量切换和产测返回的重绘检查,保持状态边框、冒号闪烁与明细轮换独立更新。 + +### 验证与兼容性 + +- 固件构建、主机 ASan/UBSan 渲染回归及真实设备 UI/产测串口检查通过;屏幕颜色与观感仍需目视验收。 +- 软件版本升级为 `v2.0`,主机渲染测试从构建配置读取版本;AT 协议仍为 `2`,引脚、分区及 NVS 格式不变。配对认证仍为二期范围。 + +## 1.4 — 2026-10-09 + +### 新增 + +- Codex 会话支持接收和显示上下文已用百分比、已用 token 数和窗口 token 数。 +- 会话页图标下方每 5 秒轮换配额组(五小时/七天剩余用量)与上下文组;未知上下文显示灰色 `--`。 +- 增加上下文轮换边界、会话切换、局部重绘以及真机 context 写入/回读与非法字段测试。 + +### 改进 + +- 普通上下文和配额刷新不重置轮换计时,切换会话、状态组或连接代际后从配额组开始。 +- Codex 会话页的五小时用量整体下移 3 px,两组用量数字由 15 px 放大为 17 px。 + +### 兼容性 + +- AT 协议保持为 `2`,Codex context 复用现有四字段;服务端与固件需同步升级。 +- Codex 四字段全空保留为不支持上下文语义,此时仅显示配额;Claude 显示保持不变。 + +## 1.3 — 2026-10-06 + +### 新增 + +- Codex 会话页在图标下方显示五小时和一周的剩余用量,上下固定排列,不显示窗口标题。 +- 每组使用整数数字和下方细进度条;数字保持原有大小,进度条从左到右显示剩余比例。 +- 数字和进度条按显示值使用绿色(≥50)、橙色(20–49)或红色(0–19);未知用量显示 `--` 和空轨道。 +- 增加主机像素回归与真机串口测试,覆盖用量舍入、颜色边界、窗口选择、原子提交、清空及局部重绘。 + +### 改进 + +- 会话页与独立用量页共用 Codex 配额选择规则,用量刷新不重置会话轮播或页面淡入。 +- 主机标识与会话短名之间统一使用中点,例如 `LOCAL·S1`。 +- 固件版本更新为 `v1.3`,同步更新主机测试和 AT 指令文档中的版本信息。 + +### 兼容性 + +- AT 协议版本保持为 `2`,复用现有 `USAGE` 数据,无需扩展电脑端协议。 +- Claude 会话的上下文用量显示保持不变。 diff --git a/device/AGM-C3/v2.1/README.md b/device/AGM-C3/v2.1/README.md new file mode 100644 index 0000000..4ed612a --- /dev/null +++ b/device/AGM-C3/v2.1/README.md @@ -0,0 +1,61 @@ +# AGM-C3 固件 v2.1 + +发布日期:2026-10-13。设备型号:`AGM-C3`;芯片:ESP32-C3,最低修订版本 v0.3;Flash:4 MB,DIO / 80 MHz;AT 协议:`2`。 + +本版本包含新版页面、四种时间待机配色、串口 OTA 和启动自检回滚。推荐搭配 [AgentMate 服务端 v0.6.0](../../../service/v0.6.0/README.md),详细变更见 [CHANGELOG.md](CHANGELOG.md)。 + +## 下载 + +- [完整烧录包 agentmate-AGM-C3-v2.1.zip](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.zip):包含应用、支持回滚的 bootloader、分区表、OTA 初始化数据、字库、构建信息和烧录说明。 +- [单独应用固件 agentmate-AGM-C3-v2.1.bin](https://git.eehut.com/agentmate/agentmate_release/raw/branch/main/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.bin):仅供已有兼容分区和回滚 bootloader 的设备通过面板串口 OTA 更新,不适用于空白芯片。 +- [SHA256SUMS](SHA256SUMS) · [BUILDINFO.txt](BUILDINFO.txt)。 + +下载后使用 `shasum -a 256 <文件>`、`sha256sum <文件>` 或 PowerShell `Get-FileHash <文件> -Algorithm SHA256` 与清单核对;ZIP 内另有全部烧录文件的校验清单。 + +## 首次安装与旧版设备升级 + +v1.4 等旧设备需先使用完整烧录包安装支持回滚的 bootloader。仅通过 OTA 上传 v2.1 应用不能替换 bootloader。烧录前在 AgentMate 面板安全移除设备,等待“已移除,可烧录”,并关闭其他串口工具。 + +电脑需要 Python 和本次构建配套的 esptool 4.10.0: + +```sh +python -m pip install esptool==4.10.0 +``` + +解压 ZIP,进入 `agentmate-AGM-C3-v2.1` 目录,将 `PORT` 替换为实际串口(macOS `/dev/cu.usbserialXXXX`、Linux `/dev/ttyUSB0` 或 Windows `COM3`),执行: + +```sh +python -m esptool --chip esp32c3 --port PORT --baud 460800 write_flash @flash_args +``` + +| 文件 | 烧录地址 | 用途 | +| --- | --- | --- | +| bootloader.bin | 0x000000 | 启用应用回滚的引导程序 | +| partition-table.bin | 0x008000 | 分区表 | +| ota_data_initial.bin | 0x00F000 | 重置初始启动槽为 ota_0 | +| agentmate_esp32.bin | 0x020000 | v2.1 应用 | +| hzk16.bin | 0x380000 | 16×16 字库 | + +此命令不清空整片 Flash,保留 `0x9000` 开始的 NVS 配置。完整烧录会重置 OTA 槽选择到 ota_0。仅适用于 AGM-C3,不能混用其他设备型号。 + +## 已有 OTA 基础固件的设备 + +若已经安装支持串口 OTA 和应用回滚的基础固件,可在服务 v0.6.0 的设备面板选择本地应用 `.bin`,或检查官方固件更新。服务先验证文件和目标版本,通过备用槽升级,重启后等待自检再确认运行版本。在线升级只允许较新稳定版;同版本重刷或降级使用本地文件升级。 + +应用 OTA 保留 NVS、字库、分区表和 bootloader。上传结束只表示镜像接收成功;提交后设备重启,新镜像首次启动自检失败会回滚。服务会等待自检窗口后重新发现并检查版本。首次安装本版后,当前最新版本为 v2.1,检查更新不会再次提供同版本在线升级。 + +不确定分区布局、bootloader 或当前启动槽时,请使用完整烧录包。不要直接把应用写入固定槽地址作为通用升级方法。 + +## 首次启动与恢复连接 + +新 NVS 首次启动进入 `FACTORY` 产测模式;产测完成后,通过 UART0(115200、8N1、CRLF)发送 `AT+MODE=NORMAL`,设备保存模式并重启。`AT+INFO?` 应报告型号 `AGM-C3`、软件版本 `v2.1` 和协议 `2`。 + +关闭烧录工具后,在面板点击“重新连接”,或拔出后重新插入设备。原有设备 ID、模式、亮度和主题保存在 NVS。 + +## 构建来源与验证 + +源码提交:[c859021f029a1f2595b091fdc2b89892d28729f5](https://git.eehut.com/liuchuansen/agentmate_esp32/commit/c859021f029a1f2595b091fdc2b89892d28729f5);components 子模块:`0d64650af522f1871cf2d96133d9ed78711d8234`。版本由源码 `CMakeLists.txt` 的 `project(... VERSION 2.1)` 定义。 + +使用 ESP-IDF `v5.5.1-789-g8d036f2edc`,由受版本控制的 `sdkconfig.defaults` 生成独立发布配置。包内 `sdkconfig`、`partitions.csv` 和 `BUILDINFO.txt` 记录配置与工具链;`CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y`,强制启动自检失败测试关闭,UART0 不输出普通控制台日志。 + +已通过 ESP-IDF 构建、应用镜像校验、字库 CRC、ASan/UBSan UI/LED 与 XMODEM/OTA 生命周期主机测试。本次没有执行真机烧录或实际串口升级验收。 diff --git a/device/AGM-C3/v2.1/SHA256SUMS b/device/AGM-C3/v2.1/SHA256SUMS new file mode 100644 index 0000000..57829a8 --- /dev/null +++ b/device/AGM-C3/v2.1/SHA256SUMS @@ -0,0 +1,2 @@ +a723b627030760f431c2797b6430ced3d937d0246b90c53b897ba519dd2f915e agentmate-AGM-C3-v2.1.bin +704f95f53f5dfe458545a45cbc45bbf183270d11b28237d637de964da10ba961 agentmate-AGM-C3-v2.1.zip diff --git a/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.bin b/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.bin new file mode 100644 index 0000000..93f9e0b Binary files /dev/null and b/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.bin differ diff --git a/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.zip b/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.zip new file mode 100644 index 0000000..df56eee Binary files /dev/null and b/device/AGM-C3/v2.1/agentmate-AGM-C3-v2.1.zip differ diff --git a/device/README.md b/device/README.md index 53ceb41..938194f 100644 --- a/device/README.md +++ b/device/README.md @@ -2,7 +2,7 @@ | 设备型号 | 芯片与 Flash | 最新版本 | 固件索引 | | --- | --- | --- | --- | -| AGM-C3 | ESP32-C3,4 MB | v1.4 | [版本列表](AGM-C3/README.md) | +| AGM-C3 | ESP32-C3,4 MB | v2.1 | [版本列表](AGM-C3/README.md) | 固件按 `device/<设备型号>/v<版本>/` 保存。每次发布同步更新设备型号索引、版本索引和仓库首页。 diff --git a/service/README.md b/service/README.md index 5c65166..32c7b4f 100644 --- a/service/README.md +++ b/service/README.md @@ -2,6 +2,7 @@ | 版本 | 发布日期 | 平台 | 发布说明 | | --- | --- | --- | --- | +| v0.6.0 | 2026-10-13 | macOS、Linux、Windows;均含 amd64/arm64 | [下载与安装](v0.6.0/README.md) | | v0.5.1 | 2026-10-11 | macOS、Linux、Windows;均含 amd64/arm64 | [下载与安装](v0.5.1/README.md) | | v0.5.0 | 2026-10-11 | macOS、Linux、Windows;均含 amd64/arm64 | [下载与安装](v0.5.0/README.md) | | v0.3.3 | 2026-10-11 | macOS、Linux、Windows;均含 amd64/arm64 | [下载与安装](v0.3.3/README.md) | diff --git a/service/v0.6.0/BUILDINFO.txt b/service/v0.6.0/BUILDINFO.txt new file mode 100644 index 0000000..7f17d36 --- /dev/null +++ b/service/v0.6.0/BUILDINFO.txt @@ -0,0 +1,8 @@ +version=0.6.0 +source_repository=https://git.eehut.com/liuchuansen/agentmate_service +source_commit=56a144c0a31d517824d9258d1114212ebb63dff1 +build_date=2026-10-13 +build_script=release/build.sh +targets=darwin/arm64 darwin/amd64 linux/amd64 linux/arm64 windows/amd64 windows/arm64 +cgo_enabled=darwin:1 linux:0 windows:0 +go version go1.27.1 darwin/arm64 diff --git a/service/v0.6.0/CHANGELOG.md b/service/v0.6.0/CHANGELOG.md new file mode 100644 index 0000000..a689065 --- /dev/null +++ b/service/v0.6.0/CHANGELOG.md @@ -0,0 +1,93 @@ +# Changelog + +本文件记录 AgentMate 的用户可见变更。版本号遵循语义化版本,源码默认值见 `internal/version.Version`。 + +## [0.6.0] - 2026-10-13 + +### Added + +- 设备面板支持手动检查官方固件、下载较新稳定版并通过串口升级;按型号匹配发布,固定仓库提交并校验 SHA-256、文件长度与应用身份。 +- 在线升级展示检查、下载、校验、传输与重启验证进度,提交前可以取消;后台下载期间继续心跳与会话同步。 +- 保留本地应用 `.bin` 升级,支持同版本重刷和降级;在线升级仅支持较新稳定版。 +- 时间待机页提供 AMBER、WHITE、MINT、CODEX 四种配色设置,设备立即预览并保存。 +- 增加已结束会话清理入口,简化 Windows 安装流程。 + +### Compatibility + +- 设备串口 OTA 需要 AGM-C3 v2.1 应用及启用回滚的 bootloader;v1.4 等旧设备需先通过完整烧录包安装基础固件。 +- AT 协议保持为 2;升级完成后等待启动自检,再确认实际运行版本。应用升级保留 NVS 和字库,不替换 bootloader。 +- 固件检查与下载只由用户手动触发,不定时访问发布仓库;缓存和任务仍保存在内存中。 + +## [0.5.1] - 2026-10-11 + +### Fixed + +- 修复 macOS/Linux 自动升级在候选程序版本检查时报 `permission denied` 的问题:候选程序使用保留执行权限的私有保护,Unix 权限为 `0700`,Windows 继续使用当前用户与 SYSTEM 的 ACL。 +- 增加完整升级准备流程的回归测试,实际执行解包后的候选程序并检查候选程序及独立 updater 的权限,避免仅验证下载或解包而漏掉执行失败。 + +### Compatibility + +- 已运行的旧版升级器仍包含此权限缺陷,首次升级到修复版需要下载对应平台包并运行安装脚本;安装保留配置与 hooks,重启监控服务,不停止 Agent。 + +## [0.5.0] - 2026-10-11 + +### Added + +- Web 面板增加密码登录,首次打开时弹窗设定 8~64 个字符的密码;首次设密仅允许本机访问,密码采用随机盐与 PBKDF2-SHA256 哈希存储。 +- 设置页增加“外部访问”开关:默认监听 `127.0.0.1`,开启并重启后监听 `0.0.0.0`,保持端口不变;局域网用户登录后可查看会话、管理来源和本节点设备。 +- 支持在网页请求重启服务,重新读取配置、释放连接并初始化运行时;适用于手动运行及系统管理的服务,保留当前登录并清空内存会话,不停止 Agent。 +- 支持修改密码、退出登录、24 小时登录有效期和登录尝试限流;修改密码会注销其他浏览器,页面数据接口要求认证,写操作要求同源请求。 + +### Changed + +- Web 面板调整为会话、来源、设备与设置四个页面,改进会话状态和来源筛选、上下文占用、任务结果详情及连接中断提示。 +- 未设置密码时,即使配置了外部监听,也先退回同端口的本机监听;显式 `-listen` 参数优先于保存的配置,页面显示当前监听及是否需要重启。 +- 保留独立的 Unix socket/Windows 回环 hook 接口;显式面板 HTTP hook 地址仅接受本机非浏览器客户端,无需面板密码。节点凭据导出和服务升级继续限制为本机操作。 + +### Compatibility + +- 面板 HTTP 仍未加密,外部访问适用于可信局域网;节点订阅 HTTPS 和设备协议保持不变。 +- 面板 API 客户端需先调用密码登录接口并携带登录 cookie;健康检查及私有 hook 投递不受影响。 + +## [0.4.0] - 2026-10-11 + +### Added + +- 本机 Web 面板与 HTTP API 支持手动检查最新稳定版和服务升级,使用公开发布仓库、当前平台包与 SHA256 校验。 +- 三平台通过独立用户管理任务执行升级,保留服务定义、配置及 hooks;启动失败时回退旧二进制,并通过持久化升级记录在重启后展示结果。 +- 更新接口限制为本机同源,不提供预发布、降级、定时升级、远程节点或设备固件升级。 + +## [0.3.3] - 2026-10-11 + +### Fixed + +- 修复 Codex resume 后会话状态无法恢复和投影到设备的问题;通过新 turn 与替代 CLI 进程确认恢复,并保留已结束 turn 的守卫,避免迟到事件重新打开旧工作。 +- 解耦串口发现与设备历史:先检查串口,再通过 HELLO 验证设备,最后按设备 ID 更新历史,支持不同设备先后使用同一串口及同一设备更换串口。 +- 修复历史设备误显示“识别中”和误操作旧串口的问题;安全移除只作用于当前已识别的连接,恢复后以实际接入的设备 ID 为准。 +- 检测到串口拔出时中断对应连接;避免并发枚举的旧结果解除新建的串口暂停,保留烧录期间的串口释放保证。 + +## [0.3.2] - 2026-10-09 + +### Added + +- 设备投影支持 Codex 上下文读数:已知时下发 token 数、窗口大小、已用百分比和采集时间,未知或读数失效时下发四个 `?`。 +- 支持固件在会话页每 5 秒轮换五小时/七天配额与当前会话上下文。 +- 增加 Codex 上下文更新、清除、revision 递增及无变化不重复发送的设备回归测试。 + +### Compatibility + +- AT 协议保持为 `2`,使用现有 SESSION 字段;需与支持 Codex context 的新版固件同步升级。 + +## [0.3.1] - 2026-10-06 + +### Added + +- 面板和节点配置支持会话空闲超时(`session_timeout`),默认 5 分钟,可在本机设置中调整。 +- 设备卡片支持“安全移除”和“重新连接”:烧录前释放串口并暂停自动重连,完成后可恢复,不影响其他设备与会话监控。 +- 设备列表增加 `released`、`ejecting` 状态,以及 `can_eject`、`can_reconnect` 操作能力字段。 + +### Fixed + +- 修复 Codex 运行时等待状态投影:等待用户输入或授权时不再被普通 active/idle 观察误判为结束或重新开工。 +- 改进 Codex 上下文占用读取,减少窗口大小未知或订阅失败时的错误展示。 +- 修复 Windows 首次安装失败:停止计划任务不再通过 `powershell -Command` 内联脚本(命令行转义会破坏脚本),改为写入 `stop-tasks.ps1` 后以 `-File` 执行;没有旧任务时直接跳过。 diff --git a/service/v0.6.0/README.md b/service/v0.6.0/README.md new file mode 100644 index 0000000..23af52a --- /dev/null +++ b/service/v0.6.0/README.md @@ -0,0 +1,77 @@ +# AgentMate 服务端 v0.6.0 + +发布日期:2026-10-13。 + +源码提交:[56a144c0a31d517824d9258d1114212ebb63dff1](https://git.eehut.com/liuchuansen/agentmate_service/commit/56a144c0a31d517824d9258d1114212ebb63dff1)。 + +本版本增加官方设备固件检查、下载与串口升级,以及本地应用文件升级和时间待机页配色设置。推荐搭配 [AGM-C3 v2.1](../../device/AGM-C3/v2.1/README.md)。详细变更见 [CHANGELOG.md](CHANGELOG.md)。 + +设备升级保留 NVS 和字库,提交前可取消,并在设备重启自检后确认运行版本。旧设备必须先安装包含回滚 bootloader 的 v2.1 完整烧录包;在线升级不能替换 bootloader。本地文件升级允许重刷/降级,在线升级仅接受较新稳定版。 + +## 下载 + +| 平台 | 架构 | 发布包 | +| --- | --- | --- | +| macOS | arm64 | [agentmate-v0.6.0-darwin-arm64.tar.gz](agentmate-v0.6.0-darwin-arm64.tar.gz) | +| macOS | amd64 | [agentmate-v0.6.0-darwin-amd64.tar.gz](agentmate-v0.6.0-darwin-amd64.tar.gz) | +| Linux | amd64 | [agentmate-v0.6.0-linux-amd64.tar.gz](agentmate-v0.6.0-linux-amd64.tar.gz) | +| Linux | arm64 | [agentmate-v0.6.0-linux-arm64.tar.gz](agentmate-v0.6.0-linux-arm64.tar.gz) | +| Windows | amd64 | [agentmate-v0.6.0-windows-amd64.zip](agentmate-v0.6.0-windows-amd64.zip) | +| Windows | arm64 | [agentmate-v0.6.0-windows-arm64.zip](agentmate-v0.6.0-windows-arm64.zip) | + +校验清单:[SHA256SUMS](SHA256SUMS)。构建来源及工具链:[BUILDINFO.txt](BUILDINFO.txt)。 + +## 校验与安装 + +macOS/Linux 下载对应发布包和校验清单后,可校验该包;以下以 macOS arm64 为例: + +```sh +shasum -a 256 agentmate-v0.6.0-darwin-arm64.tar.gz +# 将输出与 SHA256SUMS 中对应行比较。 +tar -xzf agentmate-v0.6.0-darwin-arm64.tar.gz +cd agentmate-v0.6.0-darwin-arm64 +./agentmate version +./install.sh +``` + +Linux 也可用 `sha256sum` 校验。Linux 安装方式相同,按系统和架构替换文件名。 + +Windows 解压对应 ZIP 后,在 PowerShell 中进入包目录运行: + +```powershell +.\agentmate.exe version +.\install.ps1 +``` + +Windows 可用 `Get-FileHash` 计算下载包的 SHA256,再与校验清单比较。 + +安装默认使用脚本旁的二进制;包内 `README.md` 提供对应平台的详细说明。安装后面板地址为 `http://127.0.0.1:8765/`。 + +## 旧版升级器的引导安装 + +旧版升级器会把候选程序改为不可执行的 `0600`,下载修复包也无法修复正在运行的旧升级器。首次升级到修复版需下载对应平台包,解压后运行安装脚本;已有配置、凭据和 hooks 保留,监控短暂重启,Agent 本身继续运行。无需 sudo,也无需删除失败记录或修改候选文件。 + +macOS/Linux 已配置 hooks 时运行 `./install.sh --skip-hooks`;Windows 运行 `.\install.ps1 -SkipHooks`。之后使用修复版的页面升级功能。macOS/Linux 的私有候选程序权限为 `0700`,Windows 使用当前用户与 SYSTEM 的 ACL。 + +## 访问与升级说明 + +- 安装或升级后刷新面板,首次使用会弹窗要求在服务所在电脑设置 8~64 个字符的密码;后续访问需要登录。 +- 在“设置 → 访问与服务”开启“外部访问”,保存后点击“重启服务”,监听从默认 `127.0.0.1` 切换为 `0.0.0.0`,端口保持不变。其他电脑使用服务所在电脑的局域网 IP 访问。 +- 网页重启重新加载配置、释放连接并初始化服务,清空内存会话,不停止 Agent;关闭外部访问后需要回到本机面板。 +- 显式 `-listen` 启动参数优先,使用时页面开关不可编辑;未设密码时外部监听会先退回本机。 +- 面板 HTTP 未加密,仅用于可信局域网。私有 hook 无需面板密码,节点订阅 HTTPS 与设备协议保持不变。 +- 面板 API 调用需先登录并携带 cookie;节点接入信息导出与服务升级继续限制本机操作。 +- 本版本支持在本机面板检查最新稳定版并升级服务,升级要求使用官方用户级安装。使用未提供检查更新功能的旧版本时,先下载对应平台包并运行安装脚本。 + +## 构建 + +本版本使用源码提交中的 `release/build.sh`,构建 macOS、Linux、Windows 的 amd64/arm64 六种目标;macOS 启用 cgo,Linux/Windows 不启用 cgo。每份包包含安装脚本、平台 README、`BUILDINFO.txt`、统一节点说明和服务升级说明。 + +完整构建需要 macOS、Go、Xcode Command Line Tools、tar、zip 和 SHA256 工具。源码检出对应提交后运行: + +```sh +TMPDIR=/tmp go test ./... +./release/build.sh +``` + +将 `release/dist/` 的六份归档和 `SHA256SUMS` 复制到本仓库对应版本目录,并记录源码提交和构建工具链。服务与设备使用 AT 协议 `2`;真实 USB 连接和其他平台的安装、自启动行为需在对应平台验证。 diff --git a/service/v0.6.0/SHA256SUMS b/service/v0.6.0/SHA256SUMS new file mode 100644 index 0000000..4e2b992 --- /dev/null +++ b/service/v0.6.0/SHA256SUMS @@ -0,0 +1,6 @@ +ff23519f6f1fe548472b1d79e2f9212ddc0fdf824c88c2808eacd0088ec94aad agentmate-v0.6.0-darwin-arm64.tar.gz +001150a50089c956ac73ec46eca92c7b350a80daae45cf9f8bd57f0d08a8140a agentmate-v0.6.0-darwin-amd64.tar.gz +6735dc594617162d9c39cf3d9ab022a3b7c0e865715e2736875ba688896c7d63 agentmate-v0.6.0-linux-amd64.tar.gz +3e4e41ae67de269df61b4ab791ba63f45201abbf72ba22061d4387d1c95a5ed4 agentmate-v0.6.0-linux-arm64.tar.gz +8fc610af0b5aaeae1eae2e5db0b6cebbf277ded48c10e509c32c742612c4c0df agentmate-v0.6.0-windows-amd64.zip +92eecff8e6f220a5e39f81aef920ffedefa68c9c5668cc1ac151d02055986caf agentmate-v0.6.0-windows-arm64.zip diff --git a/service/v0.6.0/agentmate-v0.6.0-darwin-amd64.tar.gz b/service/v0.6.0/agentmate-v0.6.0-darwin-amd64.tar.gz new file mode 100644 index 0000000..f2e54fd Binary files /dev/null and b/service/v0.6.0/agentmate-v0.6.0-darwin-amd64.tar.gz differ diff --git a/service/v0.6.0/agentmate-v0.6.0-darwin-arm64.tar.gz b/service/v0.6.0/agentmate-v0.6.0-darwin-arm64.tar.gz new file mode 100644 index 0000000..234cf4d Binary files /dev/null and b/service/v0.6.0/agentmate-v0.6.0-darwin-arm64.tar.gz differ diff --git a/service/v0.6.0/agentmate-v0.6.0-linux-amd64.tar.gz b/service/v0.6.0/agentmate-v0.6.0-linux-amd64.tar.gz new file mode 100644 index 0000000..6484d37 Binary files /dev/null and b/service/v0.6.0/agentmate-v0.6.0-linux-amd64.tar.gz differ diff --git a/service/v0.6.0/agentmate-v0.6.0-linux-arm64.tar.gz b/service/v0.6.0/agentmate-v0.6.0-linux-arm64.tar.gz new file mode 100644 index 0000000..b4c0066 Binary files /dev/null and b/service/v0.6.0/agentmate-v0.6.0-linux-arm64.tar.gz differ diff --git a/service/v0.6.0/agentmate-v0.6.0-windows-amd64.zip b/service/v0.6.0/agentmate-v0.6.0-windows-amd64.zip new file mode 100644 index 0000000..eb6d53a Binary files /dev/null and b/service/v0.6.0/agentmate-v0.6.0-windows-amd64.zip differ diff --git a/service/v0.6.0/agentmate-v0.6.0-windows-arm64.zip b/service/v0.6.0/agentmate-v0.6.0-windows-arm64.zip new file mode 100644 index 0000000..bc208a8 Binary files /dev/null and b/service/v0.6.0/agentmate-v0.6.0-windows-arm64.zip differ