Skip to content

flashCat 1.5.0

Choose a tag to compare

@imi4u36d imi4u36d released this 05 Nov 10:04
· 46 commits to main since this release

flashCat 1.5.0

首个纯原生界面的版本:界面从 WebView 换成 SwiftUI / AppKit,视觉改为 macOS 26 Liquid Glass,
并按引擎的真实生命周期(启动 → 加载权重 → 就绪)来描述状态。

新增

  • 灵动岛通知中心。 标题栏中央常驻玻璃胶囊:平时是引擎状态(引擎名、真实阶段、实时 tok/s、启停)。
    所有 toast 改从灵动岛弹出,按文案归为信息 / 成功 / 警告 / 错误四类,保留本次会话的通知历史与未读数
    (最多 30 条,3.2 秒后自动回到引擎状态)。点开原位展开:有通知时是通知列表(相对时间、清空),
    没有通知时是引擎详情(模型、状态、接口、版本、实时速度),点胶囊外任意位置收起。
  • 反馈与交流。 侧栏新增入口,弹窗展示 QQ 群号,可一键复制、拉起 QQ;群号留空时显示「待配置」。
  • 模型家族识别。 新增 ModelFamily,按仓库 id、标签与提示词认出 Qwen、DeepSeek、Llama、Mistral、Gemma、
    Phi、GPT、Nemotron、Granite、GLM、Kimi、Flux、Liquid、MiniMax 等家族,广场列表、详情与模型卡统一显示家族徽标。
  • 模型卡渲染。 模型详情把 Hugging Face README 清洗(去 front-matter、徽章与 HTML 标签、还原实体)后
    交给 Markdown 渲染,不再是满屏尖括号。
  • 日志详情。 日志行可点击展开完整正文,附完整时间、字符数与单行复制;行内改为级别色圆点 + 胶囊标签。
  • 引擎生命周期状态。 启动、卸载 / 加载权重、预热、等内存期间,标题栏、概览、菜单栏、引擎页显示真实阶段
    与「已等待 m:ss」;权重真正就位才显示「运行中」并允许对话。
  • 引擎状态细分。 引擎页区分运行中 / 启动中 / 停止中 / 异常,不再把加载权重误报成「已停止」。
  • 模型切换进度。 模型菜单里正在切换的那一项显示转圈与阶段文案(启动引擎 / 停止旧引擎 / 加载权重…)。
  • 对话计入网关统计。 应用内对话直连引擎端口时也向网关打点,概览「最近请求」与会话网格不再永远是 0 条。
  • 下载中心。 进行中的任务只保留顶部一行,状态标签区分下载中 / 已暂停 / 失败。

界面与交互

  • 界面回到纯原生。 六个页面、启动页、下载中心、模型广场、引擎配置与对话参数全部是 SwiftUI / AppKit 视图,
    直接读写 AppState:没有 WKWebView、没有快照桥、没有 token 级 IPC。删除 WebView 壳与整个 WebUI/
    (14 个 ES module + 8 份 CSS + bundle,约 2.8 万行)及 esbuild 工具链。
  • 版式逐页对齐原 WebUI:200 pt 玻璃侧栏、浮层标题栏、概览(hero + 网关 + 四指标 + 总解码 / 最近请求)、
    模型(引擎分段 + 搜索 + 两列大卡)、引擎(运行时统计 + 整行卡片)、日志(过滤条 + 玻璃控制台)、设置(左右两列)。
  • 窗口 chrome:48 pt 标题栏(折叠边栏、⌘K、外观切换、下载中心徽标)、可拖动调宽侧栏(180–320 pt)、页面切换淡入;
    标题栏不再重复放引擎胶囊,红绿灯整体右下挪 6 pt,侧栏收起档 76 → 96 pt。
  • ⌘K 命令面板:六页跳转、启停引擎、新对话、生成参数、下载中心、模型广场、切换外观、折叠边栏;↑↓ / ↵ / esc。
  • 对话:回车发送、⇧回车换行、滚动离底「回到最新」、思考块流式展开 / 首字后折叠、生成光标与呼吸点;
    输入框由 TextEditor 换成可纵向生长的 TextField(没有自带滚动条,点一下就能聚焦);
    思考菜单只列当前引擎提供的等级并勾选。
  • 模型与引擎:卡片 hover 抬升、当前项强调色描边;「正在使用」状态替代禁用按钮;模型广场支持手填 owner/repo 预检。
  • 启动页:与控制台同一套玻璃语言与画布,逐项进场动画,已安装改为玻璃徽标,安装进度显示当前步骤。

优化与变更

  • 最低系统版本提高到 macOS 27.0。 按钮组使用 macOS 27 的 .tabs 分段控件(Liquid Glass),应用下限随之上移;
    splash 引擎自身的 26.4 下限已在这个门槛之下。
  • Liquid Glass。 自绘的渐变卡片、顶部高光与冷色投影换成 macOS 26 glassEffect;窗口改为透明、内容区自铺画布,
    侧栏与标题栏成为能采到桌面的真玻璃。按钮、卡片、菜单与浮层统一走这一层材质。
  • 互斥按钮组改用 macOS 27 原生分段控件(.tabs):模型页引擎切换、日志级别过滤、设置页外观 / 思考模式 / 思考等级。
  • 所有 .plain 按钮换成 plainHit:整块玻璃底与内边距都算命中区,不再必须点到字形。
  • 切换模型的确认文案精简为「将停止 X 并加载 Y,切换期间引擎暂时无法应答」。
  • 动效统一到 Motion(140 / 220 ms + 轻弹簧)并服从 reduce-motion;持久化深色外观在启动时即时生效。
  • 安装脚本不再把上一版留在 /Applications:备份移出系统目录并注销 LaunchServices 记录,避免旧构建被 Spotlight / Dock 打开。

修复

  • 热切换期间引擎已报 ready、权重却还在搬:健康探测失败会让「已等待」停住,现在继续每秒刷新。
  • 应用内对话不进网关统计,概览「最近请求」永远 0 条。
  • 下载中心进行中的任务同时出现在顶部与列表,看起来像两个下载。
  • 删除正在下载的任务时只暂停、留下半成品与任务行;现在真正清理。
  • 启动 / 加载权重窗口内仍可发送对话、报错后才提示;现在直接给「模型正在…,请稍候」。
  • 旧进程的退出回调不再打断新进程;停止引擎时会真正回收忽略 SIGINT 的子进程。
  • 引擎启动增加就绪超时,不再永久停在「启动中」;退出应用改为异步收尾并清理全部引擎。
  • 快照序列化失败不再静默;note() 不再关闭运行期日志写入句柄。
  • 流式回复改为按消息 id 写入,切换会话不再污染另一条会话。
  • 安装脚本失败不再导致 /Applications 里没有应用(失败回滚)。

安装

  • flashCat-1.5.0.dmg:打开后把 flashCat 拖进「应用程序」
  • flashCat-1.5.0.pkg:双击一路安装

系统要求:Apple Silicon,macOS 27.0 或更高。应用为 ad-hoc 签名、未公证,首次打开请右键 → 打开。
引擎运行时不包含在应用内,首次启动按引导下载(80 MB ~ 600 MB)。

本版 202 个单元测试通过,3 个依赖本机运行时包 / 集成环境的用例自动跳过。