Skip to content

Releases: JamesLinYJ/APFSearch

APFSearch 1.0.1

Choose a tag to compare

@github-actions github-actions released this 22 Sep 13:56
Immutable release. Only release title and notes can be modified.
9796554

APFSearch 1.0.1

修复选择搜索结果时的界面卡顿,并减少大量文件变动时的后台重复计算。

本次更新

  • 路径栏直接使用已有索引数据构建原生组件,选择文件时不再让 AppKit 在界面线程同步读取路径属性和文件图标。避免文件系统或 iCloud / FileProvider 响应慢时拖住选择操作;路径栏双击定位和拖放仍保留。
  • 路径栏改用共享的系统文件类型图标,统一为标准 16 点边界,修复文件、文件夹和卷图标与文字比例不协调的问题;不逐路径读取图标。
  • 退役已删除文件的核对诊断时,使用集合查找替代逐条交叉比较及临时字符串分配,减少大量删除、重命名时的 CPU 消耗。保留原来的路径匹配、覆盖报告和事件进度语义。
  • 保留查询算法、索引范围、SQLite 数据、派生缓存、设置及公开协议。内部构建号仍为 1;无需因本次升级重建索引。

下载与验证

提供 Apple Silicon、Intel、Universal 三种架构,各有 DMG 和 ZIP,最低支持 macOS 14。应用和 DMG 通过 Developer ID 签名与 Apple 公证;ZIP 包含已装订公证票据的应用。

本地验证通过 361 项 Rust 测试及 100 项 AppKit 界面检查,并验证了签名应用中的连续选择、滚动、搜索和访达定位。尚未复测 iCloud 大规模同步压力场景;本次修复针对 APFSearch 的同步阻塞调用,不代表修复了系统 FileProvider。Intel 和 macOS 14 实机验证仍有限。


Fix selection stalls and reduce redundant background work during large filesystem changes.

Changes

  • Populate the native path bar from indexed metadata instead of asking AppKit to resolve path attributes and file icons synchronously on the UI thread. Selection no longer waits on that filesystem or iCloud / FileProvider work. Preserve breadcrumb double-click reveal and dragging.
  • Use shared system file-type icons with standard 16-point bounds, fixing inconsistent file, folder and volume icon proportions without per-path lookups.
  • Retire removed-file diagnostics using a set lookup instead of comparing every diagnostic with every removed path and allocating temporary strings. Preserve path-matching, coverage and event-progress semantics.
  • Keep query algorithms, index scope, SQLite data, derived caches, settings and the public protocol unchanged. The internal build number remains 1; this upgrade does not require an index rebuild.

Downloads and validation

Choose Apple Silicon, Intel or Universal, as DMG or ZIP, for macOS 14 or later. Apps and DMGs are Developer ID signed and Apple notarized; ZIPs contain the stapled application.

Local validation passed 361 Rust tests and 100 AppKit checks, plus continuous selection, scrolling, searching and Finder reveal in the signed app. Large-scale active iCloud synchronization was not reproduced; this fixes APFSearch's synchronous blocking path, not the system FileProvider. Physical Intel and macOS 14 validation remains limited.

APFSearch 1.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 03:16
Immutable release. Only release title and notes can be modified.
8bc752e

APFSearch 1.0.0

APFSearch 首个正式版,提供独立于 Spotlight 的文件名、路径和元数据搜索,原生 macOS 界面,以及与主界面共享索引服务的命令行工具。

本次更新

  • 修复后台索引服务被卸载后,重新打开应用仍无法连接的问题。确认后台运行仍获授权后,通过系统 ServiceManagement 接口注销失效注册,等待完成后重新注册。
  • 自动恢复最多尝试一次,用户主动重试可再次触发恢复;后台权限被撤回时不会强行重新启动服务。
  • 连接失败不会自动重做移动、复制、删除等文件操作,避免原操作已经完成却被重复执行。
  • 延续 0.1.6 的紧凑列式索引、共享快照、增量更新和新版 SDK 构建,在支持的 macOS 上采用原生 Liquid Glass。

下载与升级

提供 Apple Silicon、Intel、Universal 三种架构,各有 DMG 和 ZIP,最低支持 macOS 14。应用及 DMG 通过 Developer ID 签名和 Apple 公证;ZIP 包含已装订公证票据的应用。

