Releases: ErisPulse/ErisPulse-App
Releases · ErisPulse/ErisPulse-App
Release list
ErisPulse-App v0.2.5
新增
- 桌面无边框窗口(
window_manager/tray_manager):全部页面共用同一
自绘顶栏,空白区拖动窗口、双击最大化 / 还原、最小化 / 最大化 / 关闭按钮
齐全;系统托盘左键恢复窗口、右键菜单退出;关闭走确认(询问 / 最小化到
托盘 / 停止并退出,可记住选择) - 首页实例列表自适应布局:随窗口宽度在单列 / 两列 / 三列网格间切换
(≥1150 三列 / ≥760 两列 / 否则单列),卡片撑满内容区 - 退出时「正在停止实例」过渡页面:停止全部实例期间显示提示,防止用户
误以为卡死而强行关闭
变更
- 概览页重构为大屏运营 dashboard 风格:顶部状态横幅(名称 + 状态 / 健康
徽章)、Hero 大数字 4 格(适配器 / 模块 / 在线机器人 / 事件总数,点击
跳转对应视图)、系统资源大进度(CPU / 内存 + 运行时长 / PID / 线程 +
框架版本)、机器人平台分布(按平台分组在线 / 总数)、消息统计、最近
事件;宽屏左右两列(资源 flex 3 : 平台分布 flex 2),手机单列、大数字
恒为 2×2(列数阈值与外层宽窄屏判断统一,避免窄屏溢出) - 移动端首页实例列表由
ListTile改为圆角卡片,状态点 / 名称 / 状态文本 /
端口标签分层排布,统一 M3 卡片风格 - Android APK 改为纯 arm64-v8a 构建(179MB,原全平台胖包 196MB):runtime
二进制本就只有 aarch64;纯 64 位设备(骁龙 8 Gen 3 / 天玑 9300 等)的
ROM 会拒绝安装含 32 位库的 APK。经abiFilters+disable-abi-filtering
过滤所有来源(引擎 / 插件 AAR / jniLibs),CI 产物不再提供 universal 胖包 - 桌面左侧导航与主区
IndexedStack联动切换,移除主页内容区居中限宽
修复
- 实例未启动时点击其它视图(监控 / 事件 / 日志等)报连接错误:改为统一
「实例未启动」引导占位(可一键启动),启动完成后自动连接并切换真实
视图,无需手动刷新 - 「停止实例并退出」退出卡住:停止实例改为并行且逐层超时(子进程调用
全部异步,不阻塞 UI),停止完成后直接终止进程(先隐藏窗口避免残留
冻结帧),秒级确定退出;无本地运行实例时不弹过渡页直接快速退出 - 启动期概率性「页面加载但无法点击 / 主题色回退默认紫色」:窗口初始化
未等待完成即 runApp,且 setAsFrameless 与 setTitleBarStyle 混用导致
窗口样式竞争(FlutterView 子窗口几何与客户区错位、取色通道未就绪)。
改为完整等待窗口就绪后再启动 UI,并统一只用一种无边框机制
ErisPulse-App v0.2.3
新增
- 设置页(Windows)新增「关闭窗口行为」:每次询问 / 最小化到托盘 /
停止全部实例并退出(与关闭确认弹窗的"记住我的选择"联动) - Windows 窗口生命周期管理(原生 runner +
erispulse/window通道):- 系统托盘图标:左键点击恢复窗口,右键菜单(打开 / 退出)
- 关闭窗口(X / Alt+F4)弹出确认:最小化到托盘(实例继续后台运行)
或停止全部实例并退出,支持"记住我的选择"(设置持久化,不再询问) - 单实例限制:重复启动时恢复并激活已有窗口(包括托盘隐藏状态),
不再开出第二个进程
- 桌面实例进程收养(App 重启后恢复管理):
- 实例 PID 持久化;启动时探测实例端口存活——仍运行则收养进运行时
(优先持久化 PID,失效按netstat/ss反查真实 PID),UI 显示
运行中、可正常停止,不再出现"显示已停止实际在跑、再启动变双实例" - 端口无响应则清除过期的持久化 PID
- 实例 PID 持久化;启动时探测实例端口存活——仍运行则收养进运行时
修复
- Windows 安装版(setup.exe)打开 Dashboard 永久转圈:WebView2 默认把
user data folder 放在 exe 同目录,安装到 Program Files(只读)后环境
创建失败。现显式指定到应用数据目录(%APPDATA%<app>\WebView2),
环境进程级共享复用 - Dashboard 自动登录失效(Windows 表现明显):token 注入从
"加载完成后 evaluateJavascript 写 localStorage 再 reload"改为
**UserScript(AT_DOCUMENT_START)**预注入——页面 JS 执行前写入
localStorage.__ep_tk__(带 origin 校验),dash.js 启动即读到并登录,
消除对 evaluateJavascript 时序的依赖;模块视窗 go() 跳转不再被注入
状态门槛拦截,DOM 就绪重试延长到 15 秒 - Dashboard 加载 8 秒超时后不再白屏/永久转圈:显式报错并支持整体重建
WebView 重试(不再仅 reload) - 首次进入 Dashboard 等待 WebView2 环境就绪期间显示加载态,环境创建
失败自动回退默认路径
优化
- PC 概览页:大数字统计格改为横向布局(主题色图标气泡 + 大数字 +
标签),去除竖分隔线;宽屏两列顺序调整为左(概览 / 消息统计)+
右(事件 / 连接信息),高度更均衡
ErisPulse-App v0.2.2
新增
- 模块动态视窗入口(对齐 Dashboard
/api/views):- 详情页轮询同步模块注册的视窗,按分组自动插入导航(内置组复用同名
分组,system / tools / 自定义分组追加末尾),装卸模块后入口实时增减 - 视窗内容不在 App 内渲染:点击入口直接跳转 Dashboard 对应页面
(WebView 登录后以go()定位,模块页面异步渲染自动重试) - 视窗图标(icon_svg)以 flutter_svg 原样渲染;标题 / 分组标题按
App 语言解析 titles / group_titles 五语言字典
- 详情页轮询同步模块注册的视窗,按分组自动插入导航(内置组复用同名
- 概览页对齐 Dashboard 仪表盘:
- 大数字统计 4 格(适配器 / 模块 / 在线机器人 / 事件总数),点击
跳转对应视图 - CPU / 内存告警变色(>60% 橙 / >85% 红)
- 版本行(ErisPulse vX · Python Y,来自 /api/status)
- 大数字统计 4 格(适配器 / 模块 / 在线机器人 / 事件总数),点击
- 商店标签筛选折叠:默认折叠为一行(已选标签以可删除 chips 展示 +
一键清除),点击展开完整多选列表
修复
- 桌面端左侧导航出现两个"概览"分组标题(固定概览项与机器人视图
同组但重复渲染标题)
变更
- 创建实例页 PC 布局重构:宽屏两栏铺满(左:引导 / 类型 / 名称;
右:端口或远程地址 / 环境来源 + 创建),移动端保持单列 - 创建实例副标题按平台区分文案(桌面=本机运行,手机=手机内独立运行)
- SDK 版本下拉限制菜单高度(360),不再占满全屏
ErisPulse-App v0.2.1
新增
- 详情页导航对齐 Dashboard 侧边栏颗粒度:
- 视图按 5 个分组组织(概览 / 事件 / 扩展 / 管理 / 运维),桌面端左侧
导航显示分组标题,移动端 TabBar 保持同一顺序平铺 - 顺序:概览(机器人)→ 事件(事件流、命令)→ 扩展(模块、商店)→
管理(适配器、配置)→ 运维(监控、文件)
- 视图按 5 个分组组织(概览 / 事件 / 扩展 / 管理 / 运维),桌面端左侧
- 新增「监控」视图:日志 / 生命周期 / 审计三合一子 tab(对齐 Dashboard
monitor 页结构,替代原先 3 个独立视图) - 新增「商店」视图(对齐 Dashboard store 页):
- 商店浏览:搜索(防抖)/ 类型过滤(模块 / 适配器)/ 标签多选筛选 /
强制刷新;卡片含类型徽章、官方标识、安装状态(未安装 / 有更新 /
已安装带版本),一键安装或升级 - 包详情对话框:描述 / 作者 / 许可证 / 主页 / 依赖 / 历史版本列表,
点击任意版本安装指定版本 - 包管理:已安装(升级 / 卸载 + 框架更新卡)、可更新(单包 / 全部
升级)、安装新包(pkg==1.0与git+URL)、Git 包列表与升级 - 安装 / 升级为后台 pip 任务:确认框可选 pip 镜像源与强制重装,
进度对话框轮询 task 实时状态与输出(running / success / error)
- 商店浏览:搜索(防抖)/ 类型过滤(模块 / 适配器)/ 标签多选筛选 /
DashboardApi新增商店端点:getStoreRemote/storeInstall/
getInstallStatus/getPackageDetail/getPackageUpdates/
upgradePackages/getGitPackages/upgradeGitPackage;
installPackages改为返回 task_id 支持进度跟踪
变更
- 「包」视图(PackagesTab)并入商店「包管理」tab,框架更新 / SDK 重启
随之迁移;详情页视图 11 → 10(概览 + 9 个注册视图)
ErisPulse-App v0.2.0
新增
- 详情页视图 8 → 11:新增「生命周期」「命令」「机器人」三个原生视图
- 新增「生命周期」原生视图(
/api/lifecycle,事件时间轴列表:类型过滤 +
清空 + 刷新,时间 / 类型 / 来源 / 摘要),替代 Dashboard 前端 lifecycle 页 - 新增「命令」原生视图(
/api/commands):- 全局设置卡:指令前缀 + 前缀区分大小写 / 允许空格前缀 / 必须 @机器人 开关,
一键保存(PUT /commands/settings) - 命令列表:每个命令的启用开关即时保存(
PUT /commands/{name})+ 编辑对话框
(别名 / 允许平台 / 禁止平台 / 转发为,逗号分隔)
- 全局设置卡:指令前缀 + 前缀区分大小写 / 允许空格前缀 / 必须 @机器人 开关,
- 新增「机器人」原生视图(
/api/bots):机器人卡片列表,在线状态指示点 +
能力 chips + 最后活跃相对时间(从未活跃 / 刚刚 / 分钟 / 小时 / 天前) - 概览页新增「消息统计」卡片(
/api/message-stats):总事件数 + 按类型 /
按平台分布 + 近 24 小时趋势柱状图(与概览数据同轮询周期刷新) - 事件流页新增「构建器」模式(SegmentedButton 查看 / 构建器切换):
- 事件类型(message / notice / request / meta)+ 子类型下拉 + 平台
(内置列表或自定义)+ 机器人选择 + 会话类型 / ID - 消息分段编辑器(多段,字段名自动缓存)、可选字段 key/value 注入、
JSON 实时预览(可复制)、提交校验(/api/builder/segments+
/api/builder/submit),提交后自动回切查看模式并刷新
- 事件类型(message / notice / request / meta)+ 子类型下拉 + 平台
- 全局设置页新增「生命周期清理」相关键(
/api/lifecycle/clear)
修复
- 无
[0.1.2] - 2026/08/14
[0.2.0] - 2026/08/12
新增
- 多实例管理:一个 App 创建、运行、管理多个 ErisPulse 实例(独立端口 / 工作目录 / token)
- 原生 UI(不依赖 WebView),基于 Dashboard REST/WebSocket API:
- 实例列表与详情页
- 系统监控(CPU / 内存实时图表)
- 流式日志(级别过滤 / 暂停 / 复制)
- 适配器与模块管理
- 配置 TOML 视图
- Android 嵌入运行时:proot + Ubuntu rootfs + Python + ErisPulse 全部内置,离线可用
- 后台保活:Foreground Service 常驻 + 崩溃自动重启
- 首启向导:运行时解压进度与日志视图
说明
ErisPulse-App v0.1.2
新增
- 详情页视图注册机制(
DetailViewRegistry+InstanceView):内置视图统一由
注册表驱动,PC 宽屏改为左侧竖向导航 + 内容区(IndexedStack保留各视图状态),
移动端保持顶部 TabBar(视图自带 keep-alive);未来 SDK 动态注册视图经
register()加入后自动出现在导航,无需改动详情页布局 - 新增「事件流」原生视图(轮询
/api/events,类型过滤 + 自动刷新 + 清空),
替代 Dashboard 前端 event-stream 页 - 新增「审计」原生视图(
/api/audit,时间 / action / 详情 / IP + 清空),
替代 Dashboard 前端 audit-log 页 - 日志 Tab 完整版:
- 软日志 / 进程日志双数据源切换(SegmentedButton)
- 软日志工具栏对齐 Dashboard 前端日志页:模块过滤、等级过滤、搜索(防抖)、
最新在底/顶排序、暂停滚动、自动滚动、行数计数、复制 / 导出 / 清空 - 进程日志为实例实时 stdout/stderr(
DebugLogBuffer按实例缓冲,实时非持久化)
- Dashboard 内嵌页改为 App 侧 reload 完成 token 注入,避免前端
location.reload()的 onLoadStop 事件链不一致
修复
- PC 详情页滚轮不再切到相邻 Tab:桌面端走左侧导航(TabBarView 仅移动端)
- Dashboard 在 App 内一直转圈:token 注入后的刷新不置 loading 态 + 8s 加载超时兜底
- 首页长按 / 右键菜单停止 / 重启后主动探活回写,列表状态不再滞后
- 桌面停止实例改进程树终止(Windows
taskkill /F /T、POSIX SIGTERM→SIGKILL),
避免子进程残留导致端口仍健康、"停止无效" - 全屏日志页等级过滤"无效果":
level_num兜底解析缺失的level字段 +
工具栏显示当前过滤级别 chip + 过滤空态提示 - 日志等级体系完整:SDK 自定义级别
TRACE=5/EVENT=21正确解析并显示
(原先被误解析为 INFO,导致日志页"只有 INFO");等级过滤改勾选
(FilterChip 精确级别集合,含 TRACE/DEBUG/INFO/EVENT/WARNING/ERROR/CRITICAL),
默认仅显示 INFO 及以上 - 概览页移除「查看日志」按钮(日志已是原生 Tab,与 Dashboard 入口保留)
- PC 概览页启停 / 软重启 / 硬重启按钮直接可见(移动端仍走右上角菜单)
- 概览卡片宽屏两列布局(资源+连接 / 事件),不再单列长条
- 调试页不再显示 Android 设备行:按平台取设备信息(Android 走 device_info,
桌面显示操作系统版本) - 基于已有实例创建时不再"卡死":venv 复制改异步 IO(原同步递归复制会冻结
UI),进度对话框显示确定性进度条 + 已复制文件数 + "请勿关闭窗口"提示
内部
DashboardApi新增getAuditLog/clearAuditLog,getEvents支持
limit/type服务端过滤参数- i18n:新增事件流 / 审计 / 日志完整版相关键,同步 zh-CN / zh-TW / en / ja / ru
ErisPulse-App v0.1.1
新增
- 桌面运行时重构:完全移除 pybuild 便携运行时下载,改为构建时内置
python-build-standalone(Python 3.15,即 uv managed Python 来源)到
assets/python/python-{platform}-{arch}.tar.gz,首次使用释放到
~/.erispulse/python/并引导 pip - 实例环境分离(PC + 移动端统一):每个本地实例使用独立虚拟环境
(PC~/.erispulse/instances/{id}/.venv;移动端 rootfs 内
{workingDir}/.venv),启动用 venv python 并注入VIRTUAL_ENV,
后端包管理命中实例环境,不再回落系统 Python;旧实例无 venv 自动回退 - 创建实例可选环境来源:
- 全新环境:选 ErisPulse SDK 版本(PyPI,可选随装 ErisPulse-Dashboard),
python -m venv+pip install准备;移动端 venv 带
--system-site-packages(离线继承 rootfs 预烘焙版本) - 基于已有实例:复制某个已有实例的 venv(继承其 SDK 版本与已装包),
即"在谁的 venv 基础上建立新实例"
- 全新环境:选 ErisPulse SDK 版本(PyPI,可选随装 ErisPulse-Dashboard),
- 实例不绑定 SDK 版本:首次安装版本记入实例记录,之后可随时通过
Dashboard 包管理更新框架版本(更新后同步记录) - 移动端:FGS 新增
prepareInstance通道(fresh / clone 环境准备 +
instanceEnv完成回执),创建页两端均提供环境来源选择 - 下载源拆分:GitHub 镜像(移动端 rootfs 下载)+ 新增 PyPI 镜像源
(官方 / 清华 / 阿里,桌面端 pip 安装使用) - 创建实例页桌面版:SDK 版本选择(PyPI 列表,含预发布标注)+
安装 Dashboard 开关 + 环境准备进度日志弹窗 - 运行时管理页改为 PC 环境概览:内置 Python 状态 / 各实例 venv /
PyPI 镜像源 - 适配器多 bot(账户)配置:配置页分「全局设置」与「Bot 账户」两区,
支持账户列表、启用开关、新建 / 编辑 / 删除账户(schema 驱动表单,
保存后端校验并热重载) - Dashboard 访问密钥自动注入:打开内嵌 Dashboard 时自动把实例 token
写入前端 localStorage(__ep_tk__)实现免手动登录;AppBar 复制按钮
改为可见的「访问密钥」文字按钮(带钥匙图标),用户不再找不到密钥
修复
- 框架更新信息不显示:后端
/framework/versions无latest字段,
改为使用can_update+versions首个,无更新时禁用按钮并显示"已是最新" - 日志改走 Dashboard WebSocket 日志流(
log_entry+data解包 +
module字段),桌面 / 移动端统一(历史用/api/logs填充 + WS 实时) - 配置页删除源码模式,只保留渲染(JSON 树 + 单键编辑)
- 修复实例安装包被装到系统环境的问题(见上"每实例独立 venv")
- 适配器 Tab 过滤混排的模块条目(只保留
type=adapter) - 配置 Tab 删除顶部"渲染 / 复制"栏,只保留配置树
- 日志页新增等级过滤与导出下载(系统下载 / 文档目录)
- PyPI 版本排序修正:正式版排在预发布之前(
2.7.1>2.7.1.dev4> … >2.7.1.dev0),
预发布按后缀数字排序(PEP 440 语义) - 桌面 App 关闭时终止全部实例进程(
AppLifecycleListener.onExitRequested),
不再残留 python 进程 - 创建实例页 PC 布局优化:表单限宽居中(560px),环境来源分组加标题,宽屏不再全宽拉伸
- 关于 / 首启 / 清空日志文案去掉 proot / Ubuntu 等实现细节,统一通用(实现细节见架构文档)
- 详情页操作按钮移入右上角菜单(停止 / 软重启 / 重启进程),概览页更简洁
- 开源地址与 rootfs 下载镜像更新为
ErisPulse/ErisPulse-App - CI:修复 Windows 打包步骤 PowerShell 语法、macOS ditto 产物路径(
erispulse_app.app) - 修复桌面端"内置 Python 释放失败":内置 Python 资产命名不一致(CI 打
python-windows-x64.tar.gz,App 按python-windows-amd64加载),
统一为x64,Windows / Linux 首次启动可正常释放 Python - 桌面端产物:Windows / Linux 为 x64,macOS 为 arm64
(Windows on ARM 用户可直接用 windows-x64 产物,x64 模拟层可运行) - Windows 新增 Inno Setup 安装器(x64,产
*-setup.exe),与 zip 一起发布
变更
- Dashboard 随 SDK 一起安装(移除"安装 Dashboard 模块"开关,恒装
ErisPulse-Dashboard)