Skip to content

Releases: huibinma/Scout

Scout v0.9.60

Scout v0.9.60 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Aug 04:05

Scout v0.9.60(Windows / macOS)。

本次更新:三路深度评审修复(对照 Everything 完整性 / Scoutd 服务稳定性 / 桌面界面梳理)

1. 内置原生索引:修复移动盘/U 盘拔插后可能返回旧卷陈旧结果

如果拔出一个 U 盘后,另一台设备插入并复用了同一个盘符,内置原生索引此前会继续把该盘符之前缓存的旧索引当结果返回,而不是识别出这已经是另一块盘。现在会在每次命中缓存前核对卷标识,识别到卷已更换会自动重建索引。

2. Scoutd 后台服务:崩溃自动恢复 + 状态上报修正

  • 此前 Scoutd 服务如果意外崩溃退出,只能等下次开机才会被 Windows 重新拉起;现在配置了失败恢复策略,崩溃后会在 10 秒 / 30 秒后自动重启。
  • 服务异常退出时,此前会被 Windows 误判为"正常停止";现在会如实上报为失败状态,方便结合 services.msc / 事件查看器排查。

3. 桌面界面:修复「内置原生索引」检测长期误报,精简状态栏

  • 设置页与快速入门里检测"内置原生索引是否可用"的逻辑此前判断的是桌面程序自身有没有管理员权限——这是旧架构(BETA-78 之前)的判据,重构后桌面程序本来就不需要这个权限,导致该检测长期误报"不可用"并提示用户"以管理员身份运行 Scout"(这个操作对新架构完全没有作用)。现在改为检测真正决定可用性的信号:后台服务是否已连接。
  • 按用户反馈,精简了状态栏「本机服务」面板:去掉了与「本地索引」「语义召回」重复的 NativeFileIndex 一行,只保留「本地索引」「语义召回」「Windows Search」三项。

以上均为本次评审中确认的真实问题,非表面文案调整。仍有少数已记录但本次未处理的项目(如后台服务配置文件的访问权限加固、极端情况下的索引自动重建),会在后续版本继续跟进。

升级建议:直接安装本版本覆盖即可(原地升级,索引/模型/设置保留)。

  • 未做代码签名 / 公证,首次运行系统会有安全提示(Windows SmartScreen /「更多信息 → 仍要运行」;macOS Gatekeeper /「右键 → 打开」)。
  • 放行步骤 / SHA256 校验 / 升级卸载说明:见 安装指南

模型文件(均可选,首选应用内「快速入门」一键下载;也可手动放置):

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/ 跨语言)。缺失则语义召回降级纯关键词(FTS)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。缺失则降级 parser-only。

两者均不放置也可正常使用(纯关键词搜索)。「选项 → 常规 / 语义召回」可查看各模型状态。

Scout v0.9.59

Scout v0.9.59 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 03:13

Scout v0.9.59(Windows / macOS)。

本次修复:Scoutd Windows Service 启动失败

v0.9.58 真机反馈:Scoutd 服务已正确注册,但自启动与手动启动均失败,Windows 事件查看器中查不到具体错误原因。

根因:个人模式首次启动需要下载约 300MB 的 embedding 模型;LocalSystem 服务账户的网络路径(代理 / DNS / 防火墙出站策略)常与你平时登录的交互用户会话不同,下载更容易失败。v0.9.58 里这个失败会直接终止整个服务进程;而 service 模式的日志此前只写向 stdout —— Windows Service 没有控制台,日志实际上写进了空气,导致事件查看器完全看不到线索。

本次修复

  • embedding 模型加载失败不再终止服务,自动降级为纯关键词(FTS-only)检索,不影响服务正常启动。
  • embedding 模型下载新增 hf-mirror.com 镜像兜底,缓解部分网络环境下服务账户连不上 HuggingFace 主源的情况。
  • service 模式改为写文件日志:%ProgramData%\Scout\scoutd\scoutd.log(按日滚动),并加了 panic 兜底记录 —— 如果这次装完仍然启动失败,请查看这个文件里的具体报错,会比事件查看器有用得多。

升级建议:直接安装本版本覆盖即可(原地升级,索引/模型/设置保留);安装完成后请到 services.msc 确认 Scout 后台索引与检索服务Scoutd)状态为 Running。

  • 未做代码签名 / 公证,首次运行系统会有安全提示(Windows SmartScreen /「更多信息 → 仍要运行」;macOS Gatekeeper /「右键 → 打开」)。
  • 放行步骤 / SHA256 校验 / 升级卸载说明:见 安装指南

模型文件(均可选,首选应用内「快速入门」一键下载;也可手动放置):

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/ 跨语言)。缺失则语义召回降级纯关键词(FTS)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。缺失则降级 parser-only。

两者均不放置也可正常使用(纯关键词搜索)。「选项 → 常规 / 语义召回」可查看各模型状态。

Scout v0.9.58

Scout v0.9.58 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 16:11

Scout Windows/macOS 测试版。

本次变更

  • 全面评审:对照 voidtools Everything 的公开功能与关键技术实现,逐项核对 BETA-76(内置 MFT/USN 原生索引)与 BETA-78(scoutd 后台服务化拆分)是否构成完整替换
    • 核心索引机制(MFT 批量枚举 + USN Journal 实时监控)、ReFS 不支持(Everything 自身同样不支持)均确认对等。
    • 权限隔离架构:scoutd 以 Windows Service(LocalSystem)常驻处理需要管理员权限的 MFT 读取,桌面客户端以普通用户身份通过 token 连接——对齐 Everything Service 免 UAC 的部署模式。
    • 查询语法(通配符/正则/布尔 NOT)差异属设计取舍:Scout 的检索意图是跨 4 个搜索后端(原生索引/Windows Search/Spotlight/本地全文)共用的抽象,不是 es.exe 专有语法的克隆。
  • 修复一处真实 bug:原生索引的路径重建逻辑(祖先目录记录已从索引移除时)此前会静默拼出一个看起来合法、实际完全错误的绝对路径,而不是判定"未找到"——可能导致搜索结果或"在文件夹中显示"指向错误位置。现在这种情况会正确返回空结果,不会给出误导性路径。

已知限制(评审中发现,本轮未修,需真机环境验证后修复)

  • 后台服务的本机连接凭据文件权限较宽松(同一台电脑上的其他系统账户理论上可读取);正确加固方案需要按安装用户身份精确授权,需在真实多用户环境验证后落地,避免误伤单用户场景下客户端自身的正常连接。
  • 索引实时监控线程遇到异常时会停止更新且无日志提示,需要下一轮加错误分类与可观测性。

安装说明

  • 由 GitHub Actions 自动构建。
  • SignPath 免费 OSS 签名接入中,Windows 安装包暂未签名,首次运行 SmartScreen 可能提示,选择「更多信息 → 仍要运行」即可。
  • 放行步骤 / SHA256 校验 / 升级卸载说明:见 安装指南
  • Windows 版首次安装会请求管理员权限,自动配置并启动后台索引服务(Scoutd);桌面客户端本身以普通用户权限运行。

模型文件(均可选,首选应用内「快速入门」一键下载):

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/跨语言)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。

两者均不放置也可正常使用(纯关键词搜索)。

本地验收

  • CI、Release macOS、Release Windows 三个 workflow 均已跑绿。
  • workspace 全量测试(含新增回归测试)本机验证通过。

Scout v0.9.57

Scout v0.9.57 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 15:31

Scout macOS 测试版(DMG,Apple Silicon / aarch64)。

  • 由 GitHub Actions 在 macos-14(Apple Silicon)上自动构建。
  • 未做代码签名 / 公证(开源免费分发),首次运行 macOS Gatekeeper 会拦截:
    右键点击 App →「打开」,或终端执行 xattr -dr com.apple.quarantine /Applications/Scout.app
  • Intel Mac 用户请从源码构建。放行步骤 / SHA256 校验 / 从源码构建:见
    安装指南

模型文件(均可选,首选应用内「快速入门」一键下载;也可手动放置到 ~/Library/Application Support/Scout/models/):

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/ 跨语言)。缺失则语义召回降级纯关键词(FTS)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。缺失则降级 parser-only。

两者均不放置也可正常使用(纯关键词搜索)。「选项 → 常规 / 语义召回」可查看各模型状态。

(详细 changelog 发版后补全)

Scout v0.9.56

Scout v0.9.56 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 09:31

Scout v0.9.56 — BETA-78:后台 Windows Service + 桌面瘦客户端拆分