从 0.1.6 升级保留现有 SQLite 索引、设置和派生缓存;协议、缓存格式和内部构建号保持不变,不因本次升级重建索引。更早版本可能需要从现有 SQLite 生成新版派生缓存,详见 0.1.6 升级说明。

正式版不代表与 Everything 完全等价。真实 Intel 硬件、macOS 14 实机和长期整卷负载仍需更多验证;本次未改动查询算法,也不宣称新的性能提升。具体限制见 README。


APFSearch's first stable release provides filename, path and metadata search independently of Spotlight, a native macOS interface, and a command-line client using the same index service.

Changes

  • Recover an authorized background indexer whose launchd job was unloaded while ServiceManagement still reports it enabled. Use the system APIs to unregister, wait for completion, and register again.
  • Limit automatic recovery to one attempt, renewed by an explicit retry. Respect revoked background approval.
  • Never replay move, copy, trash or other requests after a transport failure: the original operation may already have completed.
  • Retain 0.1.6's compact columnar index, shared snapshots, incremental updates and modern SDK builds, including native Liquid Glass on supported macOS versions.

Downloads and upgrading

Choose Apple Silicon, Intel or Universal, as DMG or ZIP, for macOS 14 or later. Apps and DMGs are Developer ID signed and Apple notarized; ZIPs contain the stapled application.

Upgrading from 0.1.6 retains SQLite data, settings and derived caches. The protocol, cache format and internal build number are unchanged; this upgrade does not require rebuilding the index. Earlier versions may regenerate their derived cache from existing SQLite data; see the 0.1.6 upgrade notes.

A stable release does not imply complete Everything compatibility. Physical Intel hardware, macOS 14 and long-running full-volume workloads still need more validation. No query algorithm changes or new performance gains are claimed in this release. See current limitations.

APFSearch 0.1.6 Preview

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Sep 10:05
Immutable release. Only release title and notes can be modified.
7c28d82

APFSearch 0.1.6 Preview

这次更新集中改进索引的内存布局、持续更新与搜索窗口的生命周期,并修复 GitHub 下载版未采用新版 macOS 控件外观的问题。

  • 文本块共享内容完全一致的目录前缀,保留连续的文件名搜索区域。读取仍直接访问字节区间,不在每次查询时重新展开全部路径。
  • 倒排索引按分片共享,名称与路径排序改为共享叶块;增量更新仅修改变化的词项和排序区段,减少旧快照与新快照之间的复制。
  • 搜索取消时保留屏幕上结果的快照,等新结果接替后再释放;关闭窗口会丢弃并释放迟到的响应。离线列表按请求、快照和导出的实际生命周期管理。
  • 索引打开失败会提供明确的重试入口,不再误导到后台服务权限设置。文本内容提取可在分块读取之间响应取消。
  • GitHub Actions 使用 macOS 26 SDK 或更新版本构建,并逐个验证应用、服务、CLI 的架构切片。支持的系统可使用原生 Liquid Glass,最低运行版本仍为 macOS 14。

升级说明: 保留 SQLite 索引、配置、公开查询接口及协议。内部构建号仍为 1;派生缓存更新到格式 04,首次启动从已有 SQLite 重新生成,不因缓存升级重新扫描文件系统。首次转换有一次性的时间和写入成本。

这是阶段性开发预览版,未宣称达到整个进程内存下降 40% 的目标。结构载荷、RSS 和物理内存占用是不同指标;隔离查询与更新测试也不代表所有机器和整盘工作负载。实现及可复现对照工具见技术记录。真实 Intel 硬件、最低系统版本和长期整盘负载仍需验证。

提供 Apple Silicon、Intel、Universal 三种架构,各有 DMG 和 ZIP。应用及 DMG 通过 Developer ID 签名和 Apple 公证;ZIP 包含已装订公证票据的应用。


This checkpoint improves index storage, incremental updates and search-window ownership, and fixes the older system appearance of GitHub builds.

  • Share byte-identical directory prefixes within text blocks while retaining contiguous search names. Queries continue reading direct byte ranges without expanding every path.
  • Share posting shards and ordered leaves across snapshots. Update only changed terms and order sections instead of copying entire auxiliary indexes.
  • Keep displayed results leased until their replacement succeeds; retire late responses after a window closes. Imported indexes follow active request, snapshot and export lifetimes.
  • Offer an explicit retry for index-open failures instead of directing users to background-service permissions. Text extraction responds to cancellation between bounded reads.
  • Build with macOS SDK 26 or newer in GitHub Actions and verify every app, service and CLI architecture slice. Native controls adopt Liquid Glass on supported systems; macOS 14 remains the minimum runtime.

