Skip to content

v1.2.0-beta.14

Pre-release
Pre-release

Choose a tag to compare

@xzghua xzghua released this 18 Sep 15:32
· 6 commits to feat/auth-broker since this release

测试版。这一版只有三件事,但第三件是第五次修同一类问题——所以这次修的不是那个洞,是「为什么每次都漏」。

下载哪个

平台 文件
macOS(Apple 芯片) myFlowForge-1.2.0-beta.14-arm64.dmg
macOS(Intel) myFlowForge-1.2.0-beta.14.dmg
Windows myFlowForge-1.2.0-beta.14-x64-setup.exe
Android myFlowForge-1.2.0-beta.14.apk
Linux(无界面 daemon) myFlowForge-daemon-1.2.0-beta.14-linux.tar.gz
iOS TestFlight

权限门:一条总线,收掉了五份抄本

第五次收到「某条路上的权限门没接上,界面一直停在运行中」。前四次都是哪漏补哪。这次做了全量普查,结论是:漏不是手误,是结构——权限门在这个项目里有 5 份各自为政的实现、3 条广播频道、2 个方向相反的默认值(委派写死拒绝,工作流泳道默认放行,而没有任何地方能同时看见这两件事)。

根因有两条。一是 onConfirm 是必填字段,但**「填了个桩」和「真接到界面」在类型上完全分不开**——写一句永远拒绝的假回调,和写一个真回调,编译起来一模一样,编译器永远不会告诉你哪条路的门是死的。二是新增一条执行路径要同时想起五件事,其中最后两件(去通知桥加一个分支、去推送里加一个分支)没有任何东西会提醒你,而它们恰恰决定了「你在别处能不能知道有门在等」。

现在所有的门都从一条总线过,它管三件事:谁在等(唯一一张表,任何界面都能把还挂着的门重建出来)、怎么让人知道(一个出口喂系统通知和手机推送)、不需要人答的路径也要登记一次(这样「这条路故意没有门」和「这条路的门坏了」终于是两件分得开的事)。

建区 Hook 那条先搬上去了,因为卡住的就是它。 它的门以前只活在建区模态框的 React state 里——点「后台运行」会把它藏起来、点关闭会把它销毁,而主进程那边还 await 着一个不超时、不兜底的承诺。同时它进不了系统通知、手机推送、机器人桥、桌面宠物里的任何一个,所以你在别处根本无从知道有东西在等你。现在:门活在主进程,界面关不关都不影响;建区的门第一次能进通知和推送;右下角那颗后台小药丸会直说「XX Hook 等你放行」,而不是永远一句「正在后台配置工作区…」——在跑和卡在门前,以前在屏幕上长得一模一样。

还加了一条覆盖率守卫:每个来源必须恰好被分类一次,桌面通知和手机推送必须认同一批来源,任何会启动 agent 的文件要么从总线取门、要么写明为什么不用。它当场抓出两条连全量普查都没数到的路径(运行总结、门回答——两个一次性调用,onConfirm 压根没传)。顺带还炸出工作流那条 headless 路径一直吃着「默认放行」。

思考中 / 执行中:两枚图标重画

上一版那枚「主代理思考中」是 12 根放射线条逐段亮灭——那正是 macOS、iOS 和所有浏览器用来表示「加载中 / 连不上网」的形状,所以它读起来是网络断了,不是在想事情。问题不在做得好不好,在于这个形状已经被系统占用了。

现在主代理是一张两级思维导图,信号在层与层之间来回传:中心 → 一级 → 二级 → 再传回来,同一时刻只有一层亮着,整张图 4.2 秒转一圈。子代理是三圈同心波纹往外推,跟着你选的强调色走(也跟着壁纸自动配色)。两者靠形状区分——散开的网 vs 同心的圈——而不是同一个图标换颜色:颜色在小尺寸、换皮肤、色弱三种情况下都不成立。

尺寸也不是随手定的:think 那一行的行高只有 15.75px,16px 是不撑高它的上限;再小的话二级连线会掉到一个物理像素以下,在 1× 屏上糊成灰雾。

远程主机那一屏

链路那几行以前是一段散文假装成图。 「坏在哪」和「去查什么」塞在同一个字段里,而它画在一个 flex 行里——三十多个字把整行撑爆,连「中转 → 对方」这个标签本身都断成了两行,五块信息在一张卡上互相抢。

现在短的归短的(六到八个字,画在链路旁边),长的归长的(挂在悬停提示上,而且最多出现一次——下面那行状态已经在说发生了什么,再补一句就是两句话抢同一件事)。链路重画成节点和连线,不换行。「后一段时延为推算值」那整整一行变成一个 ~ 前缀加悬停说明:标注推算值是义务,每次占一行不是。

顺手修掉「已断开,0 秒后重连」——一个永远不会到来的倒计时,看着就像卡住了。

这一屏的说明文字也砍到只剩一句。 删掉的那句是在给另一个界面写说明书,而那个界面的名字就贴在左边导航上。

已知没修

  • 聊天和工作流的门还没搬上总线,它们仍走各自的旧频道(代码里标着「待迁」)
  • run2Handlers 和几个 WorkspaceView 的测试在这条分支上早就是红的,这一版没碰