读取 NTFS MFT(内置原生文件索引,BETA-76)依赖管理员权限,桌面进程以普通用户权限运行满足不了这个前提。本版把索引构建/更新/检索/MCP 服务整体拆到一个后台 Windows Service(scoutdLocalSystem 常驻、开机自启),桌面降级为经本机 HTTP 连接它的检索 GUI 客户端。

新增

  • scoutd 个人模式:新增 bootstrap-personal-config/install-service/uninstall-service/service 四个子命令,注册为 LocalSystem 账户的 Windows Service,127.0.0.1:8765 loopback 监听(区别于团队部署默认的 0.0.0.0)。团队/企业既有部署(--root/--token/--config)零迁移,行为不变。
  • 安装时自动装好、自动启动:Windows 安装包(NSIS)新增装机钩子,自动生成个人模式配置并注册+启动后台服务,无需手动操作;卸载时自动停止并删除服务注册。
  • 桌面自动连接后台服务:启动即发现并连接本机 scoutd,5 秒健康轮询自动重连;本地 FTS 检索、语义召回、原生文件名索引(MFT/USN)三个能力改由后台服务提供,桌面不再需要管理员权限即可用上全部检索能力。
  • scout-server 新增 /search/search/quick/backend/search/admin/status/admin/personal/roots 五个 HTTP 端点。

范围与已知限制

  • 本轮只做 Windows(macOS 无 MFT 管理员权限这个问题,架构不受影响,仍走原有本地嵌入模式)。
  • 桌面本地检索/预览用的索引循环保留未删,避免"搜到但预览不到"的回归;桌面内置 MCP 服务开关、设置页索引目录编辑暂未迁移到调用后台服务,计划后续版本跟进。
  • 管理员权限下的真实 Windows Service 注册与安装包端到端流程本次未经真机人工验证(CI 环境无法交互式处理 UAC),建议装机后确认 services.mscScoutd 服务已启动、"选项 → 关于"能看到后台服务已连接。

放行 / 安装说明

  • 由 GitHub Actions 自动构建,未做代码签名,首次运行 Windows SmartScreen / macOS Gatekeeper 可能提示,按 安装指南 放行。
  • 模型文件均可选,首选应用内「快速入门」一键下载;不下载也可用纯关键词搜索。

Scout v0.9.55

Scout v0.9.55 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 05:28

Scout Windows 测试版(NSIS 安装包)。

本次变更

  • 内置原生文件索引,替代外部 Everything 依赖:新增 scout-native-index 组件,用 Windows NTFS 官方 MFT 批量枚举(FSCTL_ENUM_USN_DATA)+ 内存索引 + USN Journal 增量监控(FSCTL_READ_USN_JOURNAL)自行实现"极速文件名检索",不再需要用户额外安装 voidtools Everything。需要以管理员权限运行 Scout 才能启用(Win32 打开卷句柄的系统要求);非管理员运行会自动降级为目录扫描,不影响其余功能。
  • "找文件"搜索框新增双模式:输入时即时展示"快速查找"结果(按文件名,类 Everything 体验);回车触发"深度检索",融合元数据索引与语义索引的完整结果。
  • 启动更快:应用启动时原生索引在后台预热,不阻塞窗口显示;语义索引等重资源准备同样在后台进行。

安装说明

  • 由 GitHub Actions 在 windows-latest 上自动构建。
  • SignPath 免费 OSS 签名接入中,本次安装包暂未签名,首次运行 Windows SmartScreen 可能提示,选择「更多信息 → 仍要运行」即可。
  • 放行步骤 / SHA256 校验 / 升级卸载说明:见 安装指南

模型文件(均可选,首选应用内「快速入门」一键下载;也可手动放置到 %APPDATA%\Scout\models\):

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/ 跨语言)。缺失则语义召回降级纯关键词(FTS)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。缺失则降级 parser-only。

两者均不放置也可正常使用(纯关键词搜索)。「选项 → 常规 / 语义召回」可查看各模型状态。

本地验收

  • CI(Rust-only crate 单测 + clippy + fmt)、Release macOS、Release Windows 三个 workflow 均已跑绿;Windows 产物 dumpbin /DEPENDENTS 确认不导入 MSVCP*/VCRUNTIME* 动态运行库。
  • 本机 Windows 11 真实安装并启动验证:4 个搜索 backend(local-index / semantic / windows-search / native_file_index)注册成功;原生索引后台预热按设计在非管理员会话下优雅降级(available=false);启动、索引扫描、日志输出均无异常;进程稳定运行、正常退出,Windows 事件日志无崩溃记录。
  • 未覆盖:管理员权限下原生索引真实 MFT 全盘枚举与 USN 实时监控的端到端行为、桌面 GUI"快速查找/深度检索"下拉交互的真机点击验证(当前会话无原生桌面自动化工具,此前开发阶段已用浏览器注入 stub 方式验证过交互逻辑,见 commit 历史)——留待下一轮人工真机走查。

