Repository navigation
flashCat 1.5.0
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 个依赖本机运行时包 / 集成环境的用例自动跳过。