Upgrading: SQLite data, settings, public queries and the protocol are preserved. The internal build number remains 1. Derived caches use format 04 and are regenerated from existing SQLite on first launch, without a filesystem rescan caused by the cache upgrade. This conversion has a one-time time and write cost.

This is a staged development preview, not a claim of reaching the 40% whole-process memory target. Structural payload, RSS and physical footprint are different measurements; isolated query/update comparisons are not whole-machine guarantees. See the implementation and reproducible comparison tools. Physical Intel hardware, the minimum OS and long-running full-volume workloads still need validation.

Choose Apple Silicon, Intel or Universal, as DMG or ZIP. Apps and DMGs are Developer ID signed and Apple notarized; ZIPs contain the stapled application.

APFSearch 0.1.5 Preview

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 08:09

APFSearch 0.1.5 Preview

修复某些索引持续显示扫描中的问题。大量硬链接的目录不再为每个新路径重复核对整个链接集合;挂载信息中无关的标志变化也不会再反复中断恢复。路径替换、权限失败和真实卷变化仍会重新核对,不提前推进事件进度。

本版本沿用现有数据库、配置和派生缓存格式,无须重建索引。它仍是开发预览版。

下载提供 Apple Silicon、Intel、Universal 三种版本,每种均有 DMG 和 ZIP。应用与 DMG 均通过 Developer ID 签名及 Apple 公证;ZIP 包含已装订公证票据的应用。最低系统版本为 macOS 14。

发布现在使用 GitHub Actions:先验证源代码,再在临时钥匙串中签名、公证,核对所有下载文件后公开发布。凭据只存于受限的 GitHub release 环境 Secrets,运行日志和下载包不包含私钥。

验证范围:329 项 Rust 测试、121 项 Swift 服务/内容/文件检查,以及本机签名应用的真实硬链接、替换、目录改名和删除验证。实际服务已完成初始扫描和积压事件恢复;这些结果不代表新的跨机器性能基准。


Fixes prolonged scanning in directories with many hard links. Discovering another path to an unchanged file object no longer rechecks its entire alias set. Irrelevant mount-flag changes no longer repeatedly interrupt recovery. Actual identity changes, permission failures and replacements still require reconciliation before event progress advances.

Existing databases, settings and derived caches remain usable. No index rebuild is required. This remains a development preview.

Choose Apple Silicon, Intel or Universal, as DMG or ZIP. Applications and DMGs are Developer ID signed and Apple notarized; ZIPs contain the stapled application. Requires macOS 14 or later.

GitHub Actions now validates, signs and notarizes releases using a temporary keychain, then verifies the complete download set before publication. Credentials remain in the restricted release environment Secrets and are excluded from logs and artifacts.

Validation includes 329 Rust tests, 121 Swift service/content/file checks, and installed signed-app checks for hard links, replacement, directory renames and deletion. The local service completed its initial scan and queued event recovery. This is correctness evidence, not a new cross-machine performance benchmark.

APFSearch 0.1.4 Preview

Pre-release

Choose a tag to compare

@JamesLinYJ JamesLinYJ released this 15 Sep 18:22

中文

本次 Preview 主要降低大索引的内存占用,保留即时搜索和原有查询语义。发布前额外修复了深层查询解析的栈溢出问题。

  • 查询解析改用显式栈,保留原有语法和工作量限制;不依赖增大线程栈或编译优化来避免深层嵌套崩溃。
  • 主索引改为共享的 4,096 条列块,目录前缀按块复用,整数按实际范围紧凑存储,分页时才构造完整结果。
  • 文件名和路径按块匹配,普通路径避免逐文件展开;保留 Unicode、跨路径边界、自然排序和完整正则语义。
  • 派生缓存分段映射加载,更新复用未变化区段;增加损坏检测和旧快照保护。
  • 链接核对在数据库事务外读取文件系统,复用父目录及挂载上下文;查询缓存采用分片、借用键和统一预算,内存压力时释放可重建缓存。
  • 请求线程也纳入 CPU 预算,后台在块边界让出资源;合并已就绪的扫描批次,不增加固定等待时间。

实测: 同一份约 569 万条索引,五轮交替对照上一阶段紧凑候选版,驻留内存中位数从 3,026 MiB 降到 1,528 MiB(−49.5%),缓存恢复从 3.74 秒降到 3.19 秒。多数查询更快;五项超过原百分比门槛的差异为 6–76 微秒,小目录更新批次约增加 2.7 ms,作为本次阶段版本保留。该对照不是与已发布 0.1.3 的直接比较,也不代表所有电脑的表现。

升级: 保留现有 SQLite 索引数据、设置及公开协议。首次启动需从已有数据库重新生成派生搜索缓存,无需重新扫描文件;这次转换会单独产生一次读取和写入。

English

This Preview reduces large-index memory use while preserving search semantics.

  • Replace recursive query parsing with explicit expression frames, preserving syntax and work limits without relying on larger thread stacks or compiler optimization.
  • Store shared 4,096-slot column blocks, reuse directory prefixes, compact exact integer columns, and construct owned results at page boundaries.
  • Match names and paths by block without expanding every ordinary path. Preserve Unicode, boundary matches, natural ordering and full regex subjects.
  • Map validated metadata sections directly, reuse unchanged cache sections and retain old-reader consistency across updates and damaged-file recovery.
  • Collect link observations outside database write transactions and reuse parent/mount context. Use borrowed cache keys, sharded access and shared byte budgets; release disposable caches on memory pressure.
  • Include requesting threads in CPU admission, yield background work at block boundaries, and coalesce ready scan batches without a fixed delay.

Measured: Five alternating pairs on the same 5.69-million-entry corpus used 49.5% less median resident memory (3,026 → 1,528 MiB) and restored the cache in 3.19 s instead of 3.74 s, compared with the preceding compact candidate, not published 0.1.3. Most queries improved. Five percentage-gate misses added 6–76 microseconds; the small-directory update fixture added about 2.7 ms. These are accepted checkpoint differences, not a claim that every original target passed.

Upgrade: Existing SQLite metadata, settings and public protocol are retained. The first launch regenerates the derived search cache from the database without a filesystem rescan; this one-time conversion performs additional reads and writes.

Validation / 验证

GitHub CI passed on the exact release commit. / 发布提交的 CI 已全部通过。

  • 316 Rust tests passed on both ARM64 and Intel under Rosetta, including unoptimized builds and a deliberately small 256 KiB parser-stack regression. Over 4,000 valid/malformed expressions match the frozen previous parser's syntax trees and errors. Strict Clippy passed.
  • The final core passed 121 Swift service/content/file checks. The unchanged AppKit controller previously passed 84 checks; the rebuilt authenticated service/client/controller completed all final window runs, with stable results and unchanged history.
  • Release-mode parsing batches show no meaningful slowdown: measured nonempty classes improved, with filename parsing at roughly 270 → 218 ns and empty input adding about 2 ns. This is parsing cost, not overall search latency.
  • Replace a timing-dependent CI cache-publication test with explicit synchronization on both sides of publication, preserving the real writer and concurrent-delta assertions.
  • All tested large-corpus metadata and result-page/order fingerprints matched. A signed production-client/XPC/AppKit fixture measured daily-query P95 of 1.20–7.13 ms through layout/display submission; physical input, IME and compositor presentation are excluded.
  • The isolated service observed for 60.59 seconds after drain averaged below 0.001% CPU with zero measured interval I/O. Whole-volume event freshness, settled device I/O, physical Intel hardware and macOS 14 still require separate acceptance.
  • Complete measurements and limits / 完整实测与限制

Downloads / 下载

Choose Universal.dmg if unsure. AppleSilicon is for M-series Macs; Intel is for Intel Macs. macOS 14 or later is required. Drag APFSearch into Applications and launch it there.

不确定机型时选择 Universal.dmg。AppleSilicon 适用于 M 系列 Mac,Intel 适用于 Intel Mac。需要 macOS 14 或更高版本;将 APFSearch 拖入“应用程序”后,从那里启动。

All included apps are Developer ID signed and Apple notarized. DMG containers are not separately notarized. SHA256SUMS.txt and downloads.json accompany all six downloads. Build number and public protocol remain 1; the derived cache has its own new format identifier.

六个安装包内的应用均经过 Developer ID 签名及 Apple 公证;DMG 容器未单独公证。附带 SHA256SUMS.txt 与 downloads.json。构建号及公开协议保持 1,派生缓存使用独立的新格式标识。

APFSearch 0.1.3 Preview

Pre-release

Choose a tag to compare

@JamesLinYJ JamesLinYJ released this 14 Sep 19:02

中文

  • 修复索引设置页迟钝:覆盖路径按可见区域延迟创建视图,保留完整列表及文本选择。
  • 服务回复在后台解码,覆盖范围使用固定长度摘要标识;状态更新不再反复拼接全部未覆盖路径。
  • 文件图标使用共享、最多两个任务的后台队列及有界缓存;取消离开可见区域的排队请求,丢弃过期结果,不刷新整个表格。
  • 简化完整磁盘访问引导:跳转设置后关闭介绍窗口,显示可拖入真实应用的小型辅助面板,返回应用后关闭。解释系统及文件权限仍可能限制覆盖范围。
  • 保留八种语言,构建号、协议和数据格式保持 1,不重建或迁移已有索引。

English

  • Lazily create visible coverage rows to keep index settings responsive while retaining the full selectable list.
  • Decode service replies off the main thread, identify coverage with a fixed-size digest, and avoid rebuilding full coverage tooltips during status updates.
  • Load visible file icons through a shared two-worker queue and bounded cache; cancel obsolete queued work and discard stale results without reloading the table.
  • Simplify Full Disk Access guidance: dismiss the introduction when opening Settings, provide a small panel for dragging the actual app, and close it when returning. Explain that system and file permissions can still restrict coverage.
  • Preserve all eight languages and build/protocol/data version 1, without rebuilding or migrating existing indexes.

Validation / 验证: 284 Rust tests and 84 AppKit checks passed, with service-recovery and localization checks. In a controlled 888-path settings fixture, tab selection through layout/display submission fell from 242–257 ms to 13–14 ms median across reversed-order runs. This is not a whole-app or final-compositor latency measurement. Real Intel hardware and full-volume acceptance remain unverified.

Downloads / 下载

Choose Universal.dmg if unsure. AppleSilicon is for M-series Macs; Intel is for Intel Macs. macOS 14 or later is required. Drag APFSearch into Applications, then launch it there.

不确定机型时选择 Universal.dmg。AppleSilicon 适用于 M 系列 Mac,Intel 适用于 Intel Mac;需要 macOS 14 或更高版本。将 APFSearch 拖入“应用程序”后,从那里启动。

All included apps are Developer ID signed and Apple notarized. DMG containers are not separately notarized. SHA256SUMS.txt and downloads.json accompany the downloads.

所有安装包内的应用均经过 Developer ID 签名及 Apple 公证;DMG 容器未单独公证。附带 SHA256SUMS.txt 与 downloads.json。

APFSearch 0.1.2 Preview

Pre-release

Choose a tag to compare

@JamesLinYJ JamesLinYJ released this 14 Sep 18:18

中文

  • 首次启动新增原生权限引导:解释完整磁盘访问的用途,跳转系统设置后保留可拖放应用的引导窗口,并演示拖入及开启开关。支持减少动态效果,也允许稍后设置。由用户选择索引范围后才开始扫描。
  • 自动恢复应用与旧后台服务的协议不匹配:等待旧服务退出后重新注册,合并并发恢复请求,限制重试次数。
  • 普通连接失败提供重新连接;仅在后台服务确实需要批准时引导系统设置。不自动重发连接中断的文件操作。
  • 引导支持全部八种应用语言。保留独立的格式 1 数据目录,不迁移或删除旧开发数据。

English

  • Add native first-launch guidance for Full Disk Access, with a floating native drag-and-drop companion, a bounded drag/switch demonstration that respects Reduce Motion, an optional skip path, and explicit index-scope selection before scanning.
  • Recover protocol mismatches by asynchronously unregistering the stale service, waiting for its exit, and registering the bundled service. Coalesce concurrent recovery requests and bound automatic retries.
  • Offer reconnect for connection failures and system settings only when service approval is required. Never replay file operations after transport failures.
  • Localize onboarding in all eight application languages. Keep the independent format-1 data directory without migrating or deleting older development data.

Downloads / 下载

Universal, Apple Silicon and Intel builds are provided as DMG and ZIP. Each contained app is Developer ID signed and Apple notarized; DMG containers are not separately notarized. Requires macOS 14 or later.

提供通用版、Apple Silicon 版及 Intel 版,均有 DMG 和 ZIP。包内应用已签名及公证,DMG 容器未单独公证。需要 macOS 14 或更高版本。

APFSearch 0.1.1 Preview

Pre-release

Choose a tag to compare

@JamesLinYJ JamesLinYJ released this 14 Sep 15:47

中文

本次更新减少索引快照的重复分配、查询中的重复计算和输入到结果之间的固定等待。

  • 索引记录使用分块写时复制,保留稳定槽位和旧快照;稀疏更新通过排序键定位旧条目,批量复制未变区间。
  • 规范化名称、路径和父目录采用共享文本存储;扩展名和卷标识在快照中复用。SQLite 恢复直接构造最终记录,降低中间分配。
  • 查询复用求值上下文,优先采用较稀疏的三字符候选,合并重复名称条件;连续槽位批量构造位图。
  • 新写入的派生缓存集中存放搜索名称,改善查询访问局部性。缓存格式仍为 1;已有缓存不会因升级被强制重写。
  • 使用受限、可复用的 Rayon CPU 池处理适合并行的工作;负载较小或工作池忙碌时直接串行执行。文件扫描并发和持久化策略不因此增加。
  • 输入通知改为事件循环内合并,移除固定 16 ms 等待;保留取消、过期回复检查和原生输入法组字行为。结果表增长时不再重复创建新行。
  • 离线索引恢复移出 XPC 请求处理线程;索引服务采用 Adaptive 调度。查询偏好读取复用内存状态,无变化的偏好不写入数据库。
  • Rust 采用 Edition 2024,补全依赖许可说明。公开版本为 0.1.1,内部构建号及数据格式保持 1。

测量范围: 在隔离的百万条合成索引、已签名 XPC 服务和真实 AppKit 控制器中,三组交替测试的常见热查询首屏 P95 从约 23–25 ms 降到 6–9 ms(每类每轮 30 次测量)。不同测试阶段的内存和算法结果详见 技术记录,不能相加作为整体加速倍数。查询测试的服务磁盘读写计数未增加;这不是所有使用场景零写入或 SSD 寿命保证。

边界: 仍为预览版。测量不包含物理键盘、输入法延迟或合成器最终显示;未完成真实 Intel Mac、最低系统版本、全盘工作负载、耗电和完整 Everything 行为验收。没有自动迁移或删除旧开发数据。未显示稳定端到端收益的自适应分页实验仅保留在测试代码中。

English

This update reduces repeated snapshot allocation, query work and fixed input latency.

  • Store stable entry slots in copy-on-write blocks; locate sparse sort-order removals by key and copy unchanged runs in bulk.
  • Share normalized text storage and snapshot-owned metadata labels; stream SQLite recovery into final record allocations.
  • Reuse query evaluation state, prioritize sparse trigram candidates, deduplicate repeated name conditions and build contiguous bitmap runs in batches.
  • Place search names together when writing prepared caches, without changing format 1 or forcing existing caches to be rewritten.
  • Reuse a bounded Rayon CPU pool with serial fallback; retain bounded filesystem I/O and existing durability settings.
  • Coalesce input within the event loop instead of waiting 16 ms, retaining cancellation, stale-reply isolation and native marked-text handling. Avoid recreating newly bound result rows.
  • Move offline-index opening off the XPC request handler, use Adaptive service scheduling and avoid unchanged preference writes.
  • Adopt Rust Edition 2024 and update dependency notices. Public version is 0.1.1; internal build and data formats remain 1.

In three alternating signed million-record fixture comparisons, common warm-query input-to-AppKit-display-submission P95 changed from approximately 23–25 ms to 6–9 ms, with 30 measured samples per query class per run. Pages, totals and row counts matched, and service query-interval disk counters did not increase. See the engineering notes for separately scoped memory and algorithm measurements; these gains must not be multiplied or treated as whole-machine results.

This remains a preview. Physical keyboard/IME latency, compositor presentation, real Intel hardware, the minimum supported OS, full-volume workloads, energy use and complete Everything parity remain unverified. Old development data is neither migrated nor deleted. Adaptive paging without a consistent end-to-end improvement remains test-only.

Downloads / 下载

macOS 14 or later / macOS 14 及以上。Choose Universal when unsure / 不确定芯片类型时选 Universal。

Architecture / 架构 DMG ZIP
Universal Download Download
Apple Silicon Download Download
Intel Download Download

Each contained app is Developer ID signed, Apple notarized and stapled. DMG containers are not separately notarized. / 每个包内的应用均已使用 Developer ID 签名、经 Apple 公证并装订票据;DMG 容器未单独公证。

SHA-256 checksums / 校验值

Validation / 验证:282 Rust tests, 69 AppKit checks, 76 service checks, 45 content/file checks; feature, localization, identity, release/audit tests and universal builds passed locally. 17 expensive or environment-specific Rust tests remain explicitly ignored. / 本地检查通过,17 个高成本或环境相关 Rust 测试仍明确标为忽略。

Source / 源码:11adf26 (single commit with full rationale and validation / 单个提交,含完整原因与验证说明)。

APFSearch 0.1.0 Preview

Pre-release

Choose a tag to compare

@JamesLinYJ JamesLinYJ released this 13 Sep 15:15

APFSearch 0.1.0 is a development preview for macOS 14 or later. This rebuild replaces the earlier 0.1.0 downloads. Internal build, protocol, index, snapshot, resume-proof, and operation-history formats start at 1.

APFSearch 0.1.0 开发预览版,支持 macOS 14 及以上。本次重建替换原有下载包,内部构建号、协议、索引、缓存、续扫证明和操作日志格式统一从 1 开始。

Downloads / 下载

Mac Package / 安装包
Apple Silicon and Intel / 通用版 APFSearch-0.1.0-Universal.dmg or .zip
Apple Silicon / M 系列 APFSearch-0.1.0-AppleSilicon.dmg or .zip
Intel APFSearch-0.1.0-Intel.dmg or .zip

Choose Universal if unsure. Open the DMG and drag APFSearch into Applications. Each download contains the app, indexer, and CLI. SHA256SUMS.txt contains the new package hashes.

不确定芯片类型时选择通用版。打开 DMG,将 APFSearch 拖入 Applications。安装包包含应用、索引服务和 CLI;新的校验值见 SHA256SUMS.txt。已经下载过 0.1.0 的用户请重新下载并替换应用。

Changes / 本次更新

  • Filesystem operations retain the reviewed source and destination identities through copy, move, Trash, and undo. APFS copies retain the clone fast path.
  • Incremental events cannot redirect indexing through a replaced directory symlink outside selected roots.
  • File-list import streams bounded CSV data into an atomic import, with cancellation and explicit limits.
  • Build directories validate ownership, permissions, ACLs, and symlinks before writing or signing.
  • One current format for each internal interface; previous development schemas, caches, PDF-property mappings, and operation journals are not adapted.
  • Fresh data in ~/Library/Application Support/APFSearch/v1 and independent preferences. Earlier data is neither migrated nor deleted; choose indexing roots again on first launch.

修复文件操作路径竞争、目标目录审批失效、增量索引越界、文件列表导入资源放大,以及构建目录替换问题。删除旧格式兼容分支;使用全新的格式 1 数据目录与偏好设置,不迁移、不删除旧数据。首次打开后重新选择索引范围。

The native interface, Retina DMG layout, eight languages, and Universal/Apple Silicon/Intel downloads are included. Identifiers remain org.apfsearch.*.

保留原生界面、Retina 安装窗口、八种语言和三种架构下载包;应用标识仍为 org.apfsearch.*。

Verification and limits / 验证与边界

Source: b07ca45. This update is one source commit.

253 Rust tests, 103 feature checks, 76 service checks, 45 content/file checks, and 63 AppKit checks passed. Clippy, localization, identity, and release tests passed. Four expensive/environment-specific Rust checks remain explicitly ignored. Tests use isolated fixtures rather than a full user-volume scan.

The contained applications are Developer ID signed, Apple notarized, and stapled. Every architecture, extracted ZIP, and mounted DMG is checked for valid signatures, tickets, architecture, and private build paths. DMG containers themselves are unsigned and are not separately notarized.

包内应用已完成 Developer ID 签名、Apple 公证及票据装订;每种架构、ZIP 解包和 DMG 挂载后的应用均经过校验,发布包已检查个人构建路径。DMG 外层容器未单独签名或公证。

This remains a development preview. Physical Intel Macs and macOS 14 have not been tested; the Intel CLI help entry point was exercised under Rosetta. Full-volume correctness, GUI latency, energy use, and zero performance overhead are not claimed. Security checks add measurable overhead to some bulk file actions.

这是开发预览版,尚非完整的 Everything 替代品。未完成真实 Intel Mac、macOS 14、整卷正确性及整机性能验收;Intel CLI 帮助入口通过 Rosetta 运行检查。安全校验会给部分批量文件操作带来可测开销,不宣称完全零性能损失。