Scout v0.9.54

Scout v0.9.54 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Aug 04:23

v0.9.54

本版本集中修复 Windows “找文件”结果与原生运行时稳定性问题。

修复

  • 修复结果清单右键“在文件夹中显示”可能打开错误目录的问题。
  • 修复界面与 MCP provenance 暴露 \\?\ / \\?\UNC\ Windows verbatim 路径前缀的问题。
  • 修复内容、OCR、语义及音乐命中缺少文件“大小”的问题。
  • 针对其它 Windows 机器出现的 MSVCP140.dll AppCrash,将 llama.cpp 的加载、生成和向量计算隔离到常驻 helper 子进程;原生崩溃不再直接带走 Scout Desktop 主进程,并继续走既有降级路径。

Windows 稳定性

  • Rust 与 llama.cpp Release 构建统一使用静态 MSVC CRT;对 llama-cpp-sys-4 v0.3.2 的 CMake Release 参数做精确、失配即失败的补丁,显式锁定 MultiThreaded runtime。
  • 移除未使用的 llama.cpp mtmd feature,缩小原生依赖面。
  • Windows Release CI 新增 PE 依赖闸门,禁止 MSVCP / VCRUNTIME 动态导入回归。

验证说明

  • Rust workspace 的格式、clippy、build 通过;desktop 210/210 测试通过。
  • Windows 交叉条件编译与 model-runtime 全目标 clippy 通过。
  • llama.cpp feature 测试 31 项通过,3 项真实模型测试按设计忽略;前端 TypeScript/Vite 构建通过。
  • v0.9.54 Windows MSVC/NSIS Release CI 已通过;最终 EXE 的 PE 导入表不含 MSVCP* / VCRUNTIME* 动态运行库。
  • MSVCP140.dll 归因基于 faulting module、既有原生崩溃记录和发布链接配置,是当前最高概率判断;仍需在原问题 Windows 真机上完成最终复测。

macOS 与 Windows 安装包尚未签名,系统可能显示安全提示;本地模型能力仍为可选能力。

Scout v0.9.53

Scout v0.9.53 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Aug 08:27

Scout v0.9.53 —— 自动更新改用 native-tls,修复真机 TLS 握手失败

问题:v0.9.52 修了事件丢失的 bug 后,真机测试「检查更新」仍然失败,报错
error sending request for url (https://api.github.com/.../releases?per_page=5)
——这是连接层失败,请求根本没送到 GitHub(不是 404/403 这类 HTTP 状态码错误)。

根因:自动更新的 HTTP 客户端用的是 rustls-tls 后端,只信任自己内置的
webpki-roots(Mozilla 根证书列表),不读操作系统证书 store。企业网络、部分
HTTPS 检测型杀毒软件、代理软件常把自定义根证书装进系统信任库、期望应用走系统
证书链验证——rustls 天然验证失败,握手直接报错。

修复:TLS 后端改为 default-tls(native-tls)——macOS 走 Security.framework、
Windows 走 Schannel,都是系统自带 API,不需要额外链 OpenSSL,读取的是操作系统
的证书信任链,与系统里其他应用(包括浏览器)看到的信任状态一致,是桌面客户端
的标准实践。

顺带修复:错误提示此前只显示 reqwest 错误的顶层描述("error sending
request for url (...)"),真正原因(DNS 解析失败 / 证书不受信 / 连接被拒 /
超时)被截断丢失;现在会把完整错误链拼出来,以后再遇到问题能直接定位到根因
类别,不用来回猜。


macOS(DMG,Apple Silicon / aarch64)

  • 由 GitHub Actions 在 macos-14(Apple Silicon)上自动构建。
  • 未做代码签名 / 公证(开源免费分发),首次运行 macOS Gatekeeper 会拦截:
    右键点击 App →「打开」,或终端执行 xattr -dr com.apple.quarantine /Applications/Scout.app
  • Intel Mac 用户请从源码构建。放行步骤 / SHA256 校验 / 从源码构建:见
    安装指南

Windows(NSIS 安装包)

  • 由 GitHub Actions 在 windows-latest 上自动构建。
  • 未做代码签名(开源免费分发),首次运行 Windows SmartScreen 可能提示,选择
    「更多信息 → 仍要运行」即可。
  • 放行步骤 / SHA256 校验 / 升级卸载说明:见
    安装指南

模型文件(均可选,首选应用内「快速入门」一键下载)

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/ 跨语言)。缺失则语义召回降级纯关键词(FTS)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。缺失则降级 parser-only。

两者均不放置也可正常使用(纯关键词搜索)。「选项 → 常规 / 语义召回」可查看各模型状态。

Scout v0.9.52

Scout v0.9.52 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Aug 07:21

Scout v0.9.52 —— 修复自动更新真机反馈没反应的 bug,「关于」新增手动检查更新按钮

问题:v0.9.50 发布后真机测试反馈,GitHub 上明明有更新,但客户端自动更新没有
任何反应。

根因:v0.9.50 的自动更新后台首检在启动 30 秒后用 app.emit 广播
update://available 事件,属于 fire-and-forget——若那一刻前端的事件监听器还没
注册完(webview 冷启动本身有窗口期,慢机器更明显),事件会直接丢失、不会重发;
丢过一次后要等一整个轮询周期(默认 4 小时)才会再提醒。真机测试"打开等一会儿"
基本必然落在这个窗口里,看起来就是"完全没反应"。

修复:新增 check_for_updates 命令,改为直接的 request/response 调用(不
经过事件广播,不存在丢失窗口);前端在监听器就绪后立即主动查一次做兜底,不再
只靠容易错过的后台广播。

新增:「关于 Scout」弹窗新增「检查更新」按钮,可随时手动发起一次检查,会
显示「已是最新版本」「发现新版本 vX.Y.Z」(附「立即更新」)或「检查失败:具体
原因」——与窗口左下角的自动提醒共享同一份状态,两处联动一致。


macOS(DMG,Apple Silicon / aarch64)

  • 由 GitHub Actions 在 macos-14(Apple Silicon)上自动构建。
  • 未做代码签名 / 公证(开源免费分发),首次运行 macOS Gatekeeper 会拦截:
    右键点击 App →「打开」,或终端执行 xattr -dr com.apple.quarantine /Applications/Scout.app
  • Intel Mac 用户请从源码构建。放行步骤 / SHA256 校验 / 从源码构建:见
    安装指南

Windows(NSIS 安装包)

  • 由 GitHub Actions 在 windows-latest 上自动构建。
  • 未做代码签名(开源免费分发),首次运行 Windows SmartScreen 可能提示,选择
    「更多信息 → 仍要运行」即可。
  • 放行步骤 / SHA256 校验 / 升级卸载说明:见
    安装指南

模型文件(均可选,首选应用内「快速入门」一键下载)

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/ 跨语言)。缺失则语义召回降级纯关键词(FTS)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。缺失则降级 parser-only。

两者均不放置也可正常使用(纯关键词搜索)。「选项 → 常规 / 语义召回」可查看各模型状态。

Scout v0.9.51

Scout v0.9.51 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Aug 03:40

Scout macOS 测试版(DMG,Apple Silicon / aarch64)。

  • 由 GitHub Actions 在 macos-14(Apple Silicon)上自动构建。
  • 未做代码签名 / 公证(开源免费分发),首次运行 macOS Gatekeeper 会拦截:
    右键点击 App →「打开」,或终端执行 xattr -dr com.apple.quarantine /Applications/Scout.app
  • Intel Mac 用户请从源码构建。放行步骤 / SHA256 校验 / 从源码构建:见
    安装指南

模型文件(均可选,首选应用内「快速入门」一键下载;也可手动放置到 ~/Library/Application Support/Scout/models/):

  • embeddinggemma-300m-q8_0.gguf —— 语义召回 embedding 模型(启用「按意思找到」/ 跨语言)。缺失则语义召回降级纯关键词(FTS)。
  • qwen3-0.6b-q4_k_m.gguf —— 生成模型 fallback(复杂查询 AI 解析)。缺失则降级 parser-only。

两者均不放置也可正常使用(纯关键词搜索)。「选项 → 常规 / 语义召回」可查看各模型状态。

(详细 changelog 发版后补全)