mirror of
https://github.com/bitsycore/Allofit.git
synced 2026-10-05 12:27:26 +00:00
Memory / relaunch - FSEvents replay after a relaunch no longer copies the whole index per changed file: allRecords is no longer @Published (each element mutation emitted the full array and a buffering subscriber kept every copy alive, reaching 10+ GB). Changes are coalesced, stat'ed off-main and merged once. - Save the cache when the history replay finishes and on quit, and save the event id actually merged, so the next launch doesn't replay days again. - Views (App scene, ContentView, PreviewPane) no longer observe AppModel, so index updates don't re-render the table or reload the Quick Look preview. - Break retain cycles in the FSEvents watcher callbacks. Search (Everything syntax) - Space = AND, | = OR, ! = NOT, quotes, ext:, file:, folder:. - Terms with / match the full path; path wildcards are folder-aware (* within a folder name, ** across folders), e.g. "some/folder/**/path" IMG_????.heic - Byte-level matching (memmem / native glob) instead of NSRegularExpression, parallel filter, top-N selection instead of a full sort, total match count in the status bar, near-instant typing debounce. Index correctness - New IndexState shared by the GUI and the service: stable path-derived ids, O(1) swap removal, folder removal drops its subtree (no ghost entries after moving a folder to the Trash), folders moved/renamed in are rescanned, parent-must-be-indexed rule matching the walker (hidden/package content). - Unicode-normalized path ids (no duplicates for accented names). - Reconcile on load and on settings change: prune removed roots, exclusions and orphans; scan new roots; rescan when the saved event id is unusable. - Service resumes from its cache instead of rescanning everything on start. - Shared parent-path strings, cheaper exclusion checks, deduped roots. Tests - Swift Testing target for the search syntax, index rules, top-N selection and cache round trip; run in CI.
31 lines
488 B
YAML
31 lines
488 B
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
build:
|
|
name: swift build
|
|
runs-on: macos-15
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Show toolchain
|
|
run: |
|
|
sw_vers
|
|
swift --version
|
|
xcodebuild -version
|
|
|
|
- name: Build debug
|
|
run: swift build
|
|
|
|
- name: Build release
|
|
run: swift build -c release
|
|
|
|
- name: Test
|
|
run: swift test
|