Skip to content

fix: folder matching, preview, progress and download-speed follow-ups from the Mac report - #123

Merged
iLevyTate merged 2 commits into
mainfrom
fix/hans-sorting-followups
Nov 12, 2026
Merged

iLevyTate merged 2 commits into
mainfrom
fix/hans-sorting-followups

Conversation

@iLevyTate

Copy link
Copy Markdown
Owner

Follow-ups from the hands-on Mac report: items 7, 8, 11, 12, 14 and 15. Stacked on #122, so this PR also shows #122's commit (4b8dd95) until that one merges. The new work is the single commit c53ee4c.

What changes

Folder matching (items 7 and 8)

  • A category counts as a misspelling of a Smart Folder name only within an allowance that grows with the name's length: none under four characters, one per four, three at most. The fixed allowance of two sent a file labeled "SEO" to a folder named "Web" or "Dev".
  • A generic category ("document", "file", "image") with no Uncategorized folder returns no match instead of the first folder in the list. The three callers already handle no match.
  • A strategy suggestion says what named its folder (category, file type or purpose). "Using Date-Based organization method" described a folder that was named after the analysis category.
  • The analysis cache key uses each Smart Folder's whole description. It used the first 64 characters, so an edit further in returned the answer for the old wording.

Organize preview (item 12)

  • handlePreviewOrganize throws when the dry run fails or is refused and returns the files the batch sends to one name. No main-process change.
  • The Preview button shows that it is working, ignores a second press while the first is running, and gives the reason when the preview cannot be built (it said only "Nothing to preview.").
  • The preview marks files that would get the same name in the same folder, says the move will not start, and keeps Move off while any exist.

Discover (item 11)

  • Progress reads "Analyzing 3 of 10 files" and "30% complete"; the second percentage badge is gone.
  • The notice for an analysis that continues after a restart reads "Continuing the analysis that was interrupted: N files left" and stays for six seconds.

Model download (item 15)

  • Speed and time left are the rate over the last ten seconds, reported once three seconds of data exist. They were the average since the request was created, shown after one second.
  • The wizard row reads "Calculating speed…" while bytes arrive without a speed.

Docs (item 14)

  • The Install Guide, the README and the release-notes preamble in release.yml say which Mac file to take (mac-arm64 for Apple Silicon, mac-x64 for Intel) and how to check in About This Mac.

Not in this PR

  • Item 7: the date-based method still scores nearly every file 60%, and a low-scoring file is not sent to the default folder. Both change where files land and wait for a reproduction with real models.
  • Item 6, items 9 and 10, and the leftovers of items 2, 3, 4, 8 and 13.

Checks

Windows 11 x64, on c53ee4c's tree:

  • npm run local:gate, every step: 956 test suites, 14126 tests passed, 11 skipped, coverage thresholds met, production build, native modules.

  • The eight Playwright smoke specs on a clean dev build: 101 of 101.

  • The new release-notes line from release.yml, run by hand in Windows PowerShell 5.1 with a sample version: one list entry with both file names filled in. The workflow file still parses as YAML.

Not checked: macOS, a packaged build, and the release workflow itself (it runs only in a release, under PowerShell 7).

…ow external drives

From a tester's report of a Mac sorting run that ended with files missing,
an unclear result and an external drive that could not be used.

File loss
- handleDuplicateMove compared a file against files the same run had still
  to move. Two byte-identical files renamed or moved in one run were each
  taken for a copy already in place, both went to the trash, the move check
  failed and the run was undone with the two files gone. A file the run has
  still to move no longer counts as a copy in place, and a rename inside one
  folder never removes the file.

Move outcomes
- A run that did not move everything stays on Organize with a banner: how
  many moved, how many did not and why, or that the run was undone.
- Identical copies that were removed are listed as duplicates with the copy
  that was kept, and are no longer counted as moved.

Sources that are also destinations
- A notice on Organize and a mark in Preview say which files stay where they
  are, or are only renamed there.

External drives
- A folder outside the user folder can be a Smart Folder, can be scanned and
  can have folders created in it. sanitizeFolderPath no longer bounds paths
  to the home tree; the destination policy decides, and asks once for a
  folder that is not inside a Smart Folder or Documents and was not picked
  in a dialog.
- Still refused: system folders and links into them, startup folders, device
  paths and traversal. LINK_OUTSIDE_ALLOWED becomes LINK_INTO_SYSTEM;
  ALLOWED_APP_PATHS is removed.
- A refused or unreadable folder on Discover gives the reason instead of
  "No files found".

Not changed: one file failing the move check still undoes the whole run.
Not verified: macOS, and a packaged build of this branch.
… from the Mac report

Folder matching
- A category counts as a misspelling of a Smart Folder name only within an
  allowance that grows with the name's length (none under four characters,
  one per four, three at most). A fixed allowance of two sent "SEO" to "Web".
- A generic category with no Uncategorized folder returns no match instead
  of the first folder in the list.
- A strategy suggestion's explanation says what named its folder (category,
  file type or purpose) instead of the template's title.
- The analysis cache key uses each Smart Folder's whole description, not its
  first 64 characters.

Organize preview
- handlePreviewOrganize throws when the dry run fails or is refused, and
  returns the files the batch sends to one name. The Organize screen shows
  the reason, shows the button as working and ignores a second press.
- The preview marks same-name files and keeps Move off while any exist.

Discover
- Analysis progress reads "Analyzing 3 of 10 files" and "30% complete", with
  the percentage once.
- The notice for an analysis that continues after a restart says so.

Model download
- Speed and time left are the rate over the last ten seconds, reported once
  three seconds of data exist. The wizard row reads "Calculating speed…"
  until then.

Docs
- The Install Guide, README and release notes say which Mac file to take
  for Apple Silicon and for Intel.
@iLevyTate
iLevyTate merged commit 8b7fd79 into main Nov 12, 2026
8 checks passed
@iLevyTate
iLevyTate deleted the fix/hans-sorting-followups branch November 12, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant