Skip to content

Releases: esseener/VesPi

VesPi 1.0.55

Choose a tag to compare

@esseener esseener released this 18 Sep 12:50

VesPi 1.0.55

本次更新修复两处影响日常使用的问题。

文件可直接拖入输入框

把文件拖到输入框即可添加为附件 —— 与点击纸夹按钮完全一致的处理方式:文本文件的内容会内联进消息,图片作为图片附件发送。

拖动经过输入框时会有高亮提示;拖入文件夹的行为保持不变(仍按「打开为项目」处理)。

运行状态指示恢复可见

工作区标签、侧栏、状态栏与输入框上方的运行指示,此前因为一个颜色变量写错而完全不可见 —— 正在跑的项目看起来像闲置的。

现已修复。同时工作区标签改用转圈图标:多项目并行时,「哪个在跑、哪个已完成、哪个在等审批」一眼可分(完成 / 失败 / 待审批各用不同图标)。


安装

下载 VesPi-Setup-1.0.55-win-x64.exe 覆盖安装即可,会话记录与配置自动保留。

已安装 1.0.53 及更早版本的用户,可在应用内直接获取本次更新。

完整性校验见 SHA256SUMS.txt

VesPi 1.0.53

Choose a tag to compare

@esseener esseener released this 18 Sep 11:19

VesPi 1.0.53

本次更新聚焦目标模式的可控性输出的可读性主页数据的实时性

目标模式

  • 目标条上的「完成 / 放弃」不再产生对话消息,结果只反映在目标状态本身
  • 模型正在输出时点击同样立即生效,无需等待当前回合结束
  • 操作未送达或被忽略时会给出明确提示

思考内容

  • 开启「显示思考」后,流式输出期间的思考默认折叠,点击展开

主页统计

  • 数据在页面停留期间自动刷新(每 20 秒),切回窗口时立即刷新
  • 面板底部显示最近一次更新时间

输入框提示条

  • 「仍在运行中」「子代理运行中」等提示改为独立卡片,与输入框的光效完全分离

安装

下载 VesPi-Setup-1.0.53-win-x64.exe 覆盖安装即可,会话记录与配置自动保留。

已安装 1.0.49 及更早版本的用户,可在应用内直接获取本次更新。

完整性校验见 SHA256SUMS.txt

VesPi 1.0.49

Choose a tag to compare

@esseener esseener released this 18 Sep 09:03

Fixed

  • Goal strip: the buttons now always work. Clicking 继续 / 放弃 (or 完成) while the agent was mid-turn used to be silently dropped — the strip just sat there. Mid-turn clicks are now queued as a follow-up that the kernel delivers as soon as the turn yields, and idle clicks send normally.
  • Goal strip: visible feedback. Buttons lock and show 「已请求,等待模型执行…」 until the goal's status actually moves (with a 30 s failsafe), so a click can no longer feel like it vanished.
  • Goal strip: terminal goals disappear. The kernel never sends a clearing event after drop/complete — its final event still carries the finished goal — so the strip used to stick around forever. Dropped and completed goals now clear immediately.
  • Goal strip: the impossible 暂停 button is gone. The kernel's goal tool has no pause operation (verified against 18.2.5), so that button could never do anything. Active goals offer 完成 / 放弃; the in-app guide no longer asks the model to pause.

SHA256SUMS.txt is published alongside the installer; the updater verifies it.

VesPi 1.0.48

Choose a tag to compare

@esseener esseener released this 18 Sep 08:10

新增

滚回去读历史时,输入框自动收起

输入框浮在消息列表之上,而且按设计是全透明的,所以往回滚的时候它的文字直接压在正在读的消息上。现在改成:视图离开底部就把整个浮空输入框(含渐变底色)淡出收起,滚回最底部再连光标一起显示回来。

绝不收起用户会丢东西的状态——有草稿、有暂存附件、@ / / 菜单或「打断/追加」选择器打开着、有待回答的权限弹窗时,输入框保持原位。重叠一点,也比草稿消失好。

点一下空输入框再滚上去读历史,正是这个功能要解决的场景,所以「是否聚焦」不算用户工作。

细节

  • 收起用 invisible 而非 hidden:保留布局盒子,消息列表底部留白不会跳动
  • 跳到底部按钮成为唯一回路,因此从「停在输入框上方」改为贴底放置
  • 隐藏同时加 aria-hidden,键盘用户不会 tab 进一个看不见的输入框
  • 共补 4 项回归测试(scroll-follow.test.ts 共 11 项)

同时包含 1.0.47 的修复

上一版修掉的「删掉供应商后模型仍卡在选择里」,其根因是内核会整体拒绝含「有模型、无 key」供应商的 models.yml——一家坏记录会让所有供应商的模型全部消失。1.0.48 包含该修复。

VesPi 1.0.47

Choose a tag to compare

@esseener esseener released this 18 Sep 07:47

修复

删掉供应商后,它的模型还卡在模型选择里

在设置里清空某个供应商的 key、或整条删除它之后,输入框上方的模型选择里那个模型仍然在。查下来是两个原因叠加:

  1. 判断「已退休供应商」的规则只覆盖了「清空 key」,没覆盖「整行删除」——删掉的供应商落到「配置里不存在」这一分支,被当成「不归我们管」放行了。

  2. 更关键的一点:清空 key 之后,配置里仍留着一条「有模型、但没有 key」的供应商,而内核会校验整份 models.yml 并整体拒绝:

    Validate(models) error: Provider <name>: "apiKey" is required when
    defining custom models unless auth is "none" or "oauth".
    

    接着内核报 "No models available"——不只是那一家,所有供应商的模型全部消失,界面于是停在旧状态,看起来就像「删不掉」。

改动

  • 退休判定改成两条互补规则:配置里没有该供应商 = 已退休;配置里有但 key 不可用 = 已退休。配置文件读不出来时一律不退休,避免一次瞬时读取失败清空整个菜单。
  • 写入 models.yml 时把这类供应商整条排除,不再生成会让内核整体报错的条目;authnone/oauth 的按内核约定放行。
  • 打开模型选择时并行重读配置与内核列表——此前只读内核列表,而配置才是用户刚编辑的那一半。

验证

对内核 18.2.5 实测:清空某家供应商的 key 后,由「整份配置被拒、可用模型归零」变为「只少这一家,其余 8 个模型完好」。

补了 12 项回归测试;npm test(1252 项)与类型检查、lint 全部通过。

VesPi 1.0.46

Choose a tag to compare

@esseener esseener released this 18 Sep 05:54

本次改动(视觉统一)

输入框那条流光不再"碎"了

之前圆角处的亮光有断点、碎点,不像一条光在流动。原因是技术路线:旧实现是沿边平移一条直线渐变,扫到圆角时与边框几何对不齐。现在换成锥形(conic)渐变绕圈 + 角度动画驱动——这才是"一条光绕框走"的写法,另外加了 2px 描边和一层 drop-shadow 光晕,让细线连成一条实光而不是发毛的细线圈。(这套做法来自你自己那份 ZCode 主题 v13.1,直接复刻。空闲 8 秒一圈,模型输出时 2.2 秒一圈。)

输入框:空闲全透明

  • 空闲时没有任何边框、底色和阴影,只有主界面背景——和你 ZCode 的定版一致;
  • 只在模型运行时才出现那条白色流光。

药丸弹窗与所有弹窗:统一成一种材质

  • 长在输入框顶边的两条(子智能体列表、"仍在运行"提示):保留不透明底 + 模糊(它们有文字,透明了就看不清),圆角与输入框一致、描边共用同一套流光;
  • 其余所有浮层(菜单、命令面板、右键菜单、状态弹层、各类对话框等 14 处)统一为:24px 背景模糊 + 82% 底色 + 14px 圆角 + 柔和描边——能挡住底下的内容,文字清楚。

安装

下载 VesPi-Setup-1.0.46-win-x64.exe 覆盖安装即可,会话与设置保留;校验用 SHA256SUMS.txt。应用内点「下载」即可更新(多连接分片 + 断点续传)。

VesPi 1.0.45

Choose a tag to compare

@esseener esseener released this 18 Sep 04:53

本次修复

模型供应商:把 key 清掉,现在真的清掉了

之前有个不符合直觉的行为:把某个供应商的 API Key 删空、保存之后,它的模型依然出现在模型切换列表里,看起来像"删不掉"。

原因值得说清楚——保存用的是逐字段合并:编辑界面没有提交的字段,会被当成"没意见",保留磁盘上的原值。而界面在把行转换成配置时,恰恰把空字段省略掉了:

...(apiKey ? { apiKey } : {})     ← 你清空 key 后,整个字段被省略

于是保存链路把它理解成"这个字段不用动",旧 key 原样补回来,供应商依旧可用,模型自然还在列表里。(删掉整个供应商是另一条路径、本来就能生效——这也解释了为什么只有"清字段"这条路坏掉。)

现在:

  • 清空即清空baseUrl / api / apiKey 一律按界面上的内容提交,空就是空;一个既没有 key、也没有模型的供应商会被整条移除。
  • 已清空的供应商不再提供模型:模型切换列表会过滤掉"配置里存在但没有可用 key"的供应商的模型。
  • 不会误伤:配置里不存在的供应商保持原样(内核可能列出在 VesPi 之外配置的模型),其它供应商的模型照旧可选。

操作提示

  • 只想停用某个供应商:把它的 Key 清空并保存 → 它的模型从切换列表消失;
  • 想彻底移除:用该行右侧的删除按钮(这条路一直正常);
  • 保存后若没有会话在跑,VesPi 会自动重启内核,新配置立即生效。

顺带(更新链路)

这一版的构建过程还暴露出下载器的一个收尾竞态:分片合并完成后没有等文件真正落盘就去校验/改名(Windows 上会直接 EBUSY)。已修,并顺带增强:清理临时文件失败不再让一次已经成功的安装失败。实测更新下载走 6 连接并行,203MB 约 16 秒。

安装

下载 VesPi-Setup-1.0.45-win-x64.exe 覆盖安装即可,会话与设置保留;校验用 SHA256SUMS.txt。应用内点「下载」即可更新。

VesPi 1.0.44

Choose a tag to compare

@esseener esseener released this 18 Sep 04:19

本次修复

滚动跟随:判据从"此刻贴在底部吗"改成"你是否主动滚开"

这几天连着出现三种表现,其实是同一个设计缺陷:跟随逻辑看的是瞬时测量值("视口此刻是否在底部"),而这个值在没人滚动的情况下也会变成 false——视图定位好之后内容继续变高(图片后加载、块重排、紧随提示词追加的通知)就会把它弄脏,于是这一轮剩下的输出全都不再跟随,必须手动滚一下才恢复。现在改为记录"你是否主动滚动离开":只有真实的滚动事件能停止跟随,滚回底部立刻恢复;而"发送/切回会话/跳到最新"这些明确动作一律贴住尾部。

具体修掉三处:

  • 中断后再发送:输出不再停在视口下方、需要手动滚。
  • 切到别的会话再切回(模型还在输出):直接落在正在增长的文字上并继续跟随,不再回到旧阅读位置。
  • 发送排队消息(上一轮还在跑时发的)同样会回到底部。

另外补了针对这三种场景的回归测试(scroll-follow.test.ts),把"用户没滚开就必须跟随""发送永远回底部""Auto Scroll 关掉则不动"钉住。

子智能体条与输入框同一套流光

「1 个子智能体运行中」那条贴在输入框顶边,之前自带一条静态边框,而输入框只有动效扫光——一条静止、一条在动,看着就是"贴上去的另一样东西"。现在它用与输入框完全相同的描边机制(同样的 1px 蒙版描边、同样的配色与动画节奏),底边留空,于是光是绕着"条 + 输入框"一整圈走的。

更新检查遇到 GitHub 限流:不再当成故障

  • 关于页:限流时用警告色说明原因,并补一句"这不会影响正常使用;稍后会自动重试",不再是一行红字。
  • 顶部横幅:限流不再弹横幅(它是暂时的,会自己重试),其它失败照旧提示。
  • 自动检查退避:撞到限流后自动检查推迟 2 小时再试,不再每 30 分钟去撞一次。手动点「检查更新」始终立即执行。
  • 内核检查缓存 2 小时:内核是周级更新节奏,没必要每半小时查一次——这一项就把每次检查消耗的接口请求从 2 个降到 1 个(GitHub 未登录接口每小时只有 60 次,且按出口 IP 共享,代理/VPN 后面往往是很多人在用同一个额度)。

顺带说明你之前那个疑问:"很久没点更新,点一下却报 403"——那不是你点多了,而是代理出口的额度被别人用光了。实测你自己直连的额度还有 57/60,而应用走的是系统代理出口。

安装

下载 VesPi-Setup-1.0.44-win-x64.exe 覆盖安装即可,会话与设置保留;校验用 SHA256SUMS.txt。应用内点「下载」即可,会走多连接分片 + 断点续传(慢线路也能下完)。

VesPi 1.0.43

Choose a tag to compare

@esseener esseener released this 18 Sep 02:16

本次修复(界面)

侧栏的会话运行标识

  • 上一版把那个"转动的球"换成细弧线时用了灰色,在灰色的会话列表里几乎看不见。现在改成强调色的细弧线,正在运转的会话一眼可辨。
  • 新增一种状态:内核在跑但空闲 → 一个空心圆环(能看出这个会话有活着的进程,又不与正在忙的会话抢注意力)。
  • 需要确认 / 已完成 / 出错 仍是原来的图标。

输入框:没有边,只有流光

  • 上一版为了"静止时还看得出边界",在流光底下留了一层灰色底边;现在整层去掉,输入框没有任何静态白边。
  • 静止:一条柔光沿边缓慢环绕(8 秒一圈);模型输出中:同一条光变亮、约 1.15 秒一圈。

附带

  • 发布流程加了一道自动断言:打包完成后必须在产物里找到本次改动对应的标记,否则 CI 直接失败——用来杜绝"改了、但你装到的还是旧的"。
  • 更新下载(1.0.42 起)已改为多连接分片 + 断点续传 + 无进展超时:慢线路不再必然失败,中断后从断点继续。

安装

下载 VesPi-Setup-1.0.43-win-x64.exe 覆盖安装即可,会话与设置保留;校验用 SHA256SUMS.txt。应用内点「下载」即可完成更新(走的已是新下载器)。

VesPi 1.0.42

Choose a tag to compare

@esseener esseener released this 17 Sep 16:55

本次修复

更新下载:慢连接不再必然失败,而且能跑满带宽

  • 之前给下载设的上限是"总时长 10 分钟":210 MB 的安装包要在 10 分钟内下完,平均需要 350 KB/s,否则一律失败(日志里就是 timed out)。实测你这条线路约 311 KB/s,所以每次都会在第 10 分钟整被掐断——这跟 VPN 快不快无关,是我们的错
  • 现在改成"连续 45 秒收不到任何数据才放弃",慢但稳定的线路可以一直下完。
  • 同时改成多连接并行下载(6 路 Range 分片):单条连接被限速时能把带宽叠加起来;并且支持断点续传——中断后再点一次从断点继续,已下载的部分不会白费。
  • 失败提示改成能照着做的(例如"确认代理规则是否覆盖 *.githubusercontent.com"),不再只丢一句 timed out

顺带:检查更新遇到 GitHub 接口限流(403)时会说明原因——未登录请求每小时只有 60 次、按出口 IP 计,代理或 VPN 的共享出口容易被多人用光——而不是在界面上显示一个裸的 403

安装

下载 VesPi-Setup-1.0.42-win-x64.exe 覆盖安装即可,会话与设置保留;校验用 SHA256SUMS.txt

提示:如果你现在跑的是 1.0.41,它的下载器还是旧的(可能依旧下不动)。这种情况下直接用浏览器下载本版本手动装一次即可;装上 1.0.42 之后,再往后的更新就会走新的下载器。