Нотатки про випуски

Що нового

Останні версії, нові згори: що додано, змінено й виправлено в кожній.

26.11.13.0130

Added

  • Read PDF and EPUB documents in the viewer (64-bit viewer, specification 274): independently enabled document readers provide page or chapter navigation, search and reading controls while keeping the existing previews when the readers are off.
  • View HTML pages in the viewer (64-bit viewer, specification 275): the optional page viewer opens HTML inside the program with navigation, search and presentation controls; it also provides the page host for EPUB chapters.
  • Clipboard, scheduled operations and device folders through your own Google Drive (Share Manager and 64-bit viewer, specification L0269): signed in to Google Drive, with or without an exchange server, the Share Manager's clipboard commands send and get the clipboard via Google Drive, a scheduled operation takes "Via Google Drive" as its source (what your other devices send to this PC, or a folder one of them publishes) or its destination (one of your devices or any of them) for copy, move and archive, and the viewer's "My devices" section lists and opens the folders your other devices publish there, read-only, one level at a time. The Google Drive page has a queue with every packet and its size, and any packet can be deleted. What would not fit is refused before any byte, with the free space named. Release builds read the sign-in client from the CI secrets FMS_DRIVE_CLIENT_ID and FMS_DRIVE_CLIENT_SECRET; a build without a client shows "not set up in this build" and the Sign in button stays off.
  • Documents processed in doc-html-translate from the viewer (64-bit viewer, specification 276): with "Process documents in doc-html-translate" on (Settings, Documents), the doc-html-translate button of the PDF and EPUB readers first checks the program and then asks what to do: open the page in the browser to translate it there, convert only, or translate with the local Ollama model set up in doc-html-translate. A missing program can be installed from the same question, or chosen by hand; the choice is remembered. Each result goes into its own folder in the viewer's cache, never beside the document, and the outcome - a partial translation, an unreadable file, an interrupted run - is reported in the status line. With the option off, the button behaves as before; picture translation does not change.
  • Read and edit text files in the viewer (64-bit viewer, specification 277): with "Full reading of text files" on (Settings, Documents, Text files), a text file opens with its own fonts, themes, line numbers, search with case, whole-word and regular-expression switches, syntax colours and a Markdown view; a file larger than the editing limit is read in parts, and the panel offers to save a selection as a new file or to open the file in an external program. Ctrl+Shift+E reads the file in another encoding with a preview, and the choice is remembered until the file changes. With "Editing text files" also on, Ctrl+E edits files on this computer and in shared folders: undo, replace, go to line and a choice of line ending; a save is atomic and keeps the file's encoding, byte-order mark and line endings, a file changed by another program is reported before anything is overwritten, a backup copy is optional, and unsaved changes survive a crash in an encrypted draft. "Open as text" in the file menu shows any other file as text; a file that looks binary says so first and is then shown for viewing only. Both options are off by default, and with them off the text preview is what it was.
  • Scheduled operations in a window of their own (Share Manager and 64-bit viewer, specification L0297): the list of scheduled file operations with each one's last and next run, the commands to create, edit, run, pause, import and export them, start with Windows and the run journal open in one window: from the Share Manager's tray menu, from the viewer's folder menu ("Scheduled operations..", in every listing - "Schedule an operation for this folder.." still opens the editor with that folder as the source) and with the viewer command "Scheduled operations", which has no key until you give it one in the hotkey settings. The Share Manager settings page keeps the same list and opens the window with "Open in a separate window..". Scheduled operations need no folder sharing, no server, no open port and no administrator rights; existing operations and their journal carry over unchanged.
  • A scheduled operation that wipes free space (Share Manager, specification L0299): "Fill free space with deletion (FileDO)" overwrites the free space of a local drive or folder with temporary files and deletes them again, so deleted files cannot be recovered from it - on a timetable or by hand, with temporary files of 500, 1000, 2000 or 5000 MB. It needs FileDO; the editor says so when FileDO is not found, shows the volume's size and free space, warns when the system volume is chosen (FileDO keeps the greater of 10 GB and 10 % of it free) and notes that on an SSD the overwrite adds wear and does not guarantee erasure. Network drives, resources and Google Drive cannot be chosen. Each run writes into a folder of its own and removes it afterwards; stopping a run lets FileDO delete what it wrote first, and anything a run could not remove stops the operation with the folder named in the journal instead of a guess. The journal records the free space before the run and how much was overwritten.
  • Floating panels you can move (64-bit viewer, specification 281): each floating panel has a move handle beside its pin - the two toolbar rows, the status strip, the window controls, the destination table (by its header) and, up and down only, the video playback controls. Drag it to put the panel where you want it, or press F10, select the handle, press Enter or Space and use the arrow keys (Shift for larger steps). A panel stays whole inside the window at every moment, also while dragging and when the window is made smaller, and returns to your place when the window grows again; dropped within 12 pixels of its usual place it snaps back, and no panel can be dropped over the window controls or the playback controls. A click on the handle opens a menu that returns this panel or all panels to their places, and the button "Return panels to their places" under Settings, General does the same. The places are kept between runs, and a profile reset returns the panels. Help in all 13 languages.
  • Find a topic on the subject index (site, specification L0301): the Topics page in English, Russian and Ukrainian has a search field that narrows the topic cards to those holding every typed word - in the title, the summary or the card's keywords - says how many topics it found and what to do when none match. It works offline in the page, without any request.

Changed

  • Both setups offer the same optional parts (installers, specification L0307): the Server setup's unticked media and file manager now has the same offline items under it as the setup that starts with the manager - the VLC video codecs, the PDF preview and the OCR models - so a computer with no internet access gets them from either setup. Defaults, the Windows service, administrator rights and the existing /COMPONENTS names are unchanged; the new silent names are viewer\codecs, viewer\pdf and viewer\ocr. A setup is never built without a part it offers: packaging stops when the staged files, their versions or the recorded options (OCR models, the exchange gate) do not match, instead of producing a smaller setup. A setup built without OCR models says so in its wizard and downloads them the first time OCR is used.
  • The landing's first screen offers every way to get the program (site, specification L0301): under the headline, the 13 landings show the setup download, the Microsoft Store and the portable ZIP side by side, the setup's version, date and size, the winget command with its copy button and a picture of the viewer window. The download rows also show each file's size and SHA-256 value beside its checksum file, taken from the published release; the landings' structured data names the installer address and the licence, and the footer's "What's new" link leads to the site's own page.
  • The guides, the server page, the Android guide, Support and What's new in one language per address (site, specification L0301): the eight guides under docs/, the Server edition page, the guide to publishing folders for Android, the Support page and What's new are English at their addresses and have their own Russian and Ukrainian pages under lang/ru/ and lang/uk/; each page holds the text of its language only, names its language and links its two siblings, and the RU, EN and UA switch opens the sibling instead of swapping hidden text. The sitemap and the site search list the new pages.
  • A folder's PIN stays hidden in the Share Manager: the PIN field of a folder's settings is masked like a password. In the access-code table the PIN column shows a tick when a PIN is set; a click opens a masked field to set, change or clear it for this code.
  • A shorter tray menu in the Share Manager: the interface language, "Send the log to the author..", "Open the event log in the editor" and "Event log folder.." are no longer in the tray icon menu. They stay in the manager's settings: the language under Startup, the log and its folder under Help, and the log export under Help - "Export logs for analysis". The messages that offer to send the log now point there.
  • Scheduled operations are a part of their own (specification L0297): the setup wizard has a "Scheduled operations" item beside local sharing, ticked in the Full type; it installs the same Share Manager - nothing else to download and no Windows service - and the Compact type leaves both out. The Server edition's description says its Share Manager brings scheduled operations, which run in the signed-in session and not in the service. The site, its landing door, the READMEs, the Store and winget descriptions, the installers, the Share Manager's About page and welcome screen and the help name scheduled file operations as the third of four optional parts.
  • Text previews recognise the encoding of older files (64-bit viewer, specification 277): a text file without a byte-order mark that is not UTF-8 is now matched against Windows-1251, CP866, KOI8-R, KOI8-U, Windows-1252, ISO-8859-1, Shift_JIS, GBK, Big5 and EUC-KR, and the preview opens in the one its text reads naturally in; a file with too little to judge still opens in the system code page as before.
  • A new link password while on air, and a link that opens the phone app (Share Manager, specification 263): while a broadcast runs, the Live Broadcast window offers "New link password": the old password stops opening the broadcast at once, viewing already under way goes on, and your own devices keep their access; the same copied link works with the new password. The copied link is now the Android link that opens the phone app directly and, where the app is not installed, opens the import page in the browser; links copied earlier are still read.
  • The Live Broadcast window fits a high display scale (Share Manager, specification 267): at 150-200 % the window, its port, bitrate and viewer-limit fields and the on-air chip are scaled with the text, so every value and button is shown whole; on a screen too small for the whole window the form scrolls instead of losing its bottom. Its help pictures are taken again in all 13 languages and both themes.
  • The download buttons of the site name the release (ticket L0207): the landing, its 12 language pages and the Server edition page show the version of the current release linked to its GitHub release page, its date and a SHA-256 link for each download, and the setup, ZIP and Server setup buttons link the files of that release; "All releases" stays beside them. The facts are in the page itself, so they are there without JavaScript and for search engines, and the pages no longer ask api.github.com for the latest release - the site now contacts two outside addresses, the Google Fonts ones, as the privacy page and the trust pages say. Each version on the "What's new" page links to its release.
  • One language per address on the site, and the download on the first screen (ticket L0207): the landing at / is English, and its Russian and Ukrainian pages are lang/ru/ and lang/uk/; the RU, EN and UA switch links to them and remembers the choice. The privacy page, the documentation topics and the glossary have their own Russian and Ukrainian pages too, each naming its other languages to search engines. On the pages that keep three languages at one address - Support, What's new, the how-to guides, the Server edition page and the Android folder-publishing page - choosing a language writes it into the address, so a shared link opens in the language the sender saw. Right under the heading, the landing and its language pages show the setup button with the version and date of the current release and the winget command. On a phone the header is one row, and the language codes take one line. The Russian and Ukrainian landings show their guides block and footer in their own language. The landing's title is "File manager for Windows | Fast Media Sorter & Sharing", and its description names the manager and the sharing service. docs/ forwards to the landing. The release notes on the What's new page state facts only, and the site serves only its own pages and their files. Every page names its language and country for link previews (en_US, ru_RU, pt_BR and the rest). The not-found page titles its guides in English, Russian and Ukrainian, and the Russian and Ukrainian landings name the Android guide in their own language.
  • One register of what the product can do: tools/site-facts.json now lists each capability with its component, its state, the release that brought it and its evidence; tools/Test-SitePositioning.ps1 fails when a released capability is missing from the READMEs or the landing, when a retired phrase or a promise marker appears on any scanned surface in any language, or when something that is only planned is named.

Fixed

  • Connection diagnosis uses the selected language (specification 283): diagnosis follows the language chosen in the program and includes Arabic, Hindi, Bengali and Urdu.
  • Dialog controls fit at higher display scales (specification 284): secondary viewer and Share Manager windows keep controls and the corner help button from overlapping or clipping, including in right-to-left layouts.
  • Theme colours and dates in settings and broadcasts (specification 285): focus indicators and broadcast status colours follow the active theme, and broadcast dates use the user's format.
  • An open choice list stays above the floating panels (64-bit viewer, specification 302): the Resource chooser, the folder, sort and recent-files lists, the path box's suggestions and every other panel list open on top of the second panel and every other floating panel, the transport bar and the recipients table included, and keep the top while they are open, so every row can be read and clicked; the panels take their places back when the list closes.
  • The image editor preserves a JPEG's pixel dimensions (64-bit viewer, specification 286): opening an image with a 72-dpi tag no longer scales and crops its working copy.
  • Selected folders and access checks show their current state (Share Manager, specification 288): the selected folder row shows its checkbox, and the package wizard clears the checking message after access succeeds.
  • Scheduled operations no longer leave empty folders in the temp directory (Share Manager): a copy or move to or from a resource or Google Drive left one empty fms-scheduled-* folder in %TEMP% per transferred file.
  • Folders of your other devices can be added from the viewer on a server with protected content (64-bit viewer and Share Manager, specification 295): the viewer's own server entries now hold a device key, so a folder protected for them opens. An entry or a Share Manager account signed in before it had a key gets one by itself in the background, stays the same device in every list, and asks for no password and no new sign-in. The device that holds the folder needs this version too.
  • The QR window shows the code and nothing over it (Share Manager): the help button no longer lies on top of the code in the enlarged QR window, where it covered the picture a phone camera has to read. The window's title line says what the clicks do.
  • A keyboard shortcut the program cannot use is kept, not erased (64-bit viewer, specification 294): a shortcut stored in the settings by a newer version or another program of the family - a key this version does not know, or a combination it does not allow - is shown as "no shortcut" and does nothing, as before, but saving the shortcuts no longer replaces it with an empty value, so it is still there for the program that wrote it. Shortcuts written as NumpadAdd, BracketLeft, MediaPlayPause or AudioVolumeUp, in any letter case, are read and bound.
  • "Copy sign-in link" in the connection-string window of the first-run welcome (Share Manager, specification 252): the window opened from the Share Manager's first-run welcome now offers the browser sign-in link beside the string, as the one in the exchange settings does, whenever the server serves its browser client.
  • Exchange sign-in refusals in the viewer say the real reason (specification 252): when the exchange server refuses to add it, the viewer's "Add from an exchange server.." window now shows the same sentence of the shared message table as the Share Manager, in all 13 languages - a wrong login or password, too many attempts, a full server, a device number the server already knows, a password changed on another device. A folder opened through the exchange server after the account's password was changed on another device now reports a refused sign-in instead of "the server does not answer".
  • A phone that Android paused says so (64-bit viewer and Share Manager, specification 252): when Android ends a phone's sharing at its time limit and the phone names that reason, the device and each of its folders show the sentence of the shared message table - Android paused sharing on this phone, and it continues when the app is opened there - in place of "offline", in "My devices", the resource list, the file manager and the Share Manager's device list. Ten languages held only the first half of that sentence; every language now holds both.
  • Pasting a code or a QR picture no longer freezes the window (64-bit viewer and Share Manager, specification 252): the six windows that paste a code, a connection string or a QR picture read the clipboard in the background. A program that holds the clipboard or does not answer costs a press at most 5 seconds, a second press during a read says one is under way, and a text above 1 MB or a picture above 64 MB is refused before it is copied.
  • Sending the clipboard gives up after 5 seconds (Share Manager, specification 252): a program that does not answer held the read for 8 seconds.
  • Leaving an exchange account ends a running broadcast first (Share Manager, specification 252): the device sends the end of its broadcast before it removes itself, and both leaving and disconnecting let go of the broadcast's record, upload and keys, so the next sign-in starts nothing from it. A sign-in on a device number the server already holds tries once more with a fresh number.
  • Exchange server (specification 252): text in the wire protocol refuses the C1 control characters too; a connection that ends during the handshake without sending a byte gives its connection budget back, and a time-out does not; the account commands state the memory of a full clipboard, which is twice its limit; a bye carrying offlineReason reaches the device record the other devices receive.
  • 'Set my own password..' works in the shared invitation and administrator password windows (Share Manager, specification 287): in these two windows the button closed the dialog and did nothing. It now asks for the password you type and sets it in place of the generated one. The title and the one-time note of those windows name the administrator and the invited people instead of an account owner, in all 13 languages.
  • Text fixes in the Share Manager and the viewer (specification 289): the autostart option of the exchange account window shows the product name with its "&" instead of underlining the next letter; the background scheme reads "By bottom", and the Ukrainian "Too many attempts" message is spelled correctly; the holder column of the disk list says "Nobody" for a disk nobody holds; the welcome wizard names Settings - Destinations as the place of the other nine folders; the button of the invitation list reads "Withdraw invitation", the word the confirmation and the help use; the operator statement of the exchange server states the multi-user point as a plain fact, with no promise of later work.
  • Portuguese reads as Brazilian Portuguese in both programs (specification 291): the viewer and the Share Manager used to mix European and Brazilian words in one session ("ficheiro" and "arquivo", "palavra-passe" and "senha", "definições" and "configurações"). Every Portuguese string now uses the Brazilian words of Windows in Brazilian Portuguese - arquivo, senha, usuário, celular, tela, configurações, conexão, compartilhar - and the Brazilian grammar ("Atualizando.." instead of "A atualizar..").
  • Translation fixes in Bengali, Hindi, Arabic, Urdu and Portuguese (specification 290): Bengali rows no longer carry Devanagari letters (the server refused a registration or a password change, a resource is read-only, the network policy line) or an Arabic full stop; Urdu rows no longer end with the Devanagari full stop and spell "account", "sign in" and "should" one way everywhere; the Arabic and Urdu broadcast windows of the viewer and the Share Manager are stored in reading order, so their sentences, brackets, .spres, .fmsbcast, .fdd and .fd-sec tokens and the file-type lists of the Open and Save dialogs no longer come out reversed or scrambled; "Revoke" reads differently from "Cancel" in Arabic, Hindi and Urdu, and "Cancel" reads the same in both programs; one Portuguese line that was in Spanish spelling is Portuguese. Two new test facts, one per program, keep a Bengali row free of Devanagari (and a Hindi row of Bengali), and Arabic and Urdu rows in reading order.
  • Paths and file names read in the right order in Arabic and Urdu (specification 292): in the file details window, the resources list and the Share Manager folder list, a path, a file name or an address is shown left to right inside the right-to-left line, so the \\ of a network share and a closing / no longer jump to the wrong end and a Latin folder name no longer swaps places with an Arabic one next to it. The Copy button of the details window copies the plain text.

26.10.25.1830

Added

  • Image decoding without a licence-keyed library (specification 270): the 64-bit viewer and the Share Manager now read and write pictures through Magick.NET 15 (ImageMagick) instead of ImageSharp; the 32-bit viewer reads the WEBP files Windows cannot through libwebp 1.6.0 instead. The same formats open as before and no new ones were switched on: the file's own header decides the format, and anything outside the known table (SVG, PDF, PostScript, ImageMagick scripts) is refused without being handed to the decoder. Size limits are checked from the header before any pixels are allocated, nothing spills to temporary files, and a long animated WEBP still shows its first frame without decoding the whole animation. The editor keeps EXIF, ICC, XMP and IPTC, removes the stale embedded thumbnail and saves JPEG at quality 92 and WEBP lossless as before. The decode cache format moved to version 3, so pictures cached by the old decoder are decoded again once. The 32-bit viewer still runs on Windows 7/8.1 and still cannot open animated WEBP there. Every build and package is checked for leftover ImageSharp files, and malformed BigTIFF and ICC files are tried in isolated processes on every test run. That check found that a local release-style build (ZIP, both setups, MSIX) also packed the rollback copies of old programs the local build keeps; they are left out now.
  • Exchange outside links: creating, rotating and removing a folder link now shares one transaction boundary with background publication, so an older publication pass cannot restore the previous link state. Deterministic create/remove and snapshot-ordering regressions preserve the sealed-record and PIN/proof checks.
  • Release help and catalog actions: the live receiver, Live Broadcast producer and Google Drive settings have real window captures in all 13 languages and both themes. Live help explains source selection, explicit start, listener credentials, link/file hand-off and stop. Help generation requires existing captures and never draws substitute windows. Skip and Create desktop shortcuts use their dedicated catalog glyphs. README/site/Store copy describes modern JXL viewing and the implemented live producer/receiver.
  • Legacy WebP fallback hardening: after WIC refuses an image, the x86 viewer validates the WebP header and explicitly invokes the WebP decoder. A TIFF disguised as WebP never reaches the fallback decoder. Normal WebP fallback behavior remains covered. (The fallback decoder itself is now libwebp, see specification 270 above, which also closes the ImageSharp remediation of specification 266; dependency warnings were never suppressed.)
  • File manager mode in the Grid panel (modern viewer, specifications 256-262): the F3 panel features an integrated file manager mode accessible via the toolbar mode selector ("Sorting" vs "File manager"). It allows independent browsing of local drives, configured SFTP/SMB resources, and connected exchange devices with full address bar navigation, Back/Forward/Up/Refresh history, and content filtering (Media only, Media & documents, All files, plus hidden files toggle). File operations (copy, move, rename with case-only support, new folder, delete to Recycle Bin or permanent deletion, and undo) execute through the application's shared operation queue. Includes built-in verified ZIP creation with SHA-256 and CRC readback verification, safe ZIP/7z/RAR extraction with path traversal guards, safe opening policies blocking executables and scripts, and a dedicated settings page under modern preferences. The legacy x86 .NET Framework 4.8 viewer retains its existing triage panel unchanged. Combined acceptance suite and operational guide added (docs/guides/FILE_MANAGER.md).
  • Live broadcast: share one window, and listener passwords the exchange server can check (specification 263): the Share Manager's Live Broadcast window can capture a single chosen window instead of a whole monitor (a closed window ends the broadcast with one sentence, a resized window keeps its proportions with bars instead of stretching). A password-protected broadcast can now go through the exchange server too: the server checks the listener's password against salted hashes the broadcaster uploads and never holds the password itself, and the Live window says in words when the exchange server declines to list a broadcast. The copied broadcast link now uses the fmsbcast://import form. On air, "Allow viewers on my network" can be changed without stopping the broadcast, a change of the PC's network address updates the broadcast by itself, and the viewers who come through the exchange server can be capped (0 means no cap). Covered by automated tests, including a run against the real exchange server program.
  • Encrypted exchange broadcasts (modern viewer, specification 234): the viewer opens sealed media from the exchange server before handing it to the player, verifies the producer's pinned TLS certificate inside a broadcast tunnel, and stops on a damaged or unauthenticated stream. Guest broadcast access uses a separate group key and follows guest-device changes and withdrawals. The first connection to an exchange server asks once per server identity, and server settings and the privacy page explain content encryption and visible metadata. Folder guest access retains the existing availability gate.
  • Google Drive channel in the Share Manager (specification 203): Manager settings has a "Google Drive" page right after "Exchange account": sign in with your own Google account, see the state in plain words, sign out. It asks Google only for the app's own hidden storage on your Drive (drive.appdata) - no access to your files - and signing out deletes this PC's records there, revokes the grant and removes the stored token. While signed in, the PC lists itself and each shared folder in that storage (name, identity and lock mark only, never an address, password or link), and the viewer's resource list shows what your other devices list there; such a folder is listed but cannot be attached through Drive. Offline help describes the page in all 13 languages. A build without a Google sign-in client of its own shows "not configured in this build", the Sign in button stays off and nothing is written; no release build carries a client. The viewer shows the Drive rows only on a PC that also has an exchange-server account.
  • Disk autostart visible in both lists (specification 254): the Share Manager's .fdd disk table shows an Autostart column with Yes/No for every disk and a dash when the worker does not support the setting. FileDO rows in the main resource list also mark enabled autostart. Both lists update after disk actions, and the disk table fits its rows and measures localized column text. The selected disk's note keeps the worker's error and uses the same autostart text. All 13 UI languages and offline help, plus the disk guide, describe the mark. No setting or protocol changed.
  • Two settings windows instead of three (specification 253): the Share Manager's SFTP sharing pages (Network and Hosting) now sit in Manager settings, in a group headed "SFTP sharing" between General and Scheduled file operations, with page titles and search results that repeat the scope ("SFTP sharing: Network"). The group is there while the SFTP sharing component is installed; a deep link to it without the component gets the usual "component unavailable" message. The tray has one "Manager settings" entry plus the local exchange server entry, and the footer link switches between the two windows. The unapplied port draft still survives page and window switches and is asked about on close only while it is pending. The window remembers its page from the former SFTP window the first time and nothing stored is rewritten or deleted. Offline and in-app help, the settings guide, the READMEs and the site pages now describe two windows. No setting, file or protocol changed.
  • Exchange server status that agrees with itself, and the build in every log: the Share Manager's tray item and the exchange settings window could disagree - the tray said "stopped" for a state it had not read (before the first read, an unknown or a stopping service) while the window, refreshed only after its own actions, kept an old "running as a Windows service". The tray now names a server stopped only on a read that says so, the window re-reads the service state on its poll tick whatever the group's fold state, and both write what they show to the log. A failed "is my server visible from outside" check now logs why (refused, slow, no network). Every log file now starts with the program version: the Share Manager's session header, each daily server log and audit file, and the service installer's helper log (server and binary hash).
  • Share Manager details (specification 252): a broadcast whose lifetime the worker has marked as final now reads «Expired» in the Expires column of the broadcasts window, in all 13 languages, instead of its old end time. The access-test window draws a server that hung up before answering as a warning, the same way the resource list in the viewer does. The .spres file of a broadcast no longer lists an outside address that the broadcast gateway's own check found closed (an address never checked is still listed), the same choice the folder-share file already made.
  • Logs are redacted as they are written and again when they are packed (specification 252, diagnostic report 0.14): in the 64-bit viewer and the Share Manager, every log line now passes a redactor before it reaches the file, and the "send logs to the author" archive redacts each line again before a long log is cut to its head and tail. Passwords, access PINs, device tokens, pairing codes, exchange logins and server addresses, certificate fingerprints, secret query parameters (also after an HTML-escaped separator), credentials inside web addresses and whole private-key blocks become [REDACTED], so a cut log can no longer begin in the middle of a key and the product no longer depends on every writer keeping such values out. The Server host's support collector follows the same order (redact, then cut) with the shared truncation line, and its archive is now fms-host-logs-<stamp>.zip with an environment.txt; the computer name is no longer in the file name. Checked with made-up secrets.
  • One row per live source in the exchange broadcast list (specification 252, live broadcast): when the exchange directory holds two records of one source (the same sourceId, for example a broadcast restarted before the old record expired), the «Open live broadcast» window now lists one row, the one that started later, instead of two rows for the same channel. The records are ordered by their start time, not by the writing device's clock, as the exchange contract states. Records that are refused, or that name no source, are still listed as before. Modern viewer only.
  • Calmer dialog buttons (unified UI contracts, specification 243): Cancel, No and Close no longer wear a red glyph and a tinted face - they look like any other command, and only the answer that confirms keeps its green (or amber) glyph; the one red button left is the acting button of an irreversible confirmation. The glyph now sits 8 px from its caption, and question windows read left to right as Cancel, the middle answers, then the final action (mirrored in right-to-left languages), with Tab following the same order.
  • Three optional parts, two ways in. The site and the READMEs now describe the product as three independent, optional parts - the media viewer and sorter, local SFTP folder sharing (FileDO disk hosting is a capability of sharing, not a part of its own) and an exchange server - and two install intents: viewer first (the full package, the ZIP, winget or the Microsoft Store) and server first (the Server edition, with the viewer as an unticked extra). The server page carries an availability table: what each package installs by default, which parts are optional, where hosting runs unattended and where administrator rights are needed. The Microsoft Store copy says what the Store package is: the viewer and the Share Manager, with no Windows service and no FileDO hosting.
  • Three components follow-up (specification 251): in the user installer the unticked exchange component (compiled out of every released installer while the exchange gate is shut) is now a child of the Share Manager component (share\exchange), so it can never be installed without the Share Manager it needs, and a trial setup showed that choosing it selects the parent automatically; the availability matrix holds that line. The free release pre-flight tools\Build-OfflineRelease.ps1 no longer stops on a leftover -Server argument of Stage-ServerViewerPayload.ps1 (found by a full local run), and a new test reads every Stage-*.ps1 call of the packagers against the parameters the script declares.
  • Separate sharing settings: SFTP sharing and the local exchange server now have independent settings windows with reciprocal links and direct tray access. Manager preferences, remote-account publishing and schedules retain their own home. Each window remembers its context; switching windows preserves an unapplied SFTP port. Updated offline help keeps the old topic anchors working.
  • Exchange clipboard and audit: the Share Manager's exchange-account settings now offer Send, Get and metadata-only Refresh, with each account's slot size and an explicit encrypted-size label. Server connections and administrative changes have a bounded daily operational audit with safe setting deltas, refusal results and no clipboard contents or credentials. Concurrent broadcast discovery and isolation between broadcasts are covered with a stalled-listener regression test.
  • Exchange server remote administration: local settings control the optional administration surface; the Share Manager opens the server's browser page after showing its certificate fingerprint and trust warning, and offers its link to copy or scan. Administration stays off by default. Both server openings now have full administration vector coverage.
  • A refused copy or move names the real reason on the status line (64-bit viewer). When a recipient folder could not be reached, the line used to say only "no connection with the folder". It now says what the system actually reported: the computer is not found on the network (off, on another network or the name is wrong), the shared folder does not exist on it, the network to it is down, the connection was cut, the drive or card is not ready, or - for a folder on a saved server - the server's own answer (the login was not accepted, the folder is denied, the server did not answer in time). The name in the sentence is the computer, share, drive or server from the folder's path. A folder that does not answer within the check's limit says "did not answer within N s" at once, and if the check finishes a moment later with the real cause the line is restated with it. Every refusal, including the "this resource does not allow this operation" one, is now written to the log with its reason; before, a refusal left no trace in a release build. No exception text is shown. Strings are in all 13 UI languages.
  • A long animated WEBP opens at once (64-bit viewer). A large animation used to hold the window until the whole file was decoded and turned into a GIF - 21 seconds for a 711-frame sample, longer than the 20-second wait the viewer allows, so such a file was refused as "too slow". Now the first frame appears immediately, the status line says Animation is being prepared.. frames: N while the rest is converted in the background, and the finished animation replaces the first frame in place (zoom, pan and the picture frame stay as they were) and starts playing. The conversion is cheaper too: for animations up to 100 megapixels in total it still uses the dithered palette, and above that it skips the dithering, which halves the time for the largest files with no visible difference at normal speed. Details you may notice: the editor, OCR and translation buttons stay hidden while only the first frame is shown (a save would flatten the animation); turning the first frame with R keeps it as you turned it; an animation too long for the decode budget (over 400 megapixels in total) is no longer dropped from the list - its first frame is shown with a line saying so, and "Replace with video" is offered for it; preview thumbnails and the look-ahead for the next file use the first frame only and never convert a whole animation unasked. Decoded animations are cached on disk up to 128 MB per file (was 64 MB), and a one-line Animation prepared: entry in the log names the size, the frame count, the time spent and whether it was cached. The 32-bit program for Windows 7/8.1 is unchanged. Strings are in all 13 UI languages (spec 241).
  • Long animations can play as a short-lived encrypted video (64-bit viewer, setting "Animated graphics through video", on by default). A long animated WEBP, an animation over the decode budget and a huge GIF (16 MB or 50 megapixels and up) are no longer swapped in as a GIF: FFmpeg encodes them in memory, the video is sealed into a temporary FileDO container under %TEMP%\FastMediaSorter-av with a key that exists only in the running program, and LibVLC plays it silently in a loop. No plaintext video byte is ever written to disk, the original is never changed, locked or deleted, and the previous video is removed the moment you leave its file. While one plays, the next animation in the folder is prepared in the background at low priority and starts at once when you flip to it (never more than two containers at a time); a leftover folder of a killed program is swept at the next start. A video has no zoom, pan, perspective bars, OCR or editor, and the setting's hint says so; switching the setting off restores the previous behaviour at once. FFmpeg is not bundled: the first eligible file asks once to fetch it, and a No is remembered (the Settings button remains). If anything fails the file opens as before and the status line says Animation shown without video. The 32-bit program for Windows 7/8.1 is unchanged (spec 242).
  • In-app help on every window: F1 key and corner help button (64-bit viewer and Share Manager). Every help-bearing window now answers the F1 key and carries a dedicated top-right ? help button (app.help catalog glyph, 44×44 touch target) that opens the relevant offline guide in your default web browser. Subordinate settings and wizard pages jump directly to their respective section anchors, and the viewer's F1 quick-reference card includes a "Full guide (web page)" link. The offline help corpus ships directly with the product in all 13 supported languages with screenshots matching each language and theme, requires no network access or external fonts, and runs completely locally without external telemetry or data transfer (CONTEXT-HELP 0.1, ticket 240).
  • "Send the logs to the author" keeps both ends of a long log, brings the rolled-over log along and adds a machine-readable summary (64-bit program and Share Manager). A log longer than 2 MB used to contribute only its last 2 MB, so the start of the session - the version and the settings the program logs on startup - was missing. It now keeps the first 256 KB and the latest part, with a line [Diag] LOG TRUNCATED | dropped_middle_bytes=.. between them that says exactly how much was left out; the text is cleaned of your Windows user name before it is cut, not after, and a log too large to scan at all (over 64 MB) is replaced by a one-line marker instead of being read. The log the program rolled over at 8 MB (previous.log, and companion.previous.log for the Share Manager) now travels with the current one, from the folder where the current one was found. The archive is named fms-logs-<version>-<date>-<time>.zip without the random tail it used to carry, and holds an environment.txt beside report.txt: program version, runtime, system, architecture and language as key=value lines in UTC with schema_version=1, and nothing that names a person or a path. The dialog before sending lists the new file like every other, and the program still hands the archive to your own mail client rather than sending anything itself.
  • Switching the interface language in the Share Manager settings window is quick again (64-bit Share Manager). The switch used to take several seconds (up to 14 s measured) and the window looked frozen: every caption, font and text-direction change laid the nested panels out again on its own. The window now holds its layout while the language changes and arranges it once; the switch takes a fraction of a second (about a second with the window open in a right-to-left language, where Windows has to rebuild the controls). The layout that results is the same as before.
  • Exchange details follow the new contract release (64-bit viewer and Share Manager). A phone code or tunnel path written by a newer version of the program is reported as "update the program" instead of "damaged". A connection string refuses a device name that carries a bidirectional formatting control, and when the name would push the string past its limit it is shortened on a whole character instead of the whole string being refused. A clipboard send over the 5 GB default limit is refused before anything is uploaded, with the limit named in the sentence, a program that owns the clipboard and does not answer is named in a sentence of its own, and the clipboard page now says plainly that the send takes exactly what is on the clipboard, a password included. The phone-code window says so when the clipboard is held by another program instead of staying silent. The guest invitation and the link with a password are shown as "not available" with a one-line reason, and nothing is created behind them, because the program's file server cannot limit a login to one folder. A broadcast handed out by link, barcode or file without a password and without end-to-end sealing now carries the local-network address only, never an exchange-server or tunnel address, and the broadcast window asks for a password instead of handing out an empty hand-off; a sealed broadcast keeps its exchange-server and tunnel addresses, which only its key opens. Strings are in all 13 UI languages.
  • Consistent exchange terms and pictures. The viewer and Share Manager use the same exchange dictionary in English, Russian and Ukrainian, with complete translations in the other ten languages. Server clipboard commands, invitation kinds and device sign-out use the family wording; exchange-server, device-connection, clipboard and invitation controls use their catalog glyphs. Android is named consistently in the interface and READMEs. Microsoft Store descriptions use the compact product name; the reserved listing title is unchanged.
  • Send the clipboard to your exchange server and get it back with one press (64-bit Share Manager; the Drive path is not in this build). The Share Manager's main window gets two buttons, "Send the clipboard to the server" and "Get the clipboard from the server", and its tray menu the same two items; the settings page has "Create desktop shortcuts", which makes two desktop shortcuts that run the same functions (--clipboard-send / --clipboard-get) - nothing is created unless you press it. Send reads the clipboard once - one file, else an image, else text - and puts it on every server your accounts reach, with one result line per server; get takes the newest value by the servers' own receive time, names the device it came from and puts it into the clipboard (a text or an image as such, a file saved under its own or a free name into the received-files folder, Downloads by default, and placed as a file drop; a file is never overwritten and keeps the Windows "downloaded from the internet" mark). Several files or a folder are refused with "one object at a time: archive them first" and nothing is sent. A clipboard another program holds ends in a sentence within a few seconds, never a hang; the reading runs off the interface thread with a progress line and a cancel. With no exchange account nothing of this is drawn and the clipboard is never opened. Logs carry the kind and the size class only - never the content or a file name. The shortcuts are not available in the Microsoft Store package (it has no command-line entry for them); the buttons and the tray items are. Strings are in all 13 UI languages.
  • The status panel can appear by itself for a copy, a move or a delete (64-bit viewer). A new switch in Settings - Files, "Show the status bar during file operations", is off by default. When it is on, a single-file copy, move or delete raises the status panel even if it is not pinned and keeps it up until 3 seconds after the last operation; a quick run of keys keeps one showing instead of flashing it, and an operation still running holds it up. A pinned panel, a slideshow that hides the status line and the full-screen mode without panels behave as before. Strings are in all 13 UI languages.
  • The exchange server hands out one-time invitations, lets people register themselves and manages accounts through their whole life (server and Share Manager; the server component stays out of released packages). The operator creates an invitation - for a member or for a guest - and gets a one-time code and a connection string (FMSEXCH1:..&i=<code>, with a QR code) to hand over; the code never expires, is spent by the first registration that succeeds and is kept on the server as a hash only, the log showing eight hex digits of it. An optional shared invitation password lets a group register without a code each (it can be switched off by clearing it). A new person registers from the connection string alone: the server checks the rate, the invitation, the account cap (10 by default, changeable), the login and the password policy in that order, and a refused attempt spends nothing. Guests can read and receive but are refused publishing, broadcasting, uploading and casting (not-permitted); the directory a guest sees is filtered. Each account can carry its own limits (clipboard 5 GiB by default; the number of devices, folders, broadcasts per device). Changing or resetting a password signs the account's other devices out - they learn it on their next hello - while their records stay until someone deletes them; an account can delete itself through the same path the operator's removal uses. Password checks are paced at one per second per login and per address, with no lockout and no growing delay - nothing remembers a wrong password, so the right one is checked within a second of its turn. The Share Manager's exchange page gets the invitation list (create, withdraw, copy, show the QR code), the shared password, the account kind and the limits dialog in all 13 languages; the same operations are available from the server's command line and the local admin channel. The wire vectors are regenerated for DEVICE-EXCHANGE 0.28, and the viewer's connection-string reader now names the invitation member i (it read inv), so a string made by the server is read by the viewer and the reverse.
  • Share Manager command buttons fit their icon and caption and wrap into rows. Service actions now sit beside one another instead of stretching across the settings page. Command rows in secondary dialogs also wrap when the window becomes narrower, keeping captions and icons visible.
  • Broadcast a file or folder to StreamsPlayer (64-bit viewer and Share Manager). The separate HTTP gateway starts only after explicit enablement. Save a .spres resource, show its QR code or copy a quick link; a folder is one channel with a frozen playlist. Tokens expire or can be revoked individually. HTTP is unencrypted. Exports use the HTTP port and its own reachability verdict, remember each broadcast's LAN choice, and report clipboard failure honestly. StreamsPlayer bounds compressed imports and refuses malformed addresses.
  • The recipients panel keeps its dropped position and its editor opens reliably (64-bit viewer). Moving the panel by its header saves on drop; geometry callbacks cannot save intermediate positions, and an out-of-window drop is recovered immediately. The edit button opens the destination grid on every use, keeps the panel visible while editing, and preserves the page, groups and scroll position remembered for the next ordinary settings open.
  • Scheduled file operations in the Share Manager (64-bit; not in the 32-bit fallback). A new page of the Share Manager's settings, "Scheduled file operations", lets you define an operation - copy, move, delete or archive the files of a folder, selected by type, name mask, exclude mask, age, size, time since the last run or "last hour / last day" - and run it on a daily time plus a repeat interval (15 minutes at least), by hand, or both. The feature is part of the Share Manager: it is installed with the share component, run by the Share Manager while it is running in your session, and managed from its settings and its tray menu; the viewer only has one folder-menu entry, "Schedule an operation for this folder..", that opens the page with the folder as the source. Sources and targets are folders of this PC (local or UNC) or registered SFTP/SMB resources; a run asks nothing, so a resource whose password is not stored or whose key is not pinned stops the operation with one note instead of a question. A delete follows the viewer's own Recycle Bin setting and what the volume allows (a permanent verdict is shown in the editor and recorded on every log line - it is never silent and never asks); an archive is one timestamped zip per run, and "delete the originals after verification" removes them only after the archive has been read back and every entry checked; name clashes are skipped, overwritten or kept as name (2).ext. A run that was due while the program was closed is run once at the next start, or skipped - your choice per PC; Pause all stands the schedule down and nothing catches up when it is released. History and a journal of every moved or deleted file stay on this PC (%LOCALAPPDATA%\SZA\FastMediaSorter\scheduled-operations); nothing is sent anywhere. The share component's description in the installer now says it, in all three installer languages; strings are in all 13 UI languages.
  • Switching a settings page or opening and closing a group lays out only the page you are on, once (64-bit viewer; the window looks the same). A page switch used to measure all eleven pages and every row sized itself with the page's layout live, so a toggle or a switch cost a layout pass per row; the group now holds its own layout and its page's while it changes, the shown page is sized once with its group bodies held, the other ten are left alone and the remembered scroll position is restored after that layout. The page is the same, which was checked rather than assumed: every control's bounds, the scroll range and the rendered pixels of 110 steps - both passes over the eleven pages, every group, expand and collapse all, reopening, resizing - are identical to the previous build at 100 % and at 175 %, and the layout passes of a step fell from 1704 to 915 over a first visit of all pages and from 2499 to 1367 over sixty group toggles. On a quiet machine a repeat visit of a page took about 16 ms instead of about 45 ms and a group toggle about 14 ms instead of about 39 ms. The settings window's own opening was not changed and is still slow; FMS_UI_TIMING=1 makes the viewer write how long each page and window took to its own log (a switch for measuring, nothing is sent anywhere).
  • Japanese, Chinese and Korean lettering is read as text instead of one spaced character at a time, and two touching speech balloons stop being one plate (both viewers). The recognizer cuts CJK lettering into single characters, and the overlay used to put a space between every two of them - コモ ナ 市 長 の 私 が for コモナ市長の私が - which broke search, gave the translator a boundary the lettering does not have and made the plate's source text longer than the lettering it covers. A line's words and a plate's lines are now joined with no space where they meet on Han, kana or CJK punctuation (the fullwidth comma, the prolonged sound mark and the middle dot included); a space next to a Latin word, a digit or an ASCII mark is kept, and a Hangul pair is joined only when its two boxes stand under a third of the line's type height apart, so Korean keeps the spaces between its words and loses the ones inside them. Separately, a word whose box stands more than 1.6 times the line's median word height - the touching outlines of two adjacent balloons, which the recognizer reads as one tall token of the stitched line - now ends the plate before it, where the gap rule could not see it. Both are the shared OCR contract's amendments 1.7 A and 1.8, held by the reference implementation's own cases. Nothing that is decided moves: which lines are kept and which attempt wins still read the spaced text. The OCR pipeline version is 11, so a result cached by an earlier build for such a page is read again once.
  • The website opens with the shared page contract: the kit's identity block, a documentation link in the header and the Server edition in the get-it row (site only; no program change). The home page and its twelve language pages now show the program icon and the full name in the shared kit's own identity block and put one headline under it that says what the program does - "Sort photos and videos with one key per file" - instead of using the name as the headline. Every language page carries a Documentation link in the header (it opens the subject index, which is in English, Russian and Ukrainian, and the label says so where the page is not), and the get-it row lists the Server edition next to the Microsoft Store. The site's stylesheet was brought to the shared catalog's current revision, so the theme switch and the disclosure arrows follow it. The Store listing file is written the way Partner Center's import expects (no byte-order mark, CRLF line breaks inside the text cells) and now carries seven Russian search terms; the Russian "What's new" text lost a clause to stay under the 1,500-character cap counted that way.
  • The toolbar rows stop jumping, an empty window keeps its panels up, and the recipients table sets Delete apart (64-bit viewer; the last items of the panels and menus revision). A window with no media - the first run, a folder you have just emptied - now holds its toolbar rows and status line up while it is in use, instead of waiting for the pointer to find the narrow band at the top; the usual five-second countdown takes over the moment a picture or a video is on screen, and a picture handing over to a video (well under a second) never raises them. A button that comes and goes with the kind of file - translate, edit, tracks, convert to video, the file menu, the zoom value, the slideshow timer - keeps its place in the row while it is away, so the buttons after it stay where the pointer found them; the kept place is empty air and the first thing a narrow row gives up, before the folder box shrinks or anything goes into the "»" menu. Ending a path edit (Enter, Esc, a click on the picture) no longer takes the path panel off the screen for a moment to hand the keyboard back. In the recipients table the Delete row stands half a row apart from the folder rows, and each folder row says its verb at its end in dimmed words (the copy zone always had its word); the word is dropped before the folder name is when the table is narrow. A new test measures the second toolbar row in all 13 languages against a 1366 px laptop at 125 %.
  • Typing a container's password no longer stops the window (64-bit viewer). The key derivation (Argon2id, 64 MiB over four lanes) and the decryption of a sealed picture used to run on the window's own thread after "Open": the window stopped painting and taking keys, and could not be moved on from. Both now run on a pool thread. The status says "Checking the password..", the container's own placeholder appears when the check runs longer than a moment, the file can be left while it runs (the result is then released unseen), and a password that opened the container is still remembered for the session when that was asked for. Forgetting the password during a check puts the container back to locked. A second password window is never opened over a check that is still running. The format reader is untouched. Ticket 124, UX-213.
  • Text files can be selected and copied, and show how far into the file you are (64-bit viewer). Drag over the text to select it - a plain click is still "next file", and the double click and the Shift/Ctrl/Alt chords are unchanged. Ctrl+A selects everything, Ctrl+C copies the selection (with nothing selected it says how to select and leaves the clipboard alone), and Esc lets go of the selection before it undoes anything else. A thin position bar at the edge of the text shows the part in view, on the leading edge in right-to-left languages. The F1 card lists the two keys and the drag. Ticket 124, UX-216.
  • A value is no longer glued onto a translated fragment (viewer and Share Manager). Ten lines of the viewer and two rows of the Share Manager were built as "translated words + value", which decided the word order and the direction for all 13 languages at once: the model-installed and language-pack-ready lines of the OCR tab, the container check progress, the editor's size line and its "Save as" default name, the rows of the file details window, the A-B repeat label, the resource export label, both archive file filters, and the About version and licence rows of the Share Manager. Each is now one registered sentence with its value in a placeholder, in every language, and a source gate fails the test run on the next one. The x86 fallback is untouched. Ticket 124, UX-217.
  • The website gains a What's new page and a Support page, and search engines get better pointers (site only; no program change). whats-new.html is rendered from the released sections of this changelog - the ten latest versions, newest first - and support.html says where to report a problem, what to include and what to expect. Both are linked from the landing page's footer and the subject index and listed in the sitemap. Every sitemap entry now carries the date its page last changed (the commit date of the file, never the build time); each of the twelve translated landing pages has a title that opens with the job ("Photo & video sorting | Fast Media Sorter & Sharing" and its translations) instead of the product name alone; and every page declares its social card's size and a text description of it. The card is one artwork rendered by one script (tools/New-SocialCard.ps1) at both sizes - 1200x630 for the pages' link previews, 1280x640 for the repository's preview - with its words read from the positioning data file, so the card and the pages cannot disagree. The unpublished staging copy of the landing page that used to be served at /docs/ is taken off the site.
  • Moving a file out of an SFTP resource now moves it, and deleting from one deletes the original (64-bit viewer). Until now a move from a writable SFTP or exchange-attached resource - into a folder, a network share or another resource - copied the file and kept the source with a "could not remove" notice, and a delete could send only the cached display copy to the local Recycle Bin and leave the file on the server. A move now re-checks the source's size and time once the copy has been verified at its destination, removes the original, and says "moved" only when the server confirms it is gone. If the source changed, the server refused or you cancelled, the verified copy stays beside the source and the status names which of those happened. DEL, Shift+DEL, the menus, the recipients table and a batch delete all remove the original on the server for good: a resource has no Recycle Bin, the Recycle Bin setting has no effect on it, and the confirmation, when one is due, says the deletion cannot be undone. The file is fixed when the key is pressed, so switching files or closing the resource while the question is open changes nothing. A reply lost after the removal is settled by asking the server (gone = deleted, still there = not deleted, unreachable = reported as unverified) and is never repeated blindly. Undoing a move brings the file back and removes the server copy; undoing a copy into a resource is still refused, because it cannot be done safely. Read-only and PIN-locked folders and server write protection still refuse every one of these before anything changes. The 32-bit program is unchanged. The new messages are in all 13 UI languages, and the resource HOW TO is updated.
  • Adding a shared resource now explains the choices in four steps. Add, the empty-list hint and the manager welcome open one guided folder flow; gated exchange surfaces open its publication variant. The questions host the existing resource editor, with advanced options initially collapsed. Answers stay in memory until Finish, so cancellation leaves no row or parameters behind. Finish uses the existing folder and publication engines and reports their actual state; QR and hosting settings remain explicit follow-up actions. Configure and silent folder forwards retain their existing behavior. Copy is available in all thirteen UI languages.
  • Exchange server first run explains the setup and hands over to the local manager (gate remains off). The existing welcome now walks through ports, explicit firewall/service choices, the optional public address, the first account, the certificate and the settings group. Service consent is remembered until the account exists, then the existing helper registers and migrates it. Failed account/start/enrollment steps keep their real outcome; a created account is preserved and can be repaired in the group. The password is shown once without first-run storage. Closing or choosing Later dismisses the automatic flow; Welcome reopens the final facts without re-arming it. All thirteen UI languages are covered.
  • The Share Manager walks a new user through sharing the first folder. A first plain or explicit manager launch opens a six-step guide even when the normal startup preference leaves the window in the tray. The guide explains the server, uses the existing enable and folder actions, asks about the port, language, Windows startup and network posture, and ends with the main window's live status and a pairing QR button. Later keeps confirmed choices and resumes the flow; an explicit initial decline restores the tray-only experience. Existing profiles, silent logon and forwarded folders get no automatic guide. Settings - General - Welcome.. reopens the manager guide or the available exchange half. The finished marker is protected from stale settings saves; the old share-server welcome is absorbed into this flow.
  • The first-launch setup invitation stays usable on the empty viewer. The first-run placeholder no longer hides the button, and the button no longer suppresses the empty-state explanation. It follows surface resizing, media visibility and language changes, including Arabic and Urdu. Repeated changes between languages that share a font keep that font alive. The finish recap uses translated templates for every choice, and the where-path gate now checks the paths the wizard actually renders.
  • The welcome wizard tells you where every choice lives, asks about the Recycle Bin, and invites a first-time user in with a button. Every step of the first-launch guide carries a fourth part, "Где это менять", naming the exact settings page, group and row - the same captions the settings window renders ("Настройки → Общие → Язык интерфейса") - and a test holds each named row against the settings placement catalogue, so a rework that moves a row makes the wizard's pointer follow or the build fail, never a text that lies. The delete-safety step now asks what it used to only explain: a "Удалять в Корзину" checkbox bound to the existing setting, opening on the code default, written only if the user changes it, through the same settings flush the close path uses. A first launch that opened straight into a picture - which by design never sees the wizard - now finds a "Первоначальная настройка" button standing on the empty media surface: a 44 px, keyboard-reachable target that appears only while the profile is still eligible, stands down the moment a picture takes the surface, and is retired by the wizard's first exit; the old toast that only named the F1 key stays as the fallback and now names the button instead. The finish screen's recap gained a where-tail on every line ("Язык интерфейса: English - Настройки → Общие → Язык интерфейса") and a new line for the delete choice, in all 13 languages and both reading directions. The 32-bit program is unchanged.
  • The recipients panel drags by its header, remembers where it was put, and carries an edit button (64-bit viewer). The floating table of destination folders over the image can now be picked up by its header strip - the empty area between the new button at its left end and the pin at its right - and carried anywhere with the pointer, including across the media area's edge; the window never activates, so the keyboard stays with the viewer for the whole drag, and a press that does not move stays a button click. Where the panel is dropped is remembered as a free position (in logical pixels relative to the media area, so a DPI or monitor change puts it back at the same visual spot), it survives restart, settings export/import and profile reset like the rest of the overlay block, and picking a corner in the settings returns the panel to that corner's anchor. The settings group "Вид таблицы получателей" keeps its five rows and gains exactly one command - "Сброс позиции панели получателей" - a single button with no digits beside it that clears the saved position and puts the panel back at once, from any state, including a panel that was dragged somewhere and lost; the corner row's hint now names the drag. If the program ever finds the panel outside the media area - at startup, after a resize, a DPI or monitor change - it silently pulls it back fully inside and saves the repaired position, so a lost panel never survives a run. The strip's left button ("Настройки таблицы получателей") opens the settings window already standing on the recipients page with the destination folders grid focused - an open-at entry that overrides the remembered settings page for that one open without rewriting it - and editing a slot rebuilds the panel at its saved place. The reveal hot zone of the auto-hidden panel now grows from the panel's own rectangle toward the nearest edges of the media area, wherever the user put it. The strip's and the buttons' accessible names read in all 13 languages; the move cursor marks the grip. The 32-bit program is unchanged.
  • Below half transparency a panel's writing inverts: black becomes white, white becomes black (64-bit viewer). When the "Непрозрачность панели" setting is dragged under 50 %, every label, glyph and outline of the floating panels - both toolbar rows, the status strip, the window-commands panel, the video controls, the pop-up menus - flips tone: what was black reads white and what was white reads black, the outline with it, the dimmed and pinned inks recomputed from the flipped pair, and the white "Delete" label included. The panel itself stays exactly as transparent as before - only the ink flips; the fills, the accent marks and the identity colours keep their hue, and high contrast never inverts. The recipients table follows the same rule on its own "Непрозрачность" row: under 50 % its rows, their glyphs and its pin invert, independently of the panels' setting. The setting's hint now says so in all 13 languages. The 32-bit program is unchanged.
  • Keep accepted resource PINs for the program session. Opening another folder or reconnecting after a network interruption no longer asks for the same PIN again. PINs stay in memory until exit and are cleared when rejected, when the resource is removed or unpublished, or when signing out of its account.
  • A sub-menu in the Share Manager's settings is its own view, and the menu rows are compact. Following the first live pass of the expandable left menu (2026-10-13 owner revisions): a click on an item now shows that group alone in the right pane - the page's title and description plus the chosen block, nothing else - instead of scrolling to it inside the whole page, and only the chosen item carries the selection tint and accent stripe while the page row yields them; clicking the page row means the whole page again and lifts the filter. Search (Ctrl+F) reveals a hit through the same path. The filter is runtime state: the application's own row visibility (service state, pairing notes) is recorded underneath it and restored exactly on lift. Menu rows return to a compact height (page rows 34, items 26 logical px instead of a 44 px minimum that read twice too tall), and the menu column grows from 196 to 255 logical px so long captions fit, with the window's design width following (820 to 880) to keep the content as wide as before.
  • The resources table stands at the height of its rows, and "My devices" is its own fold (viewer's settings). The "Server and resources" page no longer stretches the resource list over the whole page: the table is exactly as tall as the resources it holds - a new row makes it taller, a removed one makes it shorter, the empty state keeps its own block - and the height left over belongs to the sections below it, so the page scrolls instead of squeezing. The "My devices" section moved out of the list panel into its own collapsible group, "Мои устройства", between "Ресурсы" and "Android / SFTP", taking its buttons and its device list with it; the internal title is gone (the group's caption says it), the section sizes itself to the rows it is showing, and the group's fold - not the list's body - decides whether the entries' sessions behind it run, with the fold state remembered like the page's other groups. The resources manager dialog keeps the section embedded beside the list as before.
  • PIN-protected exchange folders can be attached after signing in again. Consumer enrollment now sends the PIN capability to the server; previously the codec omitted it and the server withheld access to protected folders even from a client that supports them.
  • Exchange resources reconnect after signing in. The Resources panel now follows the new session after adding a server or signing in again, so it shows the account's devices and folders instead of keeping a closed connection and reporting "no connection".
  • The Share Manager's settings fold in the left menu now, not in the pages. Every page of the settings window lists its blocks as indented items in the left menu: a click on a page selects it and shows or hides its items (the whole row is the toggle; the chevron beside the caption is display only), and a click on an item jumps the right pane to that block's heading and focuses its first editor. The right pane is one continuous scroll per page - each block keeps its caption as a plain heading, nothing folds there any more - and the "collapse all groups" / "expand all groups" header buttons are gone with the folds they managed ("Search settings" and Ctrl+F stay). Which pages are expanded, which page is selected and the scroll position survive closing and reopening the window: it resumes exactly where it was left. A settings context stored by the previous build migrates on read (a page the user worked on with a group open opens with its item list expanded), and the viewer's own settings windows keep their group state in the same schema, so nothing is lost on either side. Left and Right fold and unfold from the keyboard (mirrored in right-to-left languages), Up and Down walk the pages and their visible items.
  • Broadcast a film or a folder to StreamsPlayer (Share Manager, viewer, worker; the feature was gated off until this change). The three halves of the broadcast resource are now complete and the gate is open. The Go worker (built in its own repository and re-vendored into payload/companion) gained internal/httpgw, the HTTP broadcast gateway: a second listening socket in the same process as the SFTP server, off until it is switched on in the Share Manager, serving one published resource per unguessable 32-byte token - a file's bytes (GET/HEAD /b/<token>, mandatory Range support so a film can be seeked, multi-range refused with the full body) or a folder's frozen snapshot as a plain #EXTINF M3U (/b/<token>/<n> per item). Unknown, revoked and expired tokens are one bare 404, expiry is enforced per request, records survive restarts in broadcasts.json under the host key's ACL, and every counter feeds the same local stats.json (nothing leaves the PC). The worker's control channel gained the five additive verbs (SetBroadcastPolicy, CreateBroadcast, ListBroadcasts, RefreshBroadcast, RevokeBroadcast, schema 1) and the broadcastSupported capability answer; an older worker still answers the benign "unsupported request type", which the page renders as its update line. The Share Manager's Broadcasts page is offered again (BroadcastPage.Offered flipped in the same change that re-vendored the worker, with the byte-scan suite guard green), and the viewer's "Translyuvaty tsyu papku.." entry points open it prepared. On the player side (StreamsPlayer, its own repository) the .spres document, its QR and the SPCH1 quick link import as one channel that races every stored address, plays a folder's items in order as n/total, keeps a dead broadcast as a clear sentence on the row that stays, and never reaches the published catalog.
  • Easier to grab, easier to drag (64-bit viewer, follow-ups to the borderless window). The window-commands panel is one virtual button wider: right after the corner pin it carries an empty grip strip - inert to the eye, no hover fill and no tooltip - whose press drags the window through the native move loop and whose double click toggles maximize, while Minimize, Maximize / Restore and Close keep the very corner. The first toolbar row (always-on-top, sort, folder, file, resources) now also drags the window when a press lands on its free background beside the controls - it is the caption's stand-in, and pressing empty space there behaves like pressing a title bar. And resizing is native on every edge and corner through an invisible, colourless band INSIDE the window (15 logical pixels at the window's display scale): the client now claims every pixel of the window, so no caption strip and no frame band is left for Windows or DWM to draw anything into - neither the clipped native buttons nor an unpainted black frame can appear at the edge - and the media covers the band like any other pixel of the surface. The band is pure mouse-reaction zone: a hover in it shows Windows' own sizing cursor, a left press is redirected into the native sizing loop even where a media surface (the picture box, a browser view) sits under the pointer, and the floating panels keep every pixel of their buttons. The dead docked toolbar/status strips no longer reserve their invisible band in the layout either, so the picture fills the whole window instead of a squeezed rectangle with a dark frame of the background around it (2026-10-12 owner revision).
  • The 64-bit viewer's window has no caption strip any more; its commands stand on a floating panel in the upper-right corner. The media gains the whole height the native title bar used to take, in the normal and the maximized state alike, and nothing full-width replaces it: Minimize, Maximize / Restore and Close live on one compact floating panel pinned to the physical upper-right corner of the media area - the same painted-panel look, theme, glyph language and corner pin as the rest of the floating chrome, with Close rightmost in every language. Hovering Close shows the program title in a tooltip beside its action ("Close the window: Fast Media Sorter by SZA"); clicking it runs the existing close flow exactly once, cancellation included, and hovering alone never activates the viewer or steals playback. The panel is pinned by default, remembers its own pin across restarts, joins the existing pin algebra (unpinning another panel while "keep visible" is on leaves the window commands up), reveals from its own corner zone with the shared leave delay and fade, and is reachable from the keyboard through the chrome's F10 ring after the toolbar rows and the status strip. The grip - the panel's free background - drags the viewer through Windows' own move loop, so edge snapping, moving to another display and dragging a maximized window back down under the pointer all work as with a real title bar, and a double click on it toggles maximize; resizing at every edge and corner, Alt+F4, Alt+Space, Win+arrow snapping and the taskbar are preserved, because the caption is suppressed by claiming the whole window as client area while the sizing-window styles stay. While full screen is active the Maximize button is disabled with a tooltip naming the way out (F7 or Esc); minimize and Close stay available, and a slideshow asked to hide the toolbar keeps the window commands - they are the caption's replacement, not part of the toolbar. The top toolbar rows fit in the width left of the panel and wrap below it when their priority core no longer fits, in right-to-left languages too; the window cannot be resized smaller than the panel at the current display scale. The 32-bit program, the Share Manager, settings and every secondary window keep their native captions.
  • A live broadcast from this PC: the microphone, the system audio or the screen on the local network (Share Manager). The producer half of a live broadcast - the contract's AUDIO_ONLY shape over HTTP, served from the Share Manager. The new "Живая трансляция" window captures the microphone or everything the PC plays (WASAPI capture and loopback), encodes it to ADTS AAC-LC with the pinned FFmpeg runtime the viewer already shares (44 100 Hz, 128 kbit/s, the producer's own gain and a live level meter), and serves http://<lan-address>:<port>/live-audio.aac on the ONE chosen address with the port the user set - a taken port refuses the start, and without a reachable LAN address nothing starts at all. The system-audio capture cuts the feedback loop where Windows offers it: on Windows 10 May 2020 Update and later it is activated as a process-loopback EXCLUSION of this product's own processes, and only where the OS cannot exclude does the window keep its warning sentence. Any consumer that plays LIVE-BROADCAST (this product's viewer, StreamsPlayer, the phone) takes the same description from three hand-offs: the FMSBCAST1: clipboard code, a .fmsbcast import file and a QR code. Nothing is written to disk at any point - the program keeps two seconds in memory - and stopping the broadcast ends every listener and leaves no port behind. The screen is captured through Windows Graphics Capture behind the proposed MPEG-TS shape (/<token>/live.ts, H.264 scaled to 1280x720, a 1 s keyframe, a monitor picker, a cursor toggle and a "screen only, no sound" mode), served only behind its own off-by-default "allow viewers on my network" tick.
  • A simple icon before the caption of every command button, and the answers of a dialog in colour (64-bit program and Share Manager; the 32-bit fallback keeps its text-only buttons). Every command button of the viewer's dialogs and settings and of the Share Manager now carries the catalogue's own glyph before its caption (16 logical px, 6 px gap, scaling with the display and mirrored in right-to-left languages), so a row of narrow buttons is found by shape and a long caption wraps the row instead of being cut. The answer buttons of a dialog draw the eye: OK, Apply and Save are green, Cancel and Close are red, a continue-anyway answer is amber (the hue is the theme's own success, danger and warning pair, held to 3 : 1 on the button face, tinted 12 percent over it, muted when the button is unavailable and replaced by system colours under high contrast), and the acting button of an irreversible confirmation - reset, replace settings, discard edits - takes the danger face while Cancel keeps the default focus. Toolbars, menus and settings rows stay in the one-colour look. Escape, Enter, the default focus and the order of buttons are unchanged. System message boxes keep the operating system's own buttons. One meaning the catalogue lacks, "Replace", is drawn by the product and proposed to the catalogue (action.replace).
  • Compact Settings: the left menu and the resources list (64-bit program). The settings navigation rows return to their designed dense height (34 logical px instead of 44 with double padding), so all eleven entries fit without scrolling on an ordinary monitor. The resources list (Settings > Server and resources, and the manager dialog) drops the leading folder/server glyph from every row - the Type column already says what a resource is - and its rows shrink from 28 to 22 logical px, so the same five columns take noticeably less height. Commands, tooltips and translations are unchanged.
  • Fixed settings opening behind an always-on-top viewer. Opening or restoring settings reapplies the window's topmost band, even when Windows has changed it independently of the WinForms flag, and brings settings to the front after the window is shown. Applies to both viewer builds.
  • The programs and the site link to the media exchange portal. The portal on the Android app's site explains, for every device of the family, which way of connecting fits (the home network, clouds, live broadcast) and which program does what; its "Windows servers" page now carries what this product does - the two editions, one pairing code with a local, an IPv6 and an internet address, the fixed port, the automatic router port opening with its outside check, and the always-on Server edition. Settings > Server and resources (64-bit viewer) gains a link to the home-network page; the Share Manager links the portal start page from Help / About, the home-network page from the port-forwarding window, the "Windows servers" page from Hosting and, inside the optional exchange group only, the server page. The README files and the "Publish folders for Android" page replace the unvetted "network architecture" section with links to the portal, and the corrected setup cards replace the three in assets/diagrams. Links open the portal in Russian or Ukrainian when the program speaks one of them, in English otherwise; they answer once the portal is published.
  • Share Manager settings keep every expanded group usable. Expanded groups now recalculate their height before the page is laid out, and nested address, port-range, certificate and account controls fit their actual available width. Setting rows use a directly measured two-column layout to avoid repeated nested table measurements. Server-status results are explicitly applied on the UI thread, preventing hidden controls from acquiring native windows on a background thread and causing long stalls on expansion. The exchange port hint appears once, and hidden console-only options no longer leave orphaned explanations. The first-server setup dialog scrolls when its result exceeds the available height.
  • Share Manager settings respond faster at high DPI. Theme changes and asynchronous server-status updates hold the whole control subtree while changing it; width fitting only revisits the page whose width changed. Command buttons scale once. Settings navigation and pane commands use theme-aware colored icons. The redundant bottom Close button and log links are removed; sending logs remains one button on About, and Escape still closes settings.
  • The video menu groups its rows, and "what happens when the file ends" is one choice (64-bit program). The single "Repeat" checkbox is replaced by a "Playback mode" submenu with the three ends a file can have, named as in Settings: "Play and stop" (the last frame stays), "Advance to the next file" (as before, the first file comes up again after the last one) and "Loop" (this file again). The menu and the Settings window share one value, so a choice in either shows in the other. The file rows - details, copy path, show in Explorer, undo, rename, move to, copy to and delete - sit under one "File operations" submenu. A track's end action in Settings uses the same three names. Behaviour is unchanged; the names and the grouping are new. The 32-bit program is unchanged.
  • Reset all settings to defaults with automatic backup (64-bit program). The About page of the modern Settings window gains a "Reset settings" button («Сбросить настройки»). It reverts all viewer-owned settings (recipients, view, video, OCR, window placements) to factory defaults upon the next application start. A restorable .reg backup is created automatically in %APPDATA%\FastMediaSorter\backups\ before any values are removed. Interface language, theme, passwords, remote resources, and file history are preserved. The operation requires confirmation, closes the program immediately, and is disabled in secondary windows.
  • "Send the log to the author" now covers the share server too (64-bit program, Share Manager). The archive used to hold the viewer's and the Share Manager's own logs only. It now also takes the Share server's service log and its installer-helper log when the Server edition's service has written them, and the same for any optional server tree that is installed beside the program, each under its own folder name inside the ZIP so two files called service.log never collide. The window that shows what is about to be sent lists every file; a file that exists but cannot be read (access denied, in use) is listed with the reason and named in the report instead of silently missing, and a file that does not exist is simply not mentioned. The "Send the log to the author.." link is also in the Share Manager's Hosting settings group, next to where a server failure is seen, and the viewer's About page uses the same code. Nothing is sent anywhere by the program: the archive is built on this PC and handed to your mail client only after you agree.
  • The log report says what machine it came from. report.txt in that archive gains a "Hosting" block: Windows name, build and edition (client or Server), memory, processor count and free space on the system drive, whether the session is a Remote Desktop one, the Share service and whether it is registered, running and under which account, the listen and third-party port numbers, every program copy found with its version and the firewall rules that name it (names and direction only), which of our programs are listening and on what kind of address (never the address), which components are installed, whether each data folder is readable by you, and whether a mail program is registered. It never holds a login, a hash, a fingerprint, a public address or a path inside your profile, and a check that cannot run costs one line ("could not be read") instead of the whole block. The Share Manager and the 64-bit viewer also write one line at start into their logs (version, Windows build, client or Server, session and Remote Desktop flag, host mode, installed parts, whether each service is registered); the viewer's log header also names its runtime, so a log nobody asked for still says where it was taken.
  • No mail program, no "choose an app" prompt. On a PC with no mail client (a Windows Server, a clean test machine) sending the logs used to hand a blind mailto: link to Windows, which answers with a "how do you want to open this" window that cannot finish. The program now checks that a mail handler is registered first; without one it skips that step, puts the archive on the clipboard as a file and selects it in Explorer as before, and prints the archive's full path in the message so it can be read out or typed.
  • A support script for a machine where the Share Manager will not start (source tree; no package carries it). publishing/installer/collect-host-state.ps1 is a read-only PowerShell script (Windows PowerShell 5.1 or PowerShell 7) that builds the same kind of single ZIP by itself: Windows and hardware facts, the two services, the listening ports with a connection test to this PC only, the firewall rules that name our programs, installed files with their versions and checksums, the data folders' listings and permissions, the names (never the contents) of our registry values, recent service and crash events, Defender detections that name our files, and the last 2 MB of every log we know about with your profile path replaced. It never reads account or device stores, tokens, keys or the certificate folder, and a final scan drops any file that still carries a secret marker. It starts nothing, stops nothing and connects nowhere except to this PC.
  • The access note in a share's code now reads in two languages (Share Manager). The sentence that tells a phone why a connection failed (for example, that the router port is closed) used to be written in the language of the PC; the file now carries it in the PC's language followed, after one line break, by the same note in English, so a phone set to another language can still show something it understands. A PC that already speaks English writes the note once, and the share's code stays byte-identical to what older readers got.
  • The disk list no longer guesses. When the Share Manager cannot read the state, holder or record of a shared disk, the list says "Unknown" instead of "Error" or "No", and the Open button stays off until the state is known - an unreadable answer is never taken as permission to mount or to drop a holder.
  • The "turn into video" action is called "Convert to video" everywhere (64-bit program), and an empty cache says so instead of asking. The toolbar button, its overflow line, the screen-reader name and the middle-click menu row now use the name the shared icon catalog gives that picture - "Convert to video", «Преобразовать в видео», «Перетворити на відео», and the program's own wording in the other ten languages - where they said "Animation to video" before; the tooltip still says that the animation is replaced by the video. On the Storage page of Settings, Clear next to a cache that was just measured at zero now answers "Nothing to clear: the cache is empty." and no longer asks a confirmation whose answer changes nothing; an unmeasured or failed measurement still asks, as before.
  • Two toolbar pictures come from the shared icon set. The brush tool of the image editor and the "turn into video" button are drawn from the same vocabulary as every other icon (the brush is now a brush, not a pencil, in the editor's toolbar and on the guide page that shows it). On the website the copy buttons now say "Copied" in the page's own language instead of a check mark, and choosing Russian, English or Ukrainian from a language list is remembered for the other pages.
  • Less work behind every page flip. The dynamic background colour (the "by side / top / bottom" and automatic schemes) and the perspective bars used to read the picture one pixel at a time through GDI+, thousands of calls per photo on a 4K image, and could fail when the decoder touched the same picture at that moment. Each frame is now copied out once and sampled from memory (both programs); the tint and the bars are identical to the level, including the rounding of the side averages. In the 64-bit program a static WEBP, AVIF or HEIC no longer keeps a second copy of the file's bytes alive beside its pixels while it is on screen - only an animation keeps its stream, because GDI+ reads the later frames from it.
  • Live sound from a phone or a watch (64-bit program). The viewer can now listen, as it happens, to the microphone broadcast of the FastMediaSorter Android app on a phone or a watch. Right-click the file button and choose "Open live broadcast..", then paste the broadcast code (FMSBCAST1:), the link the phone shares or the stream address, pick the .fmsbcast file the phone saves, or simply drop that file on the window or open it from Explorer; the PC and the device must be on the same network. The window says LIVE and has no seek bar, no pause and no remembered position. A broken connection is retried a few times within 12 seconds and then reported ("the broadcast ended or the device is unreachable" if sound had played, "could not connect" if it never did), a watch that already has its four listeners says so at once instead of being asked again, and a session that slowly falls behind because the two devices' clocks never agree exactly jumps back to the live edge by itself. A broadcast from a newer app version asks you to update, a video broadcast says it is not supported, and an address only the device itself could reach (127.0.0.1) is refused by name. A live broadcast uses exactly one connection per listener - no probe request, and the system's habit of quietly retrying a request on a second connection is switched off for it, because on a watch every extra connection uses up one of its four places. Settings > Files and system gets a button that adds .fmsbcast files to "Open with" (and takes it away again); the installer registers nothing. The 32-bit program is unchanged.
  • Links from the programs open the page in the language the program is speaking. The Settings window of the viewer and the tray menu, the Share Manager's windows and its offline port-forwarding guide now send a Russian-language program to the Russian page of the site and a Ukrainian one to the Ukrainian page; the other languages land on their own copy of the program page and the install-trust page. The Android guide, the Server edition page and the privacy policy take the language from the address (?lang=ru / ?lang=uk, which the Server edition page and the privacy policy now read too). The Android app's site and the document-translation site follow the language as well (the Ukrainian Android page was never reachable from the viewer before), and FileDO links open its German and French copies. A page that has no copy in the language stays English.
  • Website fixes from a real browser run. The privacy page now has the same look, theme switch and full width as every other page. The Arabic page no longer scrolls sideways on a phone (list markers hung 2 px past the edge). The generated language and trust pages load their styles from their own copy of the site instead of the published one, so a local or staged view shows what will ship. Buttons, the language and theme controls and the footer links are at least 44 px tall and wide for every pointer, not only on a touch screen.
  • The website now says which outside addresses its pages contact. Opening a page of the site (not running the program) loads the lettering from fonts.googleapis.com and fonts.gstatic.com (Google Fonts) and, on the home page and its twelve language pages, asks api.github.com for the latest release so the download link points at it. Each receives your IP address and your browser's user agent and nothing else, and no analytics, tag-manager or advertising address is contacted. The privacy page has a new "This website" section in English, Russian and Ukrainian, and every language of the install-trust page carries the same paragraph. A new check, tools/Test-SiteOrigins.ps1, lists the outside hosts of every published page and fails when one is not declared and disclosed, or when a declared one is no longer used.
  • Ukrainian on every guide, the glossary, the subject index and the Server edition page; the privacy policy in Russian and Ukrainian. The task guides, the glossary, opics.html and server.html used to switch between English and Russian only; each now has a Ukrainian block for every paragraph, and the language control offers RU / EN / UA (UA joins the two guides that already had it). The privacy policy is no longer English-only: the same address, docs/privacy.html, now switches English / Russian / Ukrainian in-page, and it is listed in the sitemap and the search index. The site check fails a page whose three languages are not the same size or whose language control offers a language the page lacks.
  • A real "page not found" for the website. An address that does not exist on the site now shows a page in the product's own look, in English, Russian and Ukrainian, with the program page, the subject index and every guide, instead of the host's default error. The release notes stay on the GitHub Releases page, which the site links as "All releases".
  • Fewer native crashes while paging through audio (64-bit program). The viewer could disappear without a message inside LibVLC - the owner's reports point at MP3 files. Everything that talks to LibVLC from a background thread is now counted and ordered: the tag read behind the audio plate and the file-details window runs one at a time and releases its media off LibVLC's own callback thread, a stop started on a background thread is waited for before the next file plays (live-broadcast restarts included), and closing the window waits, within a bound, for that work before freeing the player. A new hand-run stress script drives the real viewer through rapid next/previous and closes in the middle of a tag read; 50 sessions ended without a crash dump. The 32-bit program is unchanged.
  • The Storage page shows every cache with its size and its own Clear (64-bit program). The window whose entire content was one Clear button lost in whitespace is gone: the generic wrapper that stripped six settings rows of their real editors and rebuilt them as intermediate "Open" buttons opening a bare 600x220 form no longer exists, and the associations, secure-open and cache rows work directly where they stand. On Storage each cache now has its limit row followed by its own usage row - the measured size ("123 MB"), a Refresh button and a compact Clear - for all five caches: decoded images, thumbnails, OCR data, archives and network resources. Sizes are measured off the interface and re-measured when the page opens, after a clear and on demand; a cache directory that cannot be read shows "unknown" with the reason instead of pretending to be zero. Clearing keeps its confirmation with the safe answer focused, runs without freezing the window, reports the result in the status line and refreshes the size; for archives and network resources it removes only what no open viewer session is using. Limits and clearing for the same cache now live together (the collapsed "cache management" group is retired), and the hints say what clearing keeps: source files stay, thumbnails rebuild, OCR language data survives while results re-recognize. The 32-bit program keeps its UI.
  • Every destination folder gets its own colour (64-bit program). The ten slots of the destination table (Settings) and the floating recipients table now paint one stable pastel fill per slot - pink, green, blue and so on - so "the green folder" is recognizable at a glance without reading the path, and the same slot is the same colour in both places and across sessions; re-pointing a slot to another folder keeps its colour. A slot's health check answers with a small leading glyph in the settings table (check / plus / exclamation in green, amber, red) plus the familiar tooltip, instead of tinting the row, and an unusable folder keeps its colour. Hovering a row deepens its own colour, the delete row stays red and the copy zone keeps its accent; high-contrast mode keeps the system colours. A source-scan test pins the settings table and the table over the image to the one shared palette and keeps the old grey row fills out. The 32-bit program keeps its settings table as it was; its table over the image follows the same palette.
  • Input and help fixes (64-bit program). Escape closes F1 help before leaving panel keyboard mode, and holding it after dismissing a menu does not remove another layer. Help scrolling takes precedence over reassigned navigation keys; long key names wrap in small windows and stay left-to-right in Arabic. The reference reflects digits reassigned away from destination folders. Pause and mute keys leave an image slideshow running, hardware Play/Pause commands use the same playback action, and images gain a More actions button in the second toolbar row.
  • Settings rows read left-to-right like real settings (64-bit program). Every row is now a two-column grid: the caption and its hint sit on the left, the value (drop-down, number, text, tick) sits flush to the right edge, and the value column lines up across the whole page; below the window's narrow threshold the editor moves back under its hint, and command buttons never stretch. Checkboxes are custom-drawn - a rounded box whose checked state is an accent fill plus a white mark, unambiguous in both themes, with hover, focus ring and disabled states. Buttons are sized to their text (32 px tall) instead of spanning the window: Install/Start, Export/Import/Restore, Open and cache-clear are compact commands to the right of their descriptions, and the model field keeps its Pull beside it. Collapsible group headers are visibly distinct bands - a slightly accent-tinted fill, no border, a larger Semibold caption - and a collapsed header shows a muted summary line. Numbers gained unit suffixes (s, min, %, MB, px) beside their compact spinners, a whole-seconds slideshow interval renders "10" instead of "10.000", and a source-scan test keeps hardcoded colours out of the settings window so no dark ink lands on a dark surface. The 32-bit program keeps its existing layout.
  • Play restarts a finished video (64-bit program). The lower player's Play button now opens the video from the beginning after it reaches the end; pause and resume keep their existing behaviour.
  • The image editor learned its keyboard, redo and rotation, and the F3 panel says what it is doing (64-bit program). The editor answers B/R/O/C for brush, rectangle, oval and crop, [/] step the stroke width, Ctrl+S saves, Ctrl+Shift+Z/Ctrl+Y redo, Ctrl+[/Ctrl+] turn the picture a quarter turn, and H/V mirror it - each turn and mirror is one undo step through the same writer. The tool buttons became one tab stop with arrow-key roving focus, and the tooltips name each tool's letter. Undo gained a redo stack that shares the same 512 MB budget; the status line reads "Шаг N из M" and, once the budget has dropped old steps, says so instead of silently shortening. Over a crop handle the cursor now becomes the resize or move arrow, and the grab zone follows the monitor's DPI. Closing with unsaved edits asks "Сохранить / Не сохранять / Отмена" through the named-button dialog instead of a Yes/No box whose "No" meant "keep editing", the "Save as.." suffix is localized, and the editor respects its remembered window position instead of always opening centred. The thumbnail panel replaces its close-time beep with a visible "Идёт операция - дождитесь или нажмите Esc" band, the toolbar overflows into a chevron instead of colliding at the 320 px minimum width, F1 opens the key reference, an empty folder says so, and the batch report gained Ctrl+C, "Копировать" and "Показать в проводнике". The 32-bit program has none of this.
  • Settings return to where you left them (64-bit program). The left page list stays; each page has independent Basic, Advanced and task groups, remembered expansion and approximate scroll position. Language/theme are in General. Search settings (Ctrl+F) searches captions, hints and choice labels, shows breadcrumbs and reveals the original field; secrets and user history are excluded. Expand/collapse all acts on one page, narrow rows stack, sliders offer exact opacity input, invalid service addresses remain editable, and About includes the MIT license. Video links to shared audio volume/mute. The x86 layout stays unchanged.
  • Settings audit improvements (64-bit program). Ordinary edits preserve folder and shuffle state and save after a short pause. Wheel scrolling keeps editor values intact; disabled dependencies explain why. Video repeat has one owner, thumbnail size has four actual pixel tiers, Storage gathers cache budgets and cleanup, and General offers a confirmed additional-preference reset with a backup. Settings position is remembered; destination slots gain browse/resource/clear buttons and folder drops; Resources gains an explicit Open action. Slideshow intervals retain fractional seconds.
  • Playback extras from the popular players (64-bit program). The video transport gains a speed button after the clock - 0.5× to 2× in VLC's ladder, pitch preserved - and the video's right-click menu grows a Speed submenu, an A-B repeat item that follows its phase, and Next frame for stepping a paused video (VLC 3 cannot step back, and the item says so). The keyboard takes VLC's scheme: [ and ] step the speed down and up, \ resets it, Shift+arrows / Alt+arrows / Ctrl+arrows seek back and forward by the three step sizes (3 / 10 / 60 seconds by default, each editable in Settings -> Video), . shows one more frame while paused, and Shift+L marks A, arms the loop and clears it - the loop restarts within about a tenth of a second and never mistakes its own span for the end of the file. A clip slowed down inside a slideshow is no longer skipped at the 60-second fallback: the wait now follows the speed. During a slideshow and full-screen viewing the mouse pointer hides itself after a few seconds of stillness and comes back on a real move - never over the buttons and menus, and not in the other window after Alt+Tab (Settings -> Viewing, 0 = never). The speed returns to 1× on the next file but survives a repeat reopen; all eleven new actions are rebindable in the shortcuts dialog and none of their default keys takes a binding the viewer already answers to; everything is in the 13 languages. The 32-bit program keeps its Internet Explorer transport and gains none of this.
  • A Resources tab in Settings, a «Ресурс» button in the viewer, and export to another computer (64-bit program). Settings gains a Resources page (between "Files and system" and OCR) holding the same resource list the manager dialog has - add, edit, remove (with its password), test, import from a file or the clipboard - plus the new Export..: a saved SFTP server is handed to another computer or a phone as the same .fmscfg file the Share Manager produces, saved to an owner-protected file or copied to the clipboard as text or code, with or without the password (without is the default - the receiver is asked once). A server whose key has not been verified yet and a Windows network folder are each refused with one sentence saying why. The toolbar gains a «Ресурс» button next to «Папка» that exists only while at least one resource is registered, hides in archives, and opens the saved resources in one click (the last ones used, then "Manage resources.."); the folder menu keeps its own recent-resources submenu. Everything is in the 13 languages; the 32-bit program has none of this.
  • Floating-panel popups open even when the viewer is a background window (64-bit program). Clicking the recent-files (history), sort, language, tracks or "more" button on a floating panel used to do nothing whenever another application's window was active: the panel never activates the viewer, so the popup dismissed itself on the first message it saw, the moment it noticed the focus was elsewhere. The menu now dismisses only when the foreground moves to a window that is neither the viewer nor one of its owned forms - a menu opened over a background viewer stays up and works, and clicking into another application still closes it.
  • Unpinned floating panels hide 5 seconds after the pointer leaves them, and the destination table joins their pin (64-bit program). The countdown to hide an unpinned panel now starts when the pointer leaves it and is a fixed 5 seconds; the video controls keep their own hide setting, which no longer governs the panels. The destination table (Settings -> "Destination folders" -> "Destination table over the image") no longer stays on screen permanently: while the panels are pinned - by "Keep floating panels visible" or by all three corner pins - it stays exactly as before, and while they are unpinned it fades out with them 5 seconds after the pointer leaves it, comes back when the pointer moves near its corner, and hides with the panels on minimize, super-full-screen and a slideshow that hides the chrome. The table has no pin of its own: one pin state governs the group. The 32-bit program keeps its always-on table.
  • Floating viewer controls (64-bit program). File and folder pickers use their catalog icons, previous/next show both an icon and a caption, and hover help also covers the path editor and disabled actions. Choosing a sort order explicitly reloads the folder, including choosing ABC again. The bottom strip uses the window width and keeps the full status message in its tooltip. Reconfiguring the panels no longer frees the path editor's font before WinForms recreates its handle, fixing the startup exception that left the viewer blank.
  • Remote browsing and batch transfers (64-bit program). The F3 grid now downloads uncached remote files for thumbnails. A batch larger than 1 GiB asks before transferring over a slow or metered resource. Recursive SFTP browsing reports listing limits, and a dropped link fails the refresh while preserving the previous list. Connections require host-key verification, and read-only resources refuse every write at the provider boundary.
  • Leaving a saved SMB share preserves a connection Windows already had. The resource checks connection ownership before connecting, and waits for the last lease even when Windows accepts two spellings of the same account. Read-only SMB resources also refuse writes at the provider boundary.
  • JPEG XL (.jxl) pictures open like any other picture (64-bit program). A .jxl file is listed, shown, paged through, sorted with 0..9, played in a slideshow, measured for its pixel size and kept in the decode cache exactly like an AVIF or a HEIC; it is read through Magick.NET, so no Windows codec is needed. A file is recognised by its content (a bare codestream or the container box), not only by the extension, so a .jxl that was renamed still opens and a damaged one says it cannot be read instead of failing silently. The camera's rotation is applied when "auto-rotate by EXIF" is on, and the size shown in the status line swaps width and height for a turned picture. An animated JXL plays like an animated WEBP (it is turned into an in-memory GIF with the frame delays kept). A picture larger than the decode budget is refused before it is decoded, with the usual "too large" sentence. Pages of a CBZ/ZIP archive in JXL open as well, and the file-open dialog, the drag-and-drop filter, the F3 panel and "Open with" know the format; the Windows installer offers to register .jxl with the 64-bit program together with the other picture formats and removes it again on uninstall. The picture editor opens a JXL file and saves it as PNG, JPEG or WEBP through "Save as" - it does not write JXL. The 32-bit program for Windows 7/8.1 is unchanged: it still lists and moves .jxl files and says "Unsupported format" when it lands on one.
  • Zoom keys on the main keyboard row, Enter as a shortcut you can move, and "works on" marks in the F1 card (64-bit program). = and + zoom in and - zooms out on the main row, so a laptop with no numeric block can zoom a picture or a text file; the grey NumPad keys are unchanged, and / and * stay NumPad-only because Shift+7 and Shift+8 already copy into slots. What Enter always did - open a document in its program, unlock a protected file - is now an action of the shortcuts dialog, "Open a document in its program or a protected file": it can be moved, the old key then does nothing, and the placeholder, the text-file footer and the media menu name the key it answers to now instead of a fixed Enter. The F1 card puts a muted line under every key that works on one kind of media only: video and audio, video, pictures, or pictures and text files.
  • This PC becomes the first device of an exchange account automatically. When the operator adds an account, or resets its password, on the PC that runs the exchange server and this PC is not yet signed in to any account, the Share Manager checks the server's certificate against the one the server binary reports and signs this PC in with the password just typed or generated - the same steps as the "use this PC as my server" wizard, but also for a server registered as a Windows service. Nothing is created or started by that step, the password is not kept, an account this PC already belongs to is never replaced, and nothing happens while the client features are not offered. The result is one more sentence in the account result line.
  • A welcome wizard on the first launch (64-bit program). A fresh install, or a second Windows user, that starts the viewer without a file gets six short steps: language, background and wheel, how sorting works (keys 0-9 and the folder for key 1), safe deletion, picture associations (not offered in the Store build), and a finish screen showing the saved choices. Each step says what the setting is, why it exists and how the viewer will behave. Next saves that step immediately; Skip leaves unapplied choices unchanged. Show the welcome steps again in the Startup group of settings and the link on the F1 card reopen it. Language previews stay inside the wizard until Next; switching scripts works at 175% display scaling, with tall controls and both themes. A launch that opens a file shows a short F1 invitation and leaves setup for a later empty launch; an upgrade never gets the wizard.
  • Diagnostics after an interrupted session. The viewer and Share Manager now record when a previous logged session did not finish and point to Windows crash records. Diagnostic reports list crash dump names and sizes; dump contents stay on the machine.
  • The .fdd disks window opens FileDO's Disk Manager. An Open FileDO Disk Manager button starts filedo_win.exe --disks from the FileDO bundle next to the program, or from the folder FileDO's own installer registered; when neither exists the window says so instead of guessing a path. A disk that FileDO still holds mounted is now explained in plain words (which drive, and that it must be unmounted in FileDO first) with the same button right under the message. The "FileDO disks guide" link now opens FileDO's own virtual-disks guide. All strings are in the 13 Share Manager languages.
  • Share Manager can manage file-backed FileDO disks. The new .fdd disks.. window selects a container or an already mounted drive, shows disk state and holder, and provides open, clean close, explicit force close, remove and separate autostart controls. A container can be shared without a letter or exposed through a local drive alias for the current Windows session. External FileDO roots stay separate from ordinary folder edits. Container mounting requires a compatible FileDO component and an administrator-capable worker; the existing LocalService host is not silently elevated.
  • The floating panels sit at the window's edge, can be pinned one by one, and come in four sizes (64-bit program). The two toolbar rows and the status line now start flush against the left edge of the window (the right edge in a right-to-left language), stacked from the top like the docked toolbar they replaced, instead of floating in the middle. Each panel has a small pin button in its corner: a pinned panel (blue, upright pin) never hides, the others still appear when the pointer comes near; the choice is remembered per panel, and the existing "Keep floating panels visible" switch still pins all three at once. Settings > Viewing gets Panel size - Small, Medium (the size the panels always had), Large, or Adaptive, which also follows the window's width - applied on top of the monitor scale, and the panel opacity is now a slider with a live value instead of a number box.
  • A destination folder (0..9) can be a folder on a server (64-bit program). In Settings, double-click a slot's folder: with servers or shares saved, the menu offers "A folder on this PC.." and each saved resource; a resource picked there makes the slot its folder, and a subfolder can be typed after the address. The recipients panel and the media menus show the slot by the resource's name. The first press of the key connects in the background - asking for the password once if none is remembered, and storing it only after the server accepted it - and then 0..9, Shift+digit, the panel's copy zone, the thumbnail panel's batch and U work exactly as they do for a local folder: the file is sent, read back and compared before the original is deleted, a name that is already taken on the server is asked about (or renamed "(2)") just as on disk, and a missing last folder is created when the parent answers. A slot never asks the "trust this server?" question in the middle of sorting: a server whose key has not been verified yet, one that is not in the resource list, or one saved as read-only is refused with a sentence that says which. A share that needs a login and is saved as a resource works as a destination too. Taking a move back with U brings the file home and, because the program cannot be sure no one changed it on the server meanwhile, keeps the server's copy as well - and says so.
  • Servers and network shares that need a login open like ordinary folders (64-bit program). Right-click the folder box (or open the folder menu of the toolbar) and choose "Resources": it lists the servers you have set up, opens the last few in one click and leads to the manager, where you add a server by hand (address, port, user, password, folder), import the .fmscfg file or the clipboard text that the Share Manager on this or another PC produces, test whether a server answers, edit or remove it. Typing sftp://user@host:port/folder in the folder box does the same, and so does dropping a .fmscfg file on the window - one resource opens at once, several are left in the list. A server opens exactly like a local folder: pictures, video, audio and documents are shown as if they were here (the program fetches the file it is about to show and the next one into a private cache that is deleted when you leave), RE asks the server again, and DEL, 0..9, Shift+digit, F6 and U work on the server's files through the verified transfer described below - or say in one sentence why they cannot, for a folder that was shared read-only. A server's SSH key is pinned. A .fmscfg brings it along, so even the very first connection is checked; for a server added by hand the program shows the fingerprint and asks once (the default answer is No); a key that later changes stops the connection and shows both fingerprints, and forgetting the old one is a deliberate button in the resource's own dialog, never a dismissible prompt. When a server has several addresses (home network, IPv6, the router's forwarded port) they are tried in the order the Share Manager listed them. The password is kept only encrypted for your Windows account, or - if you untick "Remember" - in memory until the program closes; it never reaches a log or the logs package. A network share that needs a login (SMB) is opened with its own connection that the program drops when you leave it, and it never takes over a connection Windows already holds for another user. Limits: a folder that the Share Manager protected with a PIN makes the whole file refuse to import (the program cannot open it as unlocked); and the display settings a file may carry for a folder - file-type filter, hidden files, comment, slideshow interval, colour - are checked but not applied, so the folder opens with the usual settings. The 32-bit program (Windows 7 and 8.1) has none of this. That verified transfer is also the one path every file operation on a server takes: a move is proven by content (SHA-256 both ways) before its source is touched, and the source is deleted only if it is still the version that was copied - otherwise both copies are kept and the program says a copy was made and the move was not. A replacement keeps the old file under a name of its own until the undo window closes, a step lost in flight is settled by asking the server - never by doing it twice - and U on such a transfer checks what it is about to undo (the object unchanged, the original slot free) before moving anything back. Folder sharing from this PC (the Share Manager) is unchanged.
  • The website carries a subject index, a glossary and a search index, and every page is held to one quality gate. topics.html lists every guide and reference page by task, glossary.html defines the terms the guides use, and search-index.json is generated with the sitemap over the same 37 pages. Each page now carries the full search-engine block (title, description, canonical, Open Graph, Twitter card and structured data, with the page's own copy), the three step-by-step guides show current-UI screenshots, and a per-locale record pins which English copy each translation was made from, so a stale translation is named instead of guessed at. The whole set is checked by tools/Test-SiteQuality.ps1 in every test run and before every release.
  • The toolbar and the status line float over the picture and hide when not needed (64-bit program). The two toolbar rows and the status line are now three small translucent panels drawn in the picture's own colours, so the picture keeps the whole window instead of sharing it with docked bars. They appear when the pointer moves into the picture area, stay while the pointer is over them and fade after the video-controls delay; the slideshow and top-most buttons light up while active, and Delete is red. The folder field is a real text box - edit it on purpose, Enter opens, Esc cancels, recent folders and drag-and-drop work as before, and completion runs in the background so typing never stalls. A row that is too narrow moves its last buttons into a "»" menu in reading order, and every menu (sort, language, recent files and folders, tracks, translation) is one vertical list in the same style. F10 puts a focus ring on the panels - Tab, the arrows and Home/End walk it, Enter or Space press, Shift+F10 or the Menu key opens a button's second action, Esc hands every key back to the viewer. The video controls and the destination-folder list use the same panels, and the program now follows each monitor's own scaling, so the panels stay sharp and keep their proportions when the window moves between screens. Settings -> Viewing gains "Keep floating panels visible", panel opacity and corner radius. Modern chrome (specification 002); the 32-bit program keeps its docked toolbar.
  • The F3 thumbnail panel becomes the place to sort many files at once (64-bit program). It now shows exactly what the main window shows - the same files in the same order, videos, audio and documents included, and the entries of an open archive - instead of building a separate pictures-only list. A move, copy or delete from the panel goes through the same machinery as pressing the key in the main window, so it is checked the same way (an unreachable destination folder is probed once and refused with one sentence, never twenty timeouts; the name-collision setting and the Recycle Bin setting apply), and the whole gesture is one entry in the history: U in the main window - or Ctrl+Z in the panel - brings all of it back, to the folder and to its place in the list. Matching names in the destination raise one question for the whole batch (replace / keep both / skip those / cancel) instead of one per file. The panel selects like Explorer: drag a box over the cards, Shift for a range, Ctrl to add, Ctrl+A / Ctrl+Shift+A / Ctrl+I for all / none / invert, arrow keys and Space. Ctrl+L (or the button) switches to a details list - name, kind, size, date, sortable by clicking a header without disturbing the main window's order - and the selection survives the switch. Thumbnails come from Windows' own thumbnail cache first (so videos and PDFs get a picture and a second opening is nearly instant), then from a cache of the program's own (Settings -> Files and system -> caches, default 256 MB, 0 turns it off), then from the program's decoder; only the cards in view are made, and the size is 96 / 128 / 192 / 256 px. A strip at the bottom shows file N of M with a Cancel button while a batch runs and a one-line report afterwards (Moved files: 29; skipped: 1); click it for a per-file list. The 32-bit program for Windows 7/8.1 keeps the previous panel unchanged.
  • The navigation buttons float over the picture and hide when not needed (64-bit program). Previous, next, random file, random slideshow and slideshow now live in a small translucent panel at the top centre of the picture area, in the picture's own colours; it appears when the pointer moves into the top band of the picture, stays while the pointer is over it and fades after the video-controls delay. The slideshow button now lights up while a slideshow is running. F10 puts a focus ring on the panel - Tab, the arrows and Home/End walk it, Enter or Space press, Esc hands every key back to the viewer. Settings -> Viewing -> "Floating panels" switches it off (the buttons return to the toolbar exactly as they were) and "Keep floating panels visible" stops the auto-hide. First phase of the modern chrome (specification 002); the remaining toolbar follows phase by phase.
  • Documents, books and other files can now join the sorting loop itself (64-bit program). A folder of photographs that also holds PDFs, manuals, text notes or download leftovers used to be sortable only down to "140 of 140" while the rest stood outside the list with no way in. Settings -> "Files and system" gains two opt-in rows, "Sort documents" and "Sort other files", each with its own editable extension list. Tick one and its kind behaves like any picture: the arrows, the slideshow, random order, the N/total counter and the F3 panel all see it. On screen a text file shows as text, an EPUB shows the cover it carries, and a kind the program does not preview shows a card with its name, size and date - enough to decide where it belongs - and Enter opens it in the program that owns the format. Both rows are off by default, exactly the behaviour before this change, and unticking one stops a running slideshow and re-reads the folder instead of hiding files out from under it - the switch itself never moves or deletes anything. The 32-bit program for Windows 7/8.1 keeps its previous behaviour.
  • 7z, RAR and CBR archives open like a folder, solid ones included (64-bit program). Drag a .7z, .rar or .cbr onto the window, open it from Explorer or use "Open archive..", exactly as for a ZIP. A non-solid archive behaves like a ZIP - one picture extracted at a time. A solid archive cannot give out one page without decompressing everything before it, so it is read in a single pass the first time: the status line counts "Extracting archive: N %", the window stays alive, Esc cancels it (and opening anything else does too), and when it ends every page is already on disk and flipping is instant. Pages beyond the cache limit, or larger than the per-entry limit, are not stored by the pass - they are refused by name or fetched on demand, never silently dropped. An archive with password-protected contents or headers says so, one that is not 7z/RAR/ZIP (a TAR in a .cbz name) is refused with its format named, and while a solid archive is still being unpacked the file operations and the keyboard are held, so a key meant for the archive cannot act on the previous folder's picture.
  • The open folder stays current while you look at it (64-bit program). Files that arrive while a folder is open - a download folder, a card being copied in - now appear in the list within about a second, in their place under the sort you chose, and the N of M counter follows; files that are deleted or moved away from outside leave it too. The picture on screen never changes under you, and a file that is still being written is listed once its first bytes land. A file you delete or move away from outside while it is on screen stays until you flip past it, as before. If the system stops reporting changes (common on network shares), the viewer quietly goes back to a one-time list, as it always was, and re-reading the folder starts watching again. Not used when "include subfolders" is on, inside archives, or in the 32-bit program for Windows 7/8.1.
  • Slideshow waits for video playback to complete (64-bit program). In mixed-media folders, the slideshow lets each video play through to its end (EndReached) before advancing, with a safety fallback timeout for damaged streams and repeat loops automatically disabled during slideshows.
  • Pan boundary clamping keeps zoomed images reachable (64-bit program). Fast dragging or panning at extreme zoom levels guarantees that at least a 100 px visible strip of the image stays inside the media area, matching the anchored zoom constraint.
  • Light, dark or system theme for every window (64-bit program and Share Manager). Settings -> Viewing -> "Theme" (and Manager settings -> Startup in the Share Manager) offers "Same as system", "Light" and "Dark". The choice applies at once, without a restart, to every dialog, every context menu, the tray menu and every Share Manager window, and a change made in one program reaches the other while it is running. "Same as system" follows Windows switching between light and dark live; Windows high contrast always wins. Light mode looks exactly as before. The main viewer window and the thumbnail panel keep taking their colour from the picture, as the background setting says; Windows' own message boxes and file pickers follow Windows. The 32-bit program for Windows 7/8.1 is unchanged.
  • The 64-bit viewer and Share Manager now use one shared icon vocabulary. Toolbar and action pictures are rendered from the same catalog SVG paths instead of depending on whichever Unicode or Windows font happens to be installed, so refresh, grid, fullscreen, slideshow, file navigation, sharing, copy, add and settings have one defined meaning and a screen reader gets that meaning in the current interface language. The old 32-bit compatibility viewer keeps its established glyphs.
  • A password-protected .fd-sec file now opens like any other picture or video (64-bit program). These are secure containers made by FileDO: one ordinary-looking file holding another file's bytes, its real name, its size and its dates behind a password - and carrying nothing at all that says so, which is the point of them. Until now the program simply had no idea what they were. Now they appear in the folder like everything else and are counted in N/total; the first one you stop on asks for the password once, and from then on every other container in that sorting run opens by itself. What comes out is treated as what it actually is - a photograph zooms, gets its perspective background and its on-image translation, a video gets the seek bar, the tracks and the volume - because the real name is read out of the container and classified exactly as a file on disk would be. Nothing is ever written to disk on the way: there is no temporary copy, no unpacked file in a cache folder, nothing left behind if the program is killed - the picture is decoded straight out of memory and the video is played from a stream that is decrypted a block at a time as the player reads it. That is also why the picture editor, "replace with video" and "translate in the browser" are not offered for a container: each of them would have to write the decrypted file out. A container you have not unlocked shows a padlock with its name and one line saying what it needs - it is not an error, and a slideshow skips past it instead of stopping on a dialog nobody is there to answer. Holding an arrow key across a folder of them asks nothing until you settle on one, and a container you cancel is not asked about again while you stay in that folder. When something does go wrong the program says which of three things it was, and never the wrong one: the password may be wrong (or the file was never a container, or somebody changed it - these genuinely cannot be told apart, and claiming otherwise would be a lie half the time), or the file is damaged, which the password is never blamed for (that includes a container whose hidden name could pass for a folder path or a device such as CON, or whose recorded size is impossible - such a file is refused, never opened under an altered name), or it was made by a newer version of the format, which is refused by name rather than called damage. Settings -> "Files and system" -> "Protected files" holds the four choices: whether to list them at all, how long the password is remembered (it is held in memory only and is written nowhere - not the registry, not a file), whether the hidden file's real name is shown on screen at all, and an "Open with" entry for Explorer that adds this program to the menu without taking .fd-sec away from whatever owns it now. The middle-click menu also offers "Forget the password" whenever one is being held, and "Check the whole container" for the occasions when you want every block read and the signature verified rather than just the parts you looked at. The 32-bit program for Windows 7/8.1 does not list these files at all.
  • Downloads show their progress and can be cancelled (64-bit program). The OCR engine, VLC support, FFmpeg, OCR language packs, the Ollama installer and Ollama models now download in one small window with a real progress bar and a Cancel button. Cancelling leaves no half-downloaded file behind and is reported as cancelled, not as an error; a failed download says why and offers Retry.
  • "Send the log to the author" in the Share Manager. The tray menu and the manager's settings now have their own entry, so the log of a sharing problem no longer has to be sent from the viewer's settings. It packs the same archive, shows what is inside before anything happens, and hands it to your own mail client.
  • Sharing can be switched off completely from the Share Manager. Manager settings - Network - "Switch off server features.." stops sharing and, with one administrator prompt, removes the Windows Firewall permission the feature added. The folder list and the password are kept for when you switch it back on.
  • Importing a settings file shows what it would change, and keeps a way back (64-bit program). Before anything is applied, "Import settings" lists what Replace and Merge would each change, and a file that changes nothing is reported without a question. The current preferences are saved first to a private backup under %LOCALAPPDATA%\SZA\FastMediaSorter\settings-backups, never beside the imported file, and an import whose backup cannot be written does not touch the settings. Old backups are not deleted automatically - remove them by hand when you no longer need them.
  • The site explains the Windows warning you get when you download this. The builds published on GitHub are not code-signed, so SmartScreen shows "Windows protected your PC" the first time you run one, and the single-file download additionally trips a known false positive in Microsoft Defender. Until now nothing anywhere said what that warning is, why it appears or what to click. A new page does, in all thirteen of the languages the program itself speaks, linked from the download buttons and from the readme: what the warning is, why it appears (no certificate, because one costs several hundred dollars a year and this is free - and reputation, which is why the warning fades between versions), exactly what to click, what the two optional features that ask for administrator rights actually do, the single action that takes those rights back, and what the program never does. It tells nobody to switch SmartScreen off or to disable their antivirus, because neither is ever needed here.

Changed

  • The Settings window opens faster (64-bit program). The window prepared its pages twice on every opening - once when it was asked for and once more when it was shown - and on the first opening of a session it also localized its rows in the first pass only to redo it in the second. A reopened window now does that work once, and the first opening skips the pass that was thrown away. Measured on the built program with a settled viewer: first F2 about 1.6 s down to about 1.1 s, reopening about 0.55 s down to about 0.34 s; every page, group and resize of the window is pixel-identical to before (the settings layout scene compares 110 snapshots at 100 % and 175 % with no difference). The first opening is still over the 500 ms dialog budget.
  • The destination-folder table over the picture carries fewer symbols, and the two buttons of its header can be told apart (64-bit program). The folder-and-arrow picture before every folder row is gone - a row is its key, its folder and the word "move". The bin of the Delete row and the copy sheets of the copy zone now take a fixed share of the row's height instead of a fixed 16 px, so they grow with the table's font. The "pin" button of the header (and of the toolbar panels' corners) is now the catalog's upright push-pin - filled while pinned, outlined while free - where it used to be a line-drawn pin that tilted into a second pencil beside the "edit" button.
  • The viewer's window title no longer says "Sharing". The title bar now reads "Fast Media Sorter by SZA" (a second window adds " - additional window"), because sharing is run from the Share Manager's own window, not from the viewer. The About page, installers and website keep the full product name.
  • The interface language is chosen on the first page of Settings, by the language's own name, without flags (64-bit program). The "Interface language" row moved from "Files and system" to the top of "Destination folders" and is now a drop-down of all 13 languages written in their own scripts (Русский, English, Українська, .. 中文); picking one applies to every open window at once. Flags are gone from the language lists - the interface language menus and the OCR source and target language lists - because a flag stands for a country, not a language. The 32-bit fallback keeps its two-language button and flags.
  • The product is now named "Fast Media Sorter & Sharing for Windows". The separate sharing program is now called "Share Manager - Fast Media Sorter & Sharing". "Sharing" means giving your media to someone else: the folders you pick open from the Android app, from another copy of the program or from any SFTP client. The window title, About page, installers, shortcuts, release title, README, documentation and website all carry the new name, written in Latin in every interface language. The name is the only thing that changed - settings, file associations and paired phones are untouched. The Microsoft Store, Add/Remove Programs and winget keep listing the package as "FastMediaSorter LITE" on purpose, so upgrades of installed copies keep working; those are the old name's last appearances.
  • Folders of more than 100 000 files are sorted too (64-bit program). The sort box used to be ignored silently for a folder that big - files came in the file system's own order while the box still named the order you had picked. The limit is now a guard at two million files, and past it the order you chose still applies. The 32-bit program for Windows 7/8.1 keeps its old limit, because it runs in a 32-bit process.
  • Opening or re-reading a large network folder no longer freezes the window (64-bit program). The folder walk now runs in the background. A folder that answers within a tenth of a second opens exactly as before; a slower one leaves the window alive with a "reading the folder.." line and shows the first file when the list arrives (a cold folder of 15 000 files used to stand the window still for about a second, longer on a slow share). While it runs, flipping keys, delete and the slideshow wait for it instead of acting on the list that is about to be replaced, and opening another folder or file meanwhile simply wins over the slow one - the late result of the first can no longer land on top of the second.
  • Stepping back through photos is as quick as stepping forward (64-bit program). The next picture is now prepared in the direction you are going - it used to be "the one after" whichever way you went, so paging backwards decoded the wrong picture ahead of every step - and the last few pictures you have paged past are kept in memory (up to five, within a 256 MB budget), so going one back is not a decode. A picture is never shown from memory if the file has changed on disk, if you turned it on screen, or if it is an animation; opening another folder empties the memory.
  • Folder browsing skips system junk and temporary files (64-bit program). Classification now distinguishes books, playlists and archive containers, and recognizes media extensions followed by .download or .temp_copy. The file types offered for navigation still follow the viewer's supported formats and your settings.
  • Closing the program while files are still being moved or copied asks once and cannot be pushed past (64-bit program). Pressing the close button or Alt+F4 again while the program is waiting for a file operation to finish no longer starts a second wait or skips the first: you get one "file operations are still running - wait longer?" question, and if closing is cancelled the queue carries on as before.
  • The "Show these file types" dialog refuses an empty choice (64-bit program). With nothing ticked, OK is disabled, because an empty stored list means "all formats" and would have done the opposite of what the empty boxes say.
  • "Share this folder.." and the Share Manager agree on who is in charge (64-bit program and Share Manager). The viewer hands the folder to a running Share Manager and waits for its acknowledgement; if the Share Manager is an older version that cannot take a folder, the viewer only brings it to the front and tells you to add the folder there, instead of guessing. A second Share Manager is not started beside one that runs with administrator rights, and folder proposals from other programs are queued and rate-limited rather than acted on at once.
  • The access-code window checks that sharing can read the folders before it offers a code (Share Manager). A folder the sharing account cannot read, a check that timed out and a check that was cancelled are all shown as "not confirmed" - none of them counts as permission. The .fmscfg file is written so that only its owner can read it, and a target on FAT or exFAT, or one another user could replace, is refused.
  • Inside an archive the file-operation buttons are gone instead of declining (64-bit program). Rename and Delete disappear from the toolbar, the picture menus no longer offer rename/move/copy/delete, the destination list is drawn muted, and "Share this folder.." is not offered - an archive is view-only, and a control that is shown and then refuses is worse than one that was never there. Closing the archive brings them all back.
  • The animated backdrop of an audio file without a cover now runs at the same speed on every monitor, keeps its look when the window is resized, and holds still when animations are off (64-bit program). The lines and particles used to speed up with the screen's refresh rate and with anything that repainted the window, started a new random look on every window drag or full-screen switch, and drew brighter than the shared "particles and lines" design allows. Now time is measured, a resize keeps the same animation (and never replays the fade-in), "Reduce animation" or Windows "Animation effects" off shows a still frame instead, and it pauses while the window is minimised or on another virtual desktop and while Windows energy saver is on and the laptop runs on battery. The website's background uses the same shared animation.
  • Internal documentation now has a machine-readable registry and a default test gate for coverage, links, anchors, tracked images, text style and documented code facts (ticket 058). Local specification links are plain-text references; the two canon mirrors are pointers to their authoritative source.
  • Translation plates are opaque by default. A new installation draws the plate so that it fully covers the original text, which is what makes the translation read cleanly; the "Panel opacity" slider still lowers it if you want the picture to show through. An existing installation keeps the opacity it already had.
  • "Translate in the browser" lets doc-html-translate detect the script itself. With the source language on "Auto", the button used to pass three guessed languages as if you had chosen them, which switched off doc-html-translate's own script detection. It now passes nothing in that case, so a page in a script those three do not cover gets a clean page instead of nonsense; a language you chose is still passed.
  • Error messages say what happened and what to do (64-bit program and Share Manager). Instead of the system's own error text, a failure now names its cause - no connection, a disk or network folder not answering, a full disk, a missing file, a file in use or without permission, damaged data - and the next step. Anything unexpected keeps its error code and points to the log you can send. The Share Manager now writes the failures it used to drop into its log.
  • OCR language packs are downloaded only when you agree (64-bit program). Recognition used to fetch a missing language pack silently - and with automatic translation on, that happened just by turning to the next image. Now a manual translation asks first, and automatic translation skips an image it cannot read and says which pack is missing.
  • "Don't ask again" before "Replace with video" now lasts until the program closes (64-bit program). That action deletes the original past the Recycle Bin, so the choice is no longer kept forever. Delete confirmation keeps all three choices - "Always", "Only if the file will not reach the Recycle Bin" and "Never"; "Never" means never, including Shift+DEL and files on network folders.
  • The Share Manager asks before the changes that cannot be taken back. Removing a shared folder (its PIN and filters go with it), unticking the last folder while sharing, resetting the counters and removing the server role now ask first. The listen port is changed with its own "Apply port" button, which says beforehand that every QR code and router rule already handed out will stop working.
  • The permission request for sharing tells the whole story. Before switching sharing on, the Share Manager now also mentions that it asks the router to open a port and checks through check-host.net whether that port is reachable, unless "LAN only" is ticked, and that folders opened for writing can be written over the network.
  • Smaller fixes around editing and settings (64-bit program). The image editor's "Save" waits until something was actually edited; importing a settings file with nothing different says so instead of asking; the Explorer "Open with" entry for .fd-sec files is a button that says what it will do.
  • Arabic and Urdu, and screen readers (64-bit program and Share Manager). The settings window, the thumbnail panel, the video dialogs and the enlarged QR code now follow the right-to-left direction of Arabic and Urdu, while the video playback bar always runs left to right. Toolbar buttons that show only a symbol, the Share Manager's copy buttons and the QR code have names a screen reader can read in the interface language.
  • One picture and one name per action, in more places (64-bit program and Share Manager). A picture no longer stands for two different things: the Translate button marks automatic mode with the word "(auto)" instead of the refresh arrow the folder button already uses; the Share Manager shows a read-only folder with a padlock instead of a check mark (a check mark reads as "fine"), its status line with the shared "OK / needs attention / off" marks instead of a coloured dot, and its foldable sections with the standard expand/collapse arrows. A thumbnail that cannot be decoded now shows a picture or video symbol instead of a red square. The image editor draws its crop, brush, rectangle and oval tools from the same icon set. The same action now also has the same name everywhere - "Во весь экран", "Переместить в", "Редактирование изображения", "Слайд-шоу" in Russian, "Diashow" in German.
  • The Edit button and the read-only padlock follow the current icon catalog (64-bit program and Share Manager). Four shared pictures had been redrawn in the catalog since they were copied in - Edit, the padlock, the phone and "back to top" - and the program still showed the old drawings. They are re-imported, and a check now compares the copies against the catalog itself, so a redrawn picture can no longer fall behind unnoticed. On the website the "back to top" button and the "All releases" link now show the same pictures as the apps instead of text arrows.
  • Toolbar symbols stay readable on any photo (64-bit program). With the background colour taken from the picture, the toolbar chose black or white by adding up the colour's channels, which picked white on a bright green and left the symbols barely visible. It now picks by perceived brightness, so the contrast never drops below the level recommended for readable text.
  • A translated caption is never cut short any more, and it is drawn at the size of the text it replaces. Two things about the on-image translation changed together. When a translation came out longer than the sentence it covers, the program shrank the lettering as far as it dared, grew the plate down as far as the next plate allowed, and then - out of room - simply ended the line with "..", losing the tail of a sentence you were reading. It no longer trims anything: at that point the plate is released and grows to whatever height the text needs, stopping only at the bottom edge of the picture. A released plate can reach the plate below it, and what happens then is now a fixed rule rather than luck: plates are drawn in reading order, so the lower one is drawn last and stays fully readable. Separately, the size of the lettering is now taken from the median height of the recognized words rather than of the whole line. A line box is stretched by whatever fell inside it - a speck of the drawing read as a comma, a stray descender - and one such artifact used to set the type size for the entire plate.
  • When the source language was only guessed, the program now refuses instead of covering the picture in nonsense. With the source language left on "auto", text recognition runs a fixed ladder of languages and answers in one of their alphabets whatever the page really says - so a page in a script none of them covers came back as debris, and some of that debris was drawn over artwork that had been perfectly readable a moment earlier. When the language was guessed and almost everything the recognizer produced was then thrown away as not-language, the overlay is now not drawn at all and the status line says what would fix it: choose the language of the original in the OCR settings. A language you chose yourself is never second-guessed, and a page that mostly read fine keeps its translation however much texture noise came along beside it.
  • "LAN only" is now a setting of the whole share, and a code can leave out the internet address on its own (Share Manager). The checkbox in the window that builds an access code looked like an option of that one code, but it was the switch that stops the program asking the router to open a port - for every code - and it only took effect at the next start. Ticking it for one friend therefore left the router port open until then, and quietly took the internet address away from every code handed out before. The two meanings are now two controls. In that window, "Do not put the internet address into this code" shapes only the code being made. Manager settings - Network - "LAN only (no access from the internet)" is the server-wide switch; it applies the moment you change it, and asks first while sharing is running, since it ends the internet path of every code already handed out. Your previous choice carries over to both.
  • An access code can no longer promise more - or less - than the server enforces (Share Manager). The "Read only" and "Destination" columns of the access-code window only changed what the code *said*: a code could call a folder read-only while the login inside it could still write and delete there, or call a folder writable that the server serves read-only, so moving files into it failed on the phone. These two columns now show the folder's own setting (changed with "Edit.." in the main window) and a folder the server serves read-only is always read-only in the code.
  • Back from the Windows service to ordinary sharing, inside the app (Share Manager). "Return to the User edition.." used to open a web page. It now does the move itself, with one administrator prompt: the service is stopped and removed, the folders, settings and host key come back, and the firewall rule points at the program again - phones keep connecting without pairing anew. "Remove server role" in an ordinary installation also puts that firewall rule back instead of leaving sharing with no inbound permission.

Fixed

  • No more blank bands under the recipients table in Settings (64-bit program). The block under the table held three fixed-size reserves - a gap between the grid and its hint, a 50 px hint box and an empty three-line area for the slot status - so on a 175 % display the table was followed by about 260 px of nothing before the buttons, and the table itself was one row short, so its first row (delete) was scrolled out of view. The block is now sized to what it holds: the table shows all 11 rows, the hint takes the height of its wrapped text, the slot status line appears only while a slot has something to report, and the buttons follow directly.
  • The Help button of the Settings window no longer covers the "Collapse all" tool (64-bit program). The "?" sat in the window's top-right corner on top of the header's tools and looked unlike them (no border, a small white glyph off to one side). It is now the last tool of the header row - the same square, border, colours and centred picture as search / expand all / collapse all - and the page title makes room for it, in left-to-right and right-to-left languages alike.
  • The Settings window opens in about a second instead of ten, and its tabs switch without a stall (64-bit program). On a display with a different scale than the one the window was created on, Windows moved it across, and every control was then scaled again on each open - several seconds, longer on a second open. The window is now created on first use and placed beside the viewer before it gets a handle, so it never moves between displays on open; the Designer's font-based auto-scaling is off, because the modern layout sizes everything itself. The sidebar's product name also wraps to its full text at any scale instead of losing its second line. The 32-bit program is unchanged.
  • The image editor and the thumbnail panel scale with the display (64-bit program). Their toolbars, buttons, bands and the thumbnail panel's list columns were laid out in fixed pixels, so on a 125-175 % display the text grew while the chrome stayed small. They now scale like the other windows, and each remembers its size together with the display scale it was set at, so reopening gives the same window instead of a bigger one every time, and a window left at one scale reopens at the same physical size on another. A size remembered by an earlier version is restored exactly as it was. The card-size drop-down of the thumbnail panel is wide enough to show "128".
  • The always-on sharing instructions name a button that exists. The READMEs, both installers' messages (the Server-conflict note and the service-failure note) and the Share Manager's own hint after you decline the folder-access prompt all pointed at "Manage hosting..", a button that was folded into the manager settings when the window was made compact. They now give the real path: Share Manager -> "Manager settings.." -> "Hosting" -> the action you need (switch to the Windows service, repair the registration, return to the User edition), in all 13 languages of the hint.
  • The Share Manager no longer offers a broadcasts page it cannot serve, and no longer tells you to update to something that does not exist. The "Broadcasts for StreamsPlayer" tray item, the "Broadcasts.." button of the main window and the page behind them were built before the worker that answers them, so the page opened and said "Update Fast Media Sorter to broadcast" with everything installed together - there was no newer version to update to. The worker now states what it can do (a broadcastSupported field in its status, never guessed from the wording of an error), and the tray item and the button are absent - not greyed out - until a build that offers the page meets a worker that says it serves it. A launch forwarded by the viewer raises the Share Manager with one line instead of an unusable window. Inside the page every refusal is now one inline line - "This version of the broadcast service is out of date. Update Fast Media Sorter." only for a real version mismatch, the worker's own text when the gateway cannot start (a busy port, the firewall), a generic "details are in the log" for the rest - and a worker swapped under an open page switches its toggle and buttons off in place instead of raising dialogs. The suite fails if the page is ever offered while the bundled worker lacks the broadcast requests.
  • The website can be used from the keyboard, reads correctly in the light theme and fits a 360 px screen. Every page now starts with a "Skip to main content" link that appears on the first Tab press, the header links sit in one labelled navigation landmark, and the guides, the subject index, the glossary and the edition page set the page language to Russian or Ukrainian when you switch to it, so a screen reader pronounces them correctly. In the light theme the green accent, the small gold labels and the links were slightly too pale to read comfortably and are now darker. On a touch screen every header and footer link is 44 px high. The program page's download box, the edition page's comparison table and the install-warning page no longer run off the edge of a phone screen: the winget command wraps, the table scrolls inside its own frame.
  • OCR no longer reads an English page with the Russian model when the source language is "auto". With the language on automatic, the first language of the ladder (Russian) read the page, and its result was accepted as soon as it looked like natural text - which Cyrillic debris over English letters always does ("КМОСК,КМОСК!", "Уез, ме! хй1се.."). The overlay then drew that debris and the translator invented a story around it. Now every language reads the page once on the same settings, the engine's own confidence picks the language (on a real page: Russian 0.49, Ukrainian 0.55, English 0.88), and only the winner gets the extra passes; a Russian page still costs one pass. If no language reads the page convincingly, nothing is drawn and the status asks you to choose the source language in the OCR settings. An explicit language is never second-guessed. Cached results from older builds are discarded.
  • Floating panels read on any picture, can be made fully see-through, and the recipients table fits its rows (64-bit program). The glyphs and captions of a translucent panel now carry an outline in the opposite tone, so they stay legible over light and dark pictures alike. The panel opacity slider (Settings -> Viewing) goes down to 0 % (menus and the video transport keep a 40 % floor so they stay usable). The recipients table drew its captions about twice as large as set on a scaled display, so paths were cut off and the copy zone was oversized; its captions are now drawn at the chosen size, outlined, and the default text size matches the panels. Drop-down lists in Settings draw their text at one size everywhere, and the sidebar no longer repeats the word "Settings" under the product name.
  • The disk window of the Share Manager follows the desktop UX contracts, and disabled buttons are readable in the dark theme (64-bit program). The ".fdd disks" window now has a Close button that Escape and the close box share, no minimize box, and a Cancel in the mounted-drive picker. When disk sharing is unavailable it shows the cause with Refresh instead of a row of dead buttons and an empty list. In the dark theme a disabled standard button used to draw its caption darker than its face (about 1.6 : 1); it now uses the text.disabled colour, lifted to 3 : 1 on every dark surface.
  • A translucent panel keeps its glyphs and captions fully visible (64-bit program). The panel opacity setting (Settings -> Viewing) used to fade everything in the floating panels, so over a bright picture the button glyphs and labels washed out together with the background. Now only the panel's background is as transparent as you chose; the glyphs, captions, the folder path and the menu entries are drawn at full strength at any setting, and still fade in and out with the panel itself.
  • Drop-down lists in Settings are no longer tiny on a high-DPI screen (64-bit program). The lists, number boxes and text boxes of the Settings window took their size from a point-sized font and came out smaller than the buttons beside them. They now use a font sized in pixels at the display scale, and every list row is at least 28 px tall (the pointer minimum).
  • The Folder Share Server service now looks for the bundled FileDO in its own installation (disk sharing). The service runs a copy of the worker staged under %ProgramData%, and without a bundle root the worker searched beside that copy and refused it ("service FileDO must be inside its Program Files installation"). Install, repair, migrate-to-server and the in-place update all register the service with --filedo-root pointing at the installation folder, and the Server installer now ticks the optional FileDO component by default. When disk sharing is unavailable the Share Manager shows the worker's own reason instead of the generic "update the app and FileDO" advice; the administrator hint is kept only for the service-account refusal.
  • Share Manager forwarding and exports retain their safety gates. Relaunching against an older or unidentified manager wakes it and asks you to add the folder manually. Folder requests remain single consent proposals even during a slow check. Editing a package immediately invalidates its previous QR/file; access checks time out without releasing a blocked filesystem call's worker slot. Saving verifies protection before writing, detects changed destinations, and retains a protected recovery copy if publication cannot be confirmed.
  • Settings saves and import backups keep their pending work. Failed explicit saves retry after 1, 4 and 10 seconds, while close-time failures remain pending without delaying shutdown. Refreshing Settings preserves uncommitted numeric edits even after focus moves. Cache-size measurements ignore closed windows and older results. Import backups use protected private storage and exclusive filenames; a failed import write retains the requested new-window preference for retry. Logger initialization rolls back each partially attached handler, and queued filesystem probes recheck ownership when their worker starts.
  • A file moved or copied out of an open server into a 0..9 folder keeps its own name (64-bit program). It used to arrive as 00042_photo.jpg - the name of the program's private cached copy - instead of photo.jpg. The same holds for the thumbnail panel's batch, and a slot that names the very server folder the file came from is now recognised as "already in this folder". Taking back a move that ended as a copy (the file came home, the server kept its copy) no longer drops the returned file from the list.
  • Sorting, deleting and undo are more careful with files (64-bit program; the move, undo-of-copy and failed-rename fixes also apply to the 32-bit program). A move whose original could not be removed afterwards - because another program, such as an antivirus scanner, was reading it - left a complete copy at the destination, so the next try met a taken name and saved "photo (2).jpg"; the copy is now taken back and the original keeps its read-only mark. Undo of a copy of a read-only camera photo no longer answers "access denied". A deletion to the Recycle Bin that Windows held up with a hidden error dialog no longer stops every later move and delete behind it: after 90 seconds it is reported as failed. Deleting a selection from the thumbnail panel now says so when Windows deleted a file for good instead of putting it in the Recycle Bin. A custom shortcut bound to deleting or to a destination folder now acts once per press like the factory keys, and "next file" moved onto a digit keeps repeating. A destination folder you may write into but not list - a NAS drop-box - is no longer refused as "no access", and a folder check interrupted by switching to full screen no longer leaves that folder "checking.." until restart. Undo of a copy no longer freezes the window when the destination share has gone to sleep. A rename that fails, or undoing an old rename while another file is on screen, no longer leaves the window blank. The "name already taken" prompt shows a real line break instead of the characters \r\n.
  • Opening two files in quick succession from a slow or sleeping network share now opens the one you asked for last. Each open request checked a counter that only moves when a picture is shown, so two requests waiting on the share at the same time looked identical: the first one to answer was shown and the second - the latest - was thrown away as "you moved on". Every open request (a file from Explorer, a drop, a second launch, the restored last file at startup, a file waiting for a download to finish) now has its own identity: a newer request, any navigation, or closing the window makes the older ones fold quietly, and a request nobody waits for any more stops retrying the share. Applies to both the 64-bit and the 32-bit program (restoring the last file is 64-bit only).
  • An imported settings file can no longer set archive, remote-cache or password-timeout limits outside their allowed range (64-bit program). Importing a profile kept the archive cache budget, the per-entry and entry-count extraction ceilings, the remote cache budget and the "remember the password" timeout exactly as written, while the same values read from the registry were bounded. A negative timeout therefore never expired the password, a zero archive budget switched cache eviction off, and an enormous ceiling could fill the disk. Imported values are now held to the same ranges as stored ones; an unknown delete-confirmation value falls back to "always", and the explicit "never" choice is kept.
  • On-image translation: correct Hindi, Bengali, Chinese and Japanese translations are no longer thrown away. The check that rejects a garbled answer counted the vowel signs of Hindi and Bengali, and the brackets and full stops of Chinese and Japanese (「」。!?, ।), as noise, so nearly every translation into those languages was retried and then replaced by the untranslated source. A several-sentence balloon translated into Chinese or Japanese was also taken for a cut-off answer, because only . ! ? were counted as sentence ends. The same marks made the text recognizer treat every Hindi and Bengali line as doubtful and run every recognition attempt. A Japanese text handed back unchanged for a Chinese target (or Korean for Japanese) is now recognized as untranslated instead of being cached as a translation, and a correct Russian translation of a sentence that itself talks about translating is no longer mistaken for a refusal. Everything cached by earlier versions is recognized afresh once.
  • A video the player cannot open no longer bounces back into the viewer when the viewer is the default video player. When LibVLC failed on a file, the program handed it to "whatever Windows plays it with"; if that was this very program (Settings -> "Files and system" -> default video player, or "Open with - Always"), the file came straight back, replaced the folder list with that one file, failed again, and so on - navigation was dragged back to the broken file and closing the window did not end it. The hand-over is now refused when the registered program is one of our own exes, and a file already handed over once in the session is not handed over again; the status line says "Not opened in an external player." instead. The explicit "Open in external player" menu item still works for any other program. Applies to both the 64-bit and the 32-bit program.
  • Toggling "Repeat" on a secure container video (64-bit program) no longer leaves its cover art on disk. Reopening the video to apply Repeat skipped the guard that deletes the cover VLC extracts from a sealed file, so the cover and the sealed artist/album names stayed in the VLC art folder for the rest of the playback. The reopen now watches the media exactly like the first play.
  • The Share Manager no longer leaves the SFTP password, or the access-code picture, in the Windows clipboard history (Win+V) and the cloud clipboard. Copying the password, the login and password pair, or the QR image now tells Windows not to record it in the history and not to sync it to your other devices. If another program is holding the clipboard the copy is retried briefly and, if it still fails, the window says so instead of pretending it worked. Copying a name or a path in the viewer no longer throws an error into the window in the same situation - it says the copy failed.
  • A file that could not be read no longer hides behind the previous picture (64-bit program). When a file stays in the list because it could not be read right now - a network folder that stopped answering, no access, a file open in another program, or a picture that takes too long to decode - the previous picture used to stay on screen, and in one case the counter and the file name still named the previous file too. DEL and the move hotkeys then acted on a file you had not seen. The screen is now emptied, and the counter and the file name show the file the keys will act on, next to the message that says why it could not be shown.
  • On-image translation: failures are no longer remembered as translations. When the translator was not ready - no model downloaded yet in Ollama, a model too big for memory, a LibreTranslate server that does not know the language - the original text was shown on the plates with no message, saved to the cache as if it were the translation, and served "from cache" on every later visit, with T only hiding and showing it. Now such a result is shown with a status line that says what went wrong and "T will retry", nothing is cached, and T really runs it again. A translator that takes longer than two minutes to answer (a slow machine loading a large model) now says so instead of leaving "Translating.." on screen forever and throwing the recognized text away. Everything cached by earlier versions is recognized afresh once.
  • On-image translation keeps correct translations that contain "please", "sorry" or "I can't". The check that throws away a model's refusal looked for those everyday words (in English and in Russian), so "Please wait!" translated into Russian, or a Russian "Sorry, I can't" translated into English - among the most common lines in comics - were discarded and replaced by the untranslated source. A refusal is now recognised by the model talking about the request itself. Names, brands and text that is already in the target language are no longer sent back to the model twice more for nothing. Quoted lines with curly quotes, dashes and ellipses no longer count as recognition noise.
  • Turning a picture no longer brings back the translation plates of the unturned one. After R (or Shift+R) the plates of the upright picture could come straight back from the cache in the wrong places, and a recognition still running when you turned the picture painted its result over the turned one. Each orientation now has its own result.
  • Long webtoon and manga strips are recognised. A tall strip was shrunk by its length before recognition until its lettering was a few pixels high and nothing was found; it now keeps readable lettering. Recognition also prepares one copy of the picture at a time instead of several at once, which on the 32-bit program for Windows 7/8.1 could run out of memory on a large photo - and if preparing the picture still fails, it now says so instead of doing nothing.
  • A missing OCR language pack is named. The status line now says which language's recognition data is missing and where to download it (Settings -> OCR & translation -> Recognition), where the 32-bit program said "OCR engine unavailable".
  • Translating into Belarusian, Bengali or Urdu (64-bit program). With a Bengali or Urdu interface the translation target was that language, but the settings showed "English" and the translator was asked for a language code it could not interpret; Belarusian had the same problem. All three are now named properly and Bengali and Urdu can be chosen in the list. LibreTranslate is sent the codes it actually uses (Traditional Chinese, Norwegian) and refuses Belarusian up front with a message instead of a silent failure.
  • Arabic, Persian, Hebrew and Urdu translations are laid out right to left on the plates, so punctuation and numbers sit at the correct end.
  • The OCR cache size limit applies at once (64-bit program) instead of after a restart.
  • Closing the program no longer waits for a recognition in progress, which with the "best" OCR models could hang the window for seconds.
  • The Ollama installer is started only when it is genuinely signed by Ollama. It is downloaded under a fresh random name into the program's own folder, and a file without Ollama Inc.'s valid signature is deleted and the Ollama download page opened instead.
  • Uninstalling removes the folder-sharing firewall rule again. An installation made for you only could not delete the Windows Firewall rule that sharing had added - deleting one needs administrator rights, the uninstaller did not ask for them, and the rule stayed behind in silence. It now says what it is about to remove and asks Windows once; answer No and it tells you where the rule can be deleted later. A silent uninstall (such as winget uninstall) still cannot ask and leaves the rule in place, so switch sharing off in the Share Manager first. Removing sharing - on uninstall or with "Switch off server features.." - now touches only this installation's rule, and no longer also the rule of the same name the Server edition or an always-on service relies on.
  • The viewer no longer tries to install the Visual C++ runtime behind your back. When the OCR or video runtime needs Microsoft's Visual C++ Redistributable and it is missing, the program used to download Microsoft's installer and start it silently without administrator rights - which always failed. It now names the runtime (and whether you need the x64 or the x86 one) and offers to open Microsoft's download in your browser; the installer asks for its own rights when you run it.
  • Settings - About opens the privacy policy again, and explains the Windows warnings (64-bit program). The privacy link pointed at a page that does not exist; it now opens the policy. A new "Why Windows warns" link beside it opens the page on SmartScreen, what to click and what administrator rights are used for, in the language the program is using.
  • An access code treats its password as a key (Share Manager). The QR code and the .fmscfg file carry the sharing password and any folder PIN; the access-code window now says so in a line that is always visible. "Send by email.." adds the same warning to the message and no longer leaves a copy of the file in the temporary folder - one left there by earlier versions is removed on the next send. A saved .fmscfg is readable by your Windows account only (where the drive supports permissions), and folder PINs no longer appear in the Share Manager's log, which "Send the logs to the author" can pack. The "Do not include the password" option no longer promises that the phone will ask for the password: whether it accepts such a code depends on the Android app version.
  • A destination folder is never shown to the phone as read-only (Share Manager). Ticking the soft "read-only hint" on a folder that is also a copy/move destination produced a code the Android app reads as writable, while the Share Manager said read-only. A destination now ignores the hint - the checkbox and the grid cell are greyed while "destination" is on, and the hint comes back if the folder stops being a destination.
  • After a move the next file appears again, and the next arrow no longer skips one (32-bit program; 64-bit with "stay"). Since 26.8.13 the 32-bit program left the screen blank after every move, and the next arrow press stepped past the file that had slid into the moved one's place, so it was never looked at. The next file now appears at once, in both programs and in every "after an operation" mode.
  • "Go to the next file after copying" works again (64-bit program). The checkbox had been saved and ignored, so filing one picture into several folders with Shift + digit copied a different picture each time. Unticked, the view now stays on the copied file; ticked, it moves on only once the copy has really happened. The "replace" name-collision setting now warns once per session before it first overwrites a file.
  • A copy is written the safe way, like a move (both programs). Closing the program during a long copy to a network folder, a crash or a power cut used to leave a cut-short file under the real name in the destination folder, looking like the real thing - and with "replace", the old file there was already cut short too. A copy now goes to a temporary *.fms-part file first and takes its real name only when complete; the thumbnail panel's bulk copy and move go the same way.
  • A read-only photo (a camera's "protected" picture) can be moved from a memory card. The copy used to land, the original refused to be deleted, the move was reported as failed and the file sat in both places; each retry made another "(2)" copy.
  • An action always hits the file it was started on. A copy finishing, or a file opened from Explorer, while a question was on screen (the rename box, the name-collision question, the 32-bit delete confirmation) could switch the file underneath it - so another file was renamed, moved under the first one's name, or, on the 32-bit program, permanently deleted. The action is now cancelled if the file on screen changed while the question was open.
  • Undo is honest about what it can do (64-bit program). U while operations are still queued now says to wait instead of taking back an older operation; a failed undo no longer adds wrong rows to the list and can be pressed again; and finishing operations, rollbacks and undos no longer edit the list of a folder you have switched to since.
  • A deletion "to the Recycle Bin" that Windows silently made permanent is now reported as permanent (64-bit program). On a subst drive, a disk mounted into a folder or some virtual disks, Windows deletes for good instead of recycling and says nothing; the program now checks the Recycle Bin afterwards and says so.
  • Shift+DEL no longer leaves a "permanent" flag behind (64-bit program). A Shift+DEL that was refused (inside a ZIP, or a moment after flipping) used to turn the next plain DEL into a deletion past the Recycle Bin.
  • Keys with Ctrl or Alt are no longer read as plain keys (both programs). Alt+F4 opened the file chooser instead of closing the window, Alt+Space flipped a file instead of opening the window menu, Ctrl+1 moved a file and Alt+D deleted one. Holding a sort digit or DEL now acts once instead of sorting a run of files, and a double-click on a row of the floating destination list moves one file, not two.
  • Touchpads and free-spinning wheels flip one file per wheel notch (both programs), instead of one file per tiny scroll message - a swipe used to rush past dozens of files.
  • Custom shortcuts fully own their keys (64-bit program). A digit bound to an action now works even when that sort slot has no folder, and moving "Delete file" (or a sort slot, or "next file") to another key also retires the other factory keys it answered to - D, Shift+D, the NumPad digit, Space, PageDown.
  • Rename accepts only a name. Typing ..\x or D:\other\x moved the file to another folder or drive; now a name with \ / : * ? < > | is refused with a message, a change of letter case only (photo -> Photo) is allowed, and rename is refused inside a ZIP like the other file operations.
  • Error messages name the right cause (64-bit program). A name taken at the destination or a file held open by another program is no longer reported as "no connection to the folder"; a destination slot that points at a file, or was typed with a stray space, now says what is wrong with it.
  • File associations (both programs). .tif files now open like .tiff; in the Store version the "default viewer/player" buttons open Windows Settings instead of claiming a registration that Windows ignores there; the image button's tooltip says what it really does; old unused code that could write machine-wide associations is removed.
  • Sharing two folders with the same name, or a whole drive, no longer takes all sharing down - and no longer blames the port (Share Manager). D:\2024\Photos next to E:\Backup\Photos, a whole drive such as D:\, or a label with a slash in it made the sharing worker refuse the entire list, at every start; the window then said the port was taken by another program and suggested changing it, which would have broken every router rule and code handed out without fixing anything. Names are now made unique ("Photos (2)"), a drive is named after its label or letter, and the port warning appears only when the port really could not be taken - otherwise the window shows the worker's own reason.
  • Security of the sharing service and its administrator steps (Share Manager and Server edition). The elevated helper no longer runs the sharing program straight out of the (in a personal installation, user-writable) program folder, but only the copy it has placed in an administrators-only folder. A service start, restart, repair or upgrade re-applies folder permissions only to folders an administrator has already approved, never to whatever the share list happens to name; system folders and other accounts' profiles are refused. The service is verified to run under the LOCAL SERVICE account and is never started under any other. The manager checks that whoever answers on its control channel really is its own sharing program before sending anything, and it no longer contacts the router on its own when the window opens - only when you ask for router details - with the router's text shown as plain text.
  • The administrator steps of the Share Manager say what happened (Share Manager and Server edition). "Grant the service access" said "Done." even when nothing had been granted; it now reports the folders it could not grant and why (a mapped network drive, for example, can never be served by the service - the manager now says so before you add one). Any failure of those steps leaves its reason in the log, and repairing the service updates it in place instead of deleting it first, which could leave the machine with no service at all. The window no longer freezes while such a step runs.
  • Smaller Share Manager fixes. Unexpected errors are written to its log instead of showing a raw error dialog; the main window follows "Stop sharing" from the tray instead of still showing "running"; another copy of the program started once (a portable copy, a download) no longer takes over the start-with-Windows entry; a second Windows account without access to the share is told so instead of "cannot reach the companion"; installing or updating the viewer no longer stops the always-on service's sharing; withdrawing the sharing permission also removes the firewall rule Windows itself added on the first prompt; and the Share Manager now reports the same version as the viewer instead of 1.0.0.0.
  • The elevated sharing helper keeps a record of itself in every outcome (Share Manager and Server edition). When the machine state directory is missing - deleted by hand or by a cleanup tool - a step that succeeded, such as removing the service, used to exit 0 with every log line thrown away; the lines now also go to install-share-service.log in the administrator's %TEMP% on success, not only on failure. A grant ledger that cannot be read is no longer quietly replaced, either: granting stops with a message that says the file is left as it is instead of dropping the record of every approved folder, removing keeps the unreadable ledger and revokes nothing rather than deleting the one record naming the grants, and the ledger is written to a temporary name and swapped in, so a crash in the middle of writing can no longer erase it (new helper exit code 15: the grant ledger cannot be read). Two helper runs on the same state directory no longer race: the second waits up to ten seconds, then changes nothing and exits with code 16; a grant whose ledger cannot be written is taken back (or, if that fails too, named in a protected recovery file next to the ledger) and exits with code 17. A log that stops accepting lines half way now hands the rest to the %TEMP% copy with a visible warning instead of losing them, and a removal that could not revoke every recorded grant (unreadable ledger, a recovery file, a failed ACL change) keeps the ledger and says "completed WITH WARNINGS" instead of reading as a complete clean-up. A helper that is killed half way through granting (a crash, a power cut) no longer leaves folder access that nothing records: before the first change the helper writes a protected intent record beside the ledger, and the next grant or removal reads a leftover one and takes back what the ledger does not name (or names it in a recovery file); a record it cannot trust is kept and reported, never acted on. If that record cannot be written nothing is granted and the helper exits with code 18.
  • Uninstall removes the last two cache folders it used to leave behind (64-bit program). The Ollama downloads folder and the remote-resource cache (%LOCALAPPDATA%\SZA\FastMediaSorter\downloads and remote-cache) stayed on disk after an uninstall and kept the parent folders from being cleaned out. They are now listed for removal like the other caches; your settings and the sharing identity are still kept.
  • "Send the logs to the author" no longer carries your sharing PINs, your folders or your Windows user name. The diagnostic report used to copy every value the program keeps in the registry and hid only those whose names looked like a password. That missed the Share Manager's per-folder settings, which hold the PIN of each protected share and the paths of the shared folders, and it also sent the recently opened folders and files, the last played file and the destination folders of the sort keys. The report now lists only settings known to be harmless - switches, numbers, modes, window sizes, languages - with their values; lists of paths become a count ("3 entries, not sent"), a sort-key destination says only whether it is set, and anything else is summed into one "not sent" line. The per-folder share settings are not mentioned at all. Your user folder (C:\Users\<name>) is replaced by <USER> in the report and in the attached logs. The dialog before sending still lists exactly what is in the archive, and the program still hands it to your own mail client rather than sending anything itself (64-bit program).
  • "Share this folder.." and the "Share Manager.." button work again when the Share Manager is already running (64-bit program). With the manager sitting in the tray, both did nothing at all - no window came forward, no folder was handed over, and nothing was logged. The call that wakes the manager named a Windows function that does not exist, failed on every click, and the failure was swallowed. It now uses the right function, waits at most two seconds for an answer so a frozen manager cannot freeze the viewer too, and if no window takes the request it starts the manager with the folder instead, so the click is never lost. A test now checks every such declaration in both programs against what Windows actually provides.
  • Escape in the settings window closes the settings window - not the whole program. The settings window passes keys on to the viewer so that photos can be flipped while it stays open, and it passed on almost everything: Escape with a checkbox focused closed the program, and D or Delete deleted the file on screen. Only paging keys reach the viewer now (arrows, Page Up/Down, Home, End); Escape closes the settings window, the same as its close box, and D, Delete, X, Q and the sort digits do nothing to the file on screen. Both the 64-bit and the 32-bit programs are fixed.
  • The main window remembers its size when closed maximized (64-bit program). Closing the window maximized or in full screen used to overwrite its normal size with the size of the screen; it now comes back maximized, and un-maximizing returns to the size it had. A window whose monitor has been unplugged opens on the nearest remaining one. The thumbnail panel now remembers its position on monitors to the left of or above the main one.
  • A malformed translation can no longer close the program. Formatting a translated message with a missing value could end the program from inside a click; it now shows the message with a gap instead. Both the 64-bit and the 32-bit programs are fixed.
  • The Share Manager remembers where its window was after "Exit" from the tray. The window saves its position and size when it closes, and "Exit" disposed of it without closing it, so the next start opened it at the old place and size.
  • A caption split across a gap in the page no longer breaks into separate plates for the wrong reason. Where the program could not work out the page's line spacing from enough evidence - two or three lines of text and nothing else - it fell back to measuring the blank between the ink instead. That measurement is misleading on exactly the lettering it was most often applied to: capitals with no descenders sit in a box much shorter than their own line, so the blank looks large and one caption came apart. The line spacing is now always what is measured; with little evidence the program simply allows more slack, and where there is no spacing to measure at all - two phrases side by side rather than one above the other - it keeps them apart instead of merging them into one plate across the picture.
  • The Share Manager now says "update the app" when the sharing worker is newer than it is. The worker and the manager speak a versioned protocol and the worker has always refused a version it does not know; the manager read the worker's version number and compared it against nothing, so a newer worker dropped into an older install was read as though it were the expected one - quietly, with whatever that produced. It now refuses cleanly and names both versions, and that sentence actually reaches you: in the main window, in the window that builds the QR code and settings file, and as a tray notification, and in the Server edition it names the Windows service. Before, the refusal was mistaken for "the worker is not running", so the window said it could not reach the companion and then tried to start a second worker next to the one that had just answered - it no longer starts anything once a worker has answered.
  • The Share Manager now notices when the sharing worker says no. Every request to the worker comes back with a yes or a no, and the manager used to ignore the answer. Three places now read it. If "LAN only" is on and the running worker is too old to understand that setting, the main window says plainly that LAN only is not being enforced and that you should update or turn sharing off - before, the switch looked on while the worker could still open a router port and publish an internet address. If the worker refuses the folder list or refuses to start, you see its reason instead of "started, address not confirmed", and a refused folder list is no longer followed by a start that would have served the previous list. And "Reset counters" says when the reset did not happen, leaving the numbers as they were.
  • A cancelled Windows shutdown no longer erases your ten destination folders (both programs). When a shutdown or sign-out was started and then cancelled (another program held it up and you chose Cancel), the viewer had already half closed itself: pictures turned into a red cross, and a minute of browsing later it saved all ten sort-key folders as empty. It now only saves on the shutdown question and closes itself down only when Windows really goes ahead.
  • Opening a file while the viewer runs as administrator (both programs). With the viewer started from an elevated file manager, double-clicking a picture in Explorer crashed the new launch instead of handing the file over; it now opens in the running window. A file handed to a viewer that is still starting is no longer lost either - the new launch waits a few seconds for it instead of assuming it was delivered. A bare relaunch now brings the window to the front instead of only flashing the taskbar button. At the same time, an ordinary (non-administrator) viewer no longer accepts files and drops from sandboxed low-privilege programs, and only the viewer's own launches can make it open a file.
  • Importing a settings file (64-bit program). After an import, changes made in the settings window were neither applied nor saved until the program was restarted, and the window kept showing the old values. The window now reopens with the imported values and every change sticks. "Allow new windows" is now really taken from the file, as the import summary said.
  • The recent files and folders window opens at once, even with network folders in it (64-bit program). It checked every entry on the disk while drawing it, so a sleeping NAS froze the window for tens of seconds per row, again on every scroll. Entries are now checked in the background, and the folder list shows the newest folder first, like the file list.
  • A language chosen in the Share Manager is no longer switched back by the viewer. The viewer wrote its own language into the shared setting every minute while you browsed.
  • The settings window (64-bit program). Answering "restart now" after changing the interface scale did nothing the first time the settings were opened in a session - and the window then popped up by itself later. Light/dark theme changes are followed after the window has been closed and reopened, and the explanatory tooltips no longer disappear on the second opening.
  • "Use independent thread for file operations" stays on (32-bit program). It silently switched itself off after the settings window had been closed from the toolbar, so copies and moves ran on the window's own thread again.
  • The recent-folders limit is respected (64-bit program). Lowering it - including to 0, "record nothing" - kept every folder already listed and went on recording new ones.
  • "Share this folder.." on a whole drive (64-bit program). With the Share Manager not yet running, sharing E:\ handed it E:" instead.
  • "Send the logs to the author" in every language (64-bit program and Share Manager). The subject and text of the mail went through the old 8-bit mail interface: Hindi and Bengali always arrived as question marks, other scripts were garbled on a PC set up for another region, and a Windows user name in such a script made the attachment "not found". The mail now goes out in Unicode where Windows supports it (Windows 8 and later), the mail editor belongs to the program's window, and closing it without sending removes the prepared archive.
  • Two viewer windows no longer overwrite each other's log (both programs), and starting a second window no longer throws away the previous log file when it cannot rotate the current one.
  • An internal error is now visible (both programs). An unexpected error inside a click or a key used to be written to the log and otherwise hidden, leaving whatever it had half done on screen with no sign that anything went wrong. The status line now says so and points to the log, and more failures around starting, closing, saving the settings and handing files over reach the log in the first place.
  • The toolbar's "»" menus work again, and full screen no longer leaves the toolbar over the photo (both programs). Every line of the two "»" menus did nothing - the buttons that did not fit the window could not be reached with the mouse at all; the menus also kept the previous language after a language switch. After leaving full screen once, the toolbar covered the top of the picture until the program was restarted; inside full screen, a button that appeared later (Translate and Edit on turning from a video to a photo) was invisible and could not be clicked; and a maximized window came back from full screen restored to a smaller size.
  • Background bars go away when they should (both programs). Switching "Perspective" off, a slideshow faster than five seconds, a WMF/EMF picture or zooming in left the bars of an earlier photo framing every following one; the growing halo now dissolves out of the photo that was actually on screen, and the bars keep coming after the clock is set back (the autumn time change used to stop them for an hour). Zoomed pictures no longer build a background image as large as the zoomed picture.
  • The thumbnail panel (F3) stops working when it is closed (both programs). Closing it while it was still loading went on decoding the folder from the first file in the background; Esc during a bulk move or delete closed the window while the files kept moving and could corrupt the panel opened next - the panel now stays open until "N of M" ends; scrolling up no longer makes the view jump and load batch after batch; and a thumbnail that could not be delivered is released at once.
  • Smaller display fixes (64-bit program unless noted). The Edit button is visible on the black background; "Replace with video" shows its symbol instead of an empty box; zooming into a tiny icon no longer makes it smaller; a window saved with its title bar on a monitor that is gone is moved back where it can be grabbed; clicking the zoom readout or Alt+wheel really returns to Fit and forgets the folder's zoom. In both programs the destination list over the picture shows all ten folders plus Delete without scrollbars by default, and a folder named R&D is no longer shown as RD.
  • Damaged settings no longer break the start or fall to zero (both programs). A background colour scheme number the program does not know crashed it on every start; it now falls back to black. A settings number that cannot be read now means its default - a 10-second slideshow, the usual cache sizes, the 15-minute password memory for protected files - instead of 0 or the minimum.

26.9.20.1206

Added

  • The sharing port is now a setting you can see and change - and a number the program guarantees. Until now nobody chose that port and nobody was shown it: Windows handed one out on the very first start and the program then stuck to it, but only mostly. If anything happened to hold that number the next time sharing started, the program quietly took a different one - and from that moment the port-forwarding rule you had typed into your router pointed at nothing, as did every access code (QR) and settings file you had already handed out. Nothing said so; the share simply stopped answering from outside. The Share Manager's settings now show "Port" under "Network", filled with the number sharing actually uses - the same one that goes into the router rule and into every code you hand out. It changes when you change it and at no other time, so it is safe to write down. Next to it, "Find a free one" fills in a port that is free right now, from the range meant for exactly this (below 49152; above that is what Windows hands out to outgoing connections, where any program can take it). And if the port cannot be taken at startup, sharing does not start on some other number - it stays off and says which port is busy, because a share quietly serving on a port nobody was told about looks like success and is not. The rare case where nothing is listening and the port still cannot be used - a range reserved by Hyper-V, WSL or Docker - is named too, with the command that lists those ranges. Changing the port needs no administrator rights and touches no firewall rule.

Fixed

  • Translating a picture with text in two places no longer covers the artwork with one bar. Two speech balloons either side of a figure, two columns of a page, a caption with a note beside it - the text recognizer reads across the picture and hands back a phrase from the left and a phrase from the right as a single line. The translation then arrived as one plate stretched the whole width of the frame, sitting over the drawing between them, with the two texts run together into one sentence that the translator dutifully translated as one - so the damage showed up in every language. The recognizer's output is now cut apart wherever a gap between two words is far wider than the words themselves are tall, and the pieces are put back into reading order column by column, so each balloon or column gets its own plate over its own text and nothing is drawn over the picture. On the reported image this turns one bar across the artwork into two plates that match the two balloons; a two-column page turns into two plates matching each column word for word. A page whose text the recognizer read correctly in the first place is left exactly as it was.
  • The Folder Share Server now puts its shortcuts where you would look for them. Both editions are meant to live under one Start-menu folder named after the product, and the server edition has asked to since 26.8.15 - but an upgrade never moved it. Windows installers remember the folder name a previous install used and treat the one in the package as a mere fallback, so the step that removed the old standalone folder was immediately followed by the shortcuts being recreated inside it again. There was no folder to choose in the first place (the wizard does not ask), so nothing needed remembering, and the name in the package is now the one that is used. The server edition also offers a desktop icon, ticked by default: it has no file association, nothing opens it by double-clicking a document, and its Start-menu entry sits under a folder named after the viewer - which is not where anyone looks for a server they just installed. In the ordinary edition the same icon is offered for the Share Manager, unticked, next to the existing viewer one. And the leftover "Uninstall .." shortcut in a language you no longer use is cleaned up: that name is translated, and a machine reinstalled in two languages kept both copies.
  • The Folder Share Server now leaves its console reachable after a restart. On a machine running the sharing service, a reboot brought the service up, made the folders reachable - and left nothing on screen: no icon next to the clock, no window, and no hint that a Share Manager existed. The manager's own "Start at Windows logon" is off by default, which is right for the ordinary edition where the manager is a tool you open, and wrong for the server edition where that icon is the only way back in. It is now switched on by itself the first time the manager runs on a machine hosting the service - once per account, and never over a decision already made: if you have ever switched that entry off, or on, in Windows own startup list, it is left exactly as you set it. Separately, if Windows has switched the entry off, the settings now say so. Windows does not remove such an entry, it keeps it and quietly refuses to run it, so the checkbox went back to being unticked and read as "you never turned this on" - the same picture as never having asked for it, which is how a machine ran for weeks with a live share and no console. The "Startup" section now names that state on its folded summary line and explains it under the checkbox, and ticking the box again restores it.
  • Updating the Folder Share Server through winget no longer fails before it even starts. Setup looked for a running Share Manager and refused to go any further while it found one - and on this edition that manager sits in the tray from logon, which is the whole point of it, so it practically always did. Run by hand, that was a prompt asking you to close a program which closing only returns to the tray. Run unattended - which is what winget upgrade is - the prompt was answered "Cancel" on your behalf, and the update stopped with an error before a single file had been touched, every time. The check was also looking too early: it runs before the step that actually clears the way, and that step already stops the service, the manager and the sharing worker, in that order. It is gone, and an update now waits on that orderly shutdown instead.
  • Reinstalling the Folder Share Server no longer changes the sharing port. The shared folders, the identity paired to your phones and the password all survived a reinstall, which is why the port going missing was so hard to see: everything looked untouched, but the number your router forwards had quietly become a different one, and connections from outside stopped arriving. Two separate things did it. Every install, not just the first, copied the state left over from the non-service edition over the state the service was actually running on, rolling the port (and the share list and the counters) back to whatever they had been at some earlier point; that copy is now made once, when there is genuinely nothing to keep, and after that the running state is left alone. Separately, the sharing service gave up on its own port after a single attempt - which it can lose to its own previous copy for a fraction of a second during an upgrade - and rebound elsewhere. It now retries for about two seconds first, which is all that race ever needed.
  • "Internet access works" no longer claims more than it checked. Pressing "Test internet access" dials your router's external address from this same PC, so the request turns around inside the router and never reaches the internet: it proves the forwarding rule points here, and says nothing about whether your provider lets an incoming connection in. It reported a green "Internet access works" anyway - which could sit directly under the honest line saying the outside world got no answer. It now says what it actually found ("the server answered on the external address, but the check never left your network") and points at the only conclusive test: the phone with Wi-Fi off, on mobile data. The genuinely external check, made from outside by the sharing service itself, is unchanged and is still what the "Internet access" section reports.
  • The sharing window no longer guesses "there is no forward on the router" when it knows there is one. When the port had been opened automatically (UPnP) and the outside check still got no answer, the window blamed the missing router rule - the one thing it could see was not missing. It now names the likely cause in that case: incoming connections blocked further upstream, at the provider. The old wording stays for when there really is no forward.
  • Changing a sharing setting no longer resets the connection limit and the "local network only" switch. Whenever the sharing service had to move to a new port, it wrote the new number into its settings file by replacing the whole file, so both of those choices silently went back to their defaults.
  • A shared folder whose subfolders the sharing service cannot read no longer fails silently on the phone. A phone opened a shared folder holding 758 files and got an empty list. Nothing on the PC was wrong as far as the PC could tell: the shared folder itself was readable, and every check the Share Manager made looked at that folder and no further. Four folders deep inside it had been created by another program with cut-down permissions, and the account the sharing service runs under - which is not the account you are signed in as - could not open them. Three things changed. Adding or switching on a shared folder now looks inside it as well, lists any folders that will not be visible on the phone, and offers to repair them in one step; the check is time-limited and says plainly when it did not get to the end, rather than reporting a clean result it never finished. The access code (QR) is no longer offered for folders that cannot be served - it is held back entirely when none of the chosen folders can be read, and when only part of a tree is affected the code is still shown with the number of folders that will not open stated next to it. And the repair now reaches the whole tree: permission is re-applied at every folder inside a share that had inheritance switched off, which is where the original grant had always stopped without anyone noticing.
  • The sharing service now records a folder it was refused, and tells the phone the real reason. A refused folder produced a generic "failure" that a phone cannot act on - it reads the same as a broken connection, which is why the client gave up on the entire folder scan instead of skipping one folder - and it was written to no log at all, so the PC held no trace of what had happened. The service now answers "permission denied", which is what actually happened, and writes one line naming the folder and the operation to its own log. The rest of the shared folders keep working throughout, as they always did.

26.9.1.1550

Added

  • A music file now gets a screen of its own (64-bit program). MP3, WAV, M4A, WMA and OGG used to travel through the video path and show a black rectangle - the file was playing, but the window had nothing to say about it. Audio is now its own kind of file: the embedded album cover fills the window when the file carries one, and when it does not, a wave-and-particle animation stands in for it. Along the bottom sits a plate with the title, the artist and the album as the file itself spells them, plus the plain facts underneath - codec, bitrate, sample rate, length and size. A new "Audio behaviour" section in Settings decides the rest: what happens when the track ends (next file, stop, or repeat), whether the transport panel stays visible instead of hiding itself, whether the visualiser is drawn at all, and a sleep timer of up to three hours that stops playback and says so. The 32-bit program for Windows 7/8.1 is unchanged.
  • Video and audio can each be left out of browsing entirely (64-bit program). Sorting a folder of photographs that happens to contain a few clips meant stepping through those clips. Settings -> "Video behaviour" and "Audio behaviour" now each carry "Take video/audio into account when paging through files": switch one off and files of that kind are neither shown in the current folder nor counted in N/total, so the loop is only what you came for. Both are on by default, which is exactly the behaviour that existed before. The same two pages also expose the preferred audio and subtitle track language as a plain setting instead of only remembering the last one you picked with A or V; when a file has no track in that language the player still chooses for itself.
  • An animated picture can now be turned into a real video (64-bit program). With an animated WEBP, APNG or GIF on screen, a new toolbar button - and a "Replace with video.." entry in the picture's middle-click menu - converts it into an MP4 next to it and deletes the animation. The result is ordinary H.264 video, so it has a seek bar, a pause, hardware decoding and full colour, none of which an animation has - and the 256-colour GIF the program builds internally to play an animated WEBP stops being what you keep. The video encoder (FFmpeg, free software under the GPL, about 110 MB) is not bundled: the first conversion asks whether to download it, names its size and its licence, and a No simply cancels - nothing is remembered as broken. Because the original is deleted permanently, past the Recycle Bin, the program says so before it starts, names both file names, warns when a transparent picture is about to be flattened onto black, and offers a "Do not ask again" box that Settings -> "Files and system" can switch back on. Nothing is deleted until the video exists at its final name: cancelling, a failed encode or a read-only folder all leave the animation exactly where it was, and an existing name.mp4 is never overwritten - the new file becomes name (2).mp4.
  • A destination folder that does not exist yet is created on the first transfer (64-bit program). Sorting into 2026-08/best used to mean leaving the loop, making that folder in Explorer, coming back and finding your place in the list again - the program had never once created a destination. Now, when only the last folder of a destination is missing and the one above it answers, the first move or copy makes it and says so. Only the last one, and only when its parent is really there: a mistyped share name is refused, never built. Settings -> "Files and system" -> "Create a missing destination folder" switches it off, and a missing destination is then simply reported as not found. The 32-bit program for Windows 7/8.1 is unchanged.
  • A ZIP or CBZ archive can now be opened and closed from a menu, and its cache limit actually works (64-bit program). Right-clicking the folder box now offers "Open archive..", and, while inside one, "Close archive" - the entry points the archive feature always meant to have alongside drag-and-drop and the command line; the file-open dialog gained an "Archives" filter group too. Settings -> "Files and system" grew three archive rows: how much disk space one open archive's temporary extraction may use, the ceiling on a single entry, and the ceiling on how many entries a huge archive shows - and the cache one is no longer just remembered, it is enforced: the least-recently-used extracted pages are dropped once the budget is reached, always sparing the page on screen and its immediate neighbours, so browsing never stalls even with the limit set low. 7z, RAR and CBR are not opened.

Changed

  • A destination folder that is switched off, asleep or gone now says so on the first press, instead of on the twentieth timeout (64-bit program). A destination folder was never checked - not when it was read at startup, not when it was picked, not when it was typed in. So sorting into a NAS that had gone to sleep felt like it was working: each press queued a transfer, took the file out of the list at once, and then waited out a full network timeout on its own - and a minute later twenty failures arrived one after another, each putting a file back into the list in an order that had nothing to do with what was on the screen. The folder is now asked once, in the background and with a two-second limit, and a folder that cannot answer produces one sentence that names the key and the reason - no connection, not found, no access, invalid path - with nothing queued and nothing taken out of the list. The answer is remembered, so the twentieth press is as instant as the first, and pressing the same key twice in a row asks again - that is how you say "the NAS is awake now" without going anywhere. The floating recipients panel dims a folder it knows is unreachable and gives the reason in its tooltip, and the destinations table in Settings tints the same rows; neither of them ever checks by itself, so opening either costs nothing. A folder that is fine costs nothing either way, and a folder that dies between the check and the transfer still fails the way it always did - the check makes the common case honest, it does not promise the future.
  • A failed file operation says what went wrong instead of quoting .NET (64-bit program). "Operation error: E014 Could not find a part of the path .." is a sentence about the program; it is now a sentence about your folder - not found, no access, no connection, invalid path - with the path named. The exact exception still goes to the log, which is what "Send the logs to the author" collects, and a failure of a kind nobody has classified keeps the old loud wording with its code, so nothing new becomes quiet.
  • An animated WEBP, an AVIF or a HEIC opens instantly the second time (64-bit program). These formats have no Windows codec, so the program decodes them itself - seconds of work for a large animation, which is why the "Loading.." badge exists - and until now it threw that work away the moment you moved to the next file. Going back, reopening the file tomorrow, or opening it in a second window paid the full price again, every time. The result is now kept on disk and reused whenever the file has not changed, so the badge appears once per file instead of once per view, and walking a folder forwards fills the cache for the walk back. Settings -> "OCR and translation" shows how much space it uses, empties it on request, and sets its limit (512 MB by default; 0 switches it off and restores exactly the old behaviour). JPEG, PNG and BMP are not cached - Windows opens those in milliseconds and there would be nothing to save. The 32-bit program for Windows 7/8.1 is unchanged by either of these.

Fixed

  • FILE / F4 now opens the file you picked. Choosing a file in that dialog could leave the previous picture on screen as though nothing had been selected. The dialog took a shortcut through the program's own file-opening path and skipped the step that makes the chosen file the current one, so the display could still resolve the old entry. It now goes through exactly the same route as a file opened from the command line, dropped onto the window, or picked from the recent list - which also means a file on a sleeping network share no longer freezes the window while it is checked, a file still being downloaded is opened by itself once it unlocks, and a failed open leaves the picture you were looking at untouched instead of emptying the window. Both programs.

26.8.19.0130

Added

  • A HOW TO section on the site, and five new guides in it. The site had three guides and no place that listed them; there is now a "HOW TO" block on the front page, on every one of the twelve translated pages, in both READMEs' usage sections and inside each guide, so any one of them leads to the rest. Five guides were written for what had none: the whole key map with zoom, full screen and the slideshow; the first-time setup - default viewer, interface language, and what happens to a file when a name collides or a folder has no Recycle Bin; recognizing and translating the text on a picture, with the translator that runs on your own PC; the image editor - draw, crop, and save over the original or beside it; and reading a ZIP or CBZ as if it were a folder. The guide pages are in English and Russian.
  • The program can now reopen the file you were watching, and pick a video up where you stopped (64-bit program). Settings -> "Files and system" -> "Resume the last file", off unless you switch it on. With it on, starting the program without a file opens the exact file that was on screen last time, with its whole folder listed behind it, so the arrows, the slideshow and the N/total counter work straight away - and a video carries on from the position it was left at, which the program has always remembered during a session and until now threw away on exit. The "Open at startup" row above it was never able to do that: it restored the *number* of the file inside the folder, so deleting, renaming or re-sorting anything earlier in the list reopened a neighbour instead. If the file has since been deleted or renamed, or sits on a drive that is switched off, the window simply stays empty - no dialog and no red line for something you never asked for - and the remembered path is kept, so the same file opens again once that drive is back. Opening the program by double-clicking a file always wins over the memory, a page inside an archive is never remembered (it does not exist by the next start), and clearing the history clears it too. The 32-bit program for Windows 7/8.1 is unchanged.

Changed

  • The Folder Share Server now sits in the same Start-menu folder as the rest of the program. Its installer used to make a second folder of its own, so a machine with both editions installed showed "Fast Media Sorter Folder Share Server" standing on its own next to the "Fast Media Sorter for Windows" folder that holds the viewer, the Share Manager and the uninstaller. The server's shortcut and its uninstaller moved into that same folder, and the old folder is removed when you upgrade. Nothing else about the two editions is shared - each keeps its own entry in "Apps & features", its own install folder and its own winget package, so updates still go to the right one.

Fixed

  • The recipients panel over the picture is back (64-bit program). The floating list of destination folders - the one you click instead of pressing a digit - stopped appearing in 26.8.13 and has been missing from every version since. It was made see-through in that release so the picture shows through it, and Windows refuses to create a see-through panel *inside* another window at all: the panel was never built, silently, and switching the setting on did nothing. It is now a small window of its own, which Windows composes properly - so it is see-through as intended, it floats over a playing video as well as over a picture, and it follows the program when the window is moved, resized or minimized.

26.8.15.1510

Added

  • The settings that were listed but did nothing now do what they say (64-bit program). Five rows in Settings had been storing a choice and changing nothing about the program: they are now wired to the behaviour they name. "Scale of a new image" decides how the next picture opens - fitted as before, at 100 %, or at the scale you last used *in that folder*, remembered for the last fifty folders. "Reduce animation" switches off the halo's growth animation, and is switched on by itself for as long as Windows says animations are off - without overwriting your own choice, so turning the system setting back on brings the animation back. "Interface during the slideshow" hides the toolbar, or the toolbar and the status bar, while a slideshow runs; moving the mouse brings them back for a few seconds without stopping the slideshow, and leaving the slideshow restores them at once. "Interface scale" - a new row - sets the font and control size of the settings window itself, from 90 % to 150 %, and offers to reopen the window so the change is visible rather than promised. And the preferred audio and subtitle languages are drop-downs over the program's language list instead of a box to type a code into; picking Russian now matches a track that calls itself rus, which typing ru never did.
  • Keyboard shortcuts can be reassigned (64-bit program). Settings -> "Files and system" -> "Keyboard shortcuts" opens a compact window listing every action the keyboard drives - navigation, the slideshow, rotation, deletion, zoom, OCR, and each of the ten destination folders - with the combination it answers to. Select an action, press the combination you want, and it is taken; the key it was moved off stops doing the old job, which is the part that makes a reassignment real rather than an extra key doing the same thing. A combination somebody else already holds names its owner and offers to swap the two or to leave that action without one. Windows' own combinations cannot be taken, and neither can F11 and Esc - full screen and getting out of it stay where they are. "Reset" puts one action back, "Reset all" puts back the lot, and Esc leaves the capture field without recording anything. A profile that has never opened this window behaves exactly as before.
  • "File types", "Recent files and folders" and the OCR cache got the windows they needed (64-bit program). The file-type filter was a text field of semicolons; it is now a dialog with checkboxes grouped into images, video, audio and the remaining supported formats - tick a group or a single format, and leaving everything ticked means "all supported", including formats a later version adds. The history limits sit next to a new "Open the history" button: a window listing the recent files and folders, where an entry can be opened, dropped on its own, or the whole list cleared - and a path that no longer exists is shown greyed rather than quietly disappearing. The OCR cache row now states how much it occupies on disk and offers to clear it, which until now could only be done as a side effect of opening the translation tab.
  • Importing settings asks what to do with them, and exporting asks before it includes anything personal (64-bit program). An import used to replace the profile outright. It now reads and validates the file first, lists what would change, and offers Replace or Merge - the second keeping every local choice the file does not actually override, so a file exported from a fresh profile cannot reset the rest. The previous profile is written beside the imported file as a .backup before anything is touched, and a file that turns out to be unreadable changes nothing at all. Export still leaves out folder paths and playback positions by default; a separate, deliberately explicit checkbox includes them and warns what that means. API keys and passwords are never exported either way.
  • U now takes back more than one operation, and covers renaming too (64-bit program). Undo used to remember exactly one move or copy, and only that: press it twice and the second press said there was no history. It now walks back through the last 50 operations, most recent first, each file returning to the folder *and the position in the list* it came from. F6 renaming joined them - a mistyped name is one keypress away from being put back, where before it was permanent. A deletion is one of the operations it takes back. Press U after DEL and the file comes out of the Recycle Bin - back into its folder, back to its position in the list, and back on the screen. If the name has been taken in the meantime the file is returned beside it and the status line says under which name; if the folder it came from has since been deleted, that is said plainly and nothing is recreated behind your back. And where there was nothing to bring back, U says why rather than pretending there is no history: the Recycle Bin was emptied in between, or the deletion was permanent for a named reason - your own Shift+DEL, or the network drive that has no bin at all. An operation that failed now leaves nothing behind either: the old history was written before the work ran, so a move that could not complete still offered to "return" a file that had never left.
  • DEL now sends the file to the Recycle Bin - and says so honestly when it cannot (64-bit program). Deleting used to be final everywhere, and the question it asked said as much. It now goes to the Recycle Bin on an ordinary disk, so a wrong keypress is one press of U away from being put back - or a trip to Explorer, whichever you reach for first. Shift+DEL deletes past the bin on purpose, the way it does everywhere else in Windows. The honest part matters more than the bin itself. Windows keeps no Recycle Bin at all on a network share or a memory stick - and those are exactly the folders a sorter is opened on. The program checks where the file actually lives before it asks, and the question names the reason: to the Recycle Bin, or permanently *because it is a network drive*, *because it is removable media*, *because the bin is switched off for this drive*, *because the file is larger than the bin holds*, or simply because you held Shift. The line in the status bar afterwards says the same thing as the question did, so "deleted" is never ambiguous about what happened. Nothing about the deletion itself changed where there is no bin - the file goes, as it always did; only the message stopped pretending otherwise. The picture panel (F3) follows the same rule for a whole selection, deciding once for the folder rather than asking per file, and taking the permanent wording when a selection spans places that differ. Deleting inside an archive still refuses, as before. The 32-bit program for Windows 7/8.1 is unchanged: there DEL is still final. The question before a deletion is now its own setting, on Settings -> "Files and system", with a third answer that was not available before: ask always, ask only when the file will not go to the Recycle Bin, or never. That middle one is what a fast sorting session wants - filing away hundreds of pictures with a question in front of every one of them is what made people switch confirmations off entirely, and switching them off meant losing the question in front of the one deletion that cannot be undone. Above it sits a switch for the Recycle Bin itself, for anyone who would rather DEL always be final; turn it off and the program says the deletion is permanent *because you asked for it*, which is the truth. If you had previously ticked the general "no confirmations" box, deleting stays silent exactly as it was - your setting is carried over rather than reset, and from then on the two are independent, so silencing one no longer silences the other.
  • A ZIP or CBZ now opens like a folder (64-bit program). Drag a comic or a folder of scans onto the window - or pass it on the command line - and its pictures appear as an ordinary file list: the arrows flip through them, the slideshow runs, zoom, the perspective background and the on-image translation all work exactly as they do on loose files. Nothing is unpacked in advance and nothing is left behind: the program extracts the picture it is about to show plus the next one, into a private folder of its own, and deletes that folder the moment you leave the archive or close the program. If the program is ever killed outright, the leftovers are swept away the next time an archive is opened - so a browsed archive never costs you disk space you have to find and clean yourself. The archive itself is opened read-only and is never modified. Because of that, the file operations - DEL and the 0..9 destination folders - say so instead of acting while you are inside one. Entries that are not pictures or video are ignored, as are the resource forks a Mac adds to every ZIP; an entry that names its way out of the folder (..\..\Windows\...) lands under a safe name inside the private folder like any other, and an entry that would expand a hundredfold is refused before a byte is written. A password-protected or truncated archive gets one plain message rather than an empty window. 7z, RAR and CBR are not open - they need a different reading strategy; a .zip on Windows 7/8.1 (the 32-bit program) still answers "Unsupported format", as it always has.
  • A picture can now be marked up in its own editing window and written back to disk (64-bit program). Until now the program could read images and never write one: R turned the picture on screen and left the file untouched, and circling something before sending it on meant a trip to Paint and back. A pencil button next to the translation buttons - and an "Edit.." entry at the top of the middle-click menu - opens the picture in a separate window. Both appear only for a still picture; a video or a running animation has neither. The toolbar holds a brush, a rectangle and an ellipse, each outlined or filled, with a colour (eight one-click swatches next to the full Windows colour picker) and a line thickness. Hold Shift while dragging a shape for an exact square or circle. Ctrl+Z and the Undo button step back through what you have drawn; Esc during a drag abandons that stroke rather than the window. The line thickness is in the picture's own pixels, not the window's, so the same setting draws the same line whatever size the window is. Closing with unsaved work asks first - and that question is deliberately not silenced by the "no confirmations" setting, which is about file operations rather than about work that exists nowhere else. Cropping is there too - the thing most trips to Paint are actually about. Pick the crop tool and drag a frame: everything outside it dims, so what you are keeping is what you see. The frame then stays and waits - drag it whole, pull any of its eight handles, take as long as you like - because nothing is cut until you say so, with Enter, a double click inside the frame, or the "Apply crop" button that appears only while there is a frame to apply. Esc takes the frame away. Undo puts the picture back at its old size, and the cut itself is exact: the pixels you kept are the pixels that were there, untouched and unresampled, transparency included. Your photo's EXIF is carried over with the recorded picture size corrected to the new one, and the embedded thumbnail - which still shows the *uncropped* frame and is what Explorer would have preferred - is dropped. Save writes over the original; Save as.. puts the result beside it in any of the six formats the program writes (PNG, JPEG, BMP, TIFF, WebP). Three things are deliberate about how it writes. Your photo's EXIF - the capture date, the camera, the coordinates - is carried across, which a naive re-save silently erases; the embedded thumbnail is dropped instead, because it is a picture of the file *before* the edit and Explorer and phones prefer it to the real pixels. The result is written beside the original and swapped in, so a share that blinks or a disk that fills leaves the photo whole rather than half of it. And Save is switched off, with the reason in plain words, when the original cannot be replaced - a read-only file, a format the program deliberately does not write (GIF, ICO, WMF), or a file another program is holding - while Save as.. stays available in every one of those cases. Re-saving a JPEG asks once per session before it re-compresses, since that part cannot be undone. Two things this window deliberately does not do. It never zooms or scrolls: the picture is always fitted to the window, which on a 24-megapixel photo means one screen pixel covers about five of the picture's - enough to circle, crop and point at something, not enough to retouch it. And it does not add text.
  • The Share Manager now has its own entry in the Start menu. The program that drives folder sharing - and, on a machine running the always-on service, manages it - could only be reached from inside the viewer or by its tray icon. Close that icon, or have the logon autostart not fire, and there was no way left to open it short of hunting down the exe in Program Files. It now sits in the program's Start-menu group next to the viewer itself, and clicking it opens the manager window instead of starting it silently into the tray - which is what clicking a Start-menu item is asking for.

Changed

  • The Share Manager's folder buttons now say what they do and switch off when they cannot do it. The button that opens a shared folder's parameters was called "Options.." and stayed clickable with nothing selected, where it silently did nothing; it is now called Edit, in all 13 languages, and is available only while a row is selected. The list also keeps a row selected for you - the folder you added or edited last, or the most recently added one when the window opens - so the button is ready rather than greyed out on arrival. The settings button beside the header was a bare gear icon; it now carries the word Settings next to it.

Fixed

  • The frame around a photo blinked off between pictures (64-bit program). With the animated halo on, every press flipped the background to flat colour first and only then grew the new frame across it - so the frame went out and came back on each file. The frame that is on screen now stays there and dissolves into the new one as it grows, so nothing goes blank between two photos. Once the growth has finished the picture is identical to what it always was, down to the pixel - only the way it gets there changed.
  • The "Tracks" button sat in the toolbar of an empty window (64-bit program). It is meant to appear only while a video with something to choose between is playing - more than one soundtrack, or any subtitles - and to disappear again over the next picture. It did both, but only from the first video onwards: before anything had ever been played, the button was simply there, on an empty window and over still pictures, and clicking it opened an empty menu. It now starts collapsed like the other buttons that depend on what is on screen.
  • A brief network hiccup used to shred the file list of a perfectly healthy folder (64-bit program). Sorting off a network share or a NAS, a few seconds of the connection dropping was enough: every file the program failed to read was thrown out of the session's list before anything asked *why* it had failed. So one press of Space removed one file, the automatic skip moved to the next, that one failed for the same reason and was removed too, and the chain ran until the program announced "No readable files in this folder" - about a folder in which every file was fine. The list and your position in it came back only by re-reading the folder, and any file you had passed was silently no longer there to go back to. A failed read is now classified before anything touches the list. A file that will not decode is still dropped, exactly as before - that is what the skip is for. But a dropped connection, a share that stopped answering, a file another program is holding open, or a read that takes so long it has to be abandoned all leave the list untouched: the program says what happened, stops skipping instead of running down the folder, and keeps the file. When the share comes back, the next press carries on where you were, with all your files still in the list. The same question is now asked in the one other place that removed entries - the check that runs when moving to the next file, which on a dropped share is the one that fires first. The 32-bit program for Windows 7/8.1 is unchanged.
  • Switching folder sharing to the always-on Windows service could leave every shared folder unreadable while the app reported that sharing was working. The service runs under its own Windows account rather than yours, so every shared folder has to be granted to that account - a step the Share Manager performs when you pick a folder, and when you make the switch from inside the app. The Server edition's installer had no folder list to pass on, and that was read as "there are no folders yet": true for a first installation, but not for the case that installer explicitly supports - installing over an ordinary installation that was already sharing. There the folder list came across with everything else, the service started, published all of it, and had permission on none of it. On the phone every folder refused to open; on the PC the Share Manager showed the green "Sharing from this PC is on" with the internet address next to it, and nothing anywhere said what was wrong. Three things change. The installer now grants the folders it has just migrated, before the service starts, so the share never comes up in that state. Every start, restart and repair of the service grants whatever the share list holds, so an installation that already came up without those permissions heals itself instead of staying broken until somebody finds the right button. And the app no longer calls that state working: while any shared folder is unreadable by the service, the status line says so instead of turning green, the folders in question are marked in the list and explain themselves on hover, and opening the Share Manager offers to put it right with one administrator prompt.
  • Two rows in Settings -> "Files and system" showed their internal names instead of a caption. The rows that export and import your settings to a file read settings_export and settings_import - in every one of the 13 interface languages, right next to correctly translated buttons. Both now have a proper name and a line explaining what they do: the export deliberately leaves personal data out, and the import saves your previous profile beside the file it reads.
  • "Start with Windows" could stay ticked while Windows was quietly refusing to honour it. Switching a startup item off in Task Manager - or in Settings -> Apps -> Startup - does not delete the entry a program wrote. Windows leaves it exactly where it is and records a veto beside it, then skips it at every logon. The Share Manager only ever read the entry itself, so it reported autostart as on: the setting looked right, the entry was right, and no tray icon appeared at logon, morning after morning, with nothing anywhere to point at. The checkbox now reports whether the program will actually start, so a veto shows up as unticked; and ticking it lifts the veto instead of rewriting an entry Windows had already decided to ignore.
  • The longest caption in the Settings window was cut off when the window was wide enough to show two columns. "After copying or moving" needed four pixels more than it was given, so its last letters were clipped at a specific range of window widths. The gap between a caption and its control was wider than the row's own margin; it now matches, which gives every caption in every language those pixels back.

26.8.14.1510

Changed

  • Setup's "turn folder sharing on" checkbox is no longer greyed out when you install without administrator rights. It used to be disabled with a note telling you to enable sharing later from the Share Manager, because switching sharing on writes a Windows Firewall rule. But that rule is the *only* part of the installation that needs administrator rights, so withdrawing the whole option was too blunt. Tick it now and everything installs as usual; at the very end Windows asks for approval once, for that one rule. Decline it and the program is still completely installed - it says so plainly and points at where to switch sharing on later, which takes the same single prompt. Unattended installs are unchanged: that page is never shown there, so nothing is ever enabled - and no prompt ever appears - unless a person ticks the box.
  • Setup's options page no longer runs off the bottom of the window. The recommended companion project (doc-html-translate) took a heading, a paragraph and a bare winget command line at the end of that page, and on an ordinary display the text was cut off mid-sentence - so what the reader actually saw was a truncated advertisement with the link below the edge. It is now a single link in the same list as the two Android links above it.

Fixed

  • On a PC that has the separate Server edition, uninstalling the ordinary app could offer to remove a service that is not its own. Both now stage their worker in the same machine folder, so the path alone no longer identifies whose service it is; the ordinary installer now recognises its own role by the absence of the Server edition and leaves that product's service alone.

26.8.14.1400

Added

  • Round-the-clock folder sharing no longer needs a second download. Serving folders after a reboot, with nobody signed in, meant installing a separate Server edition - a different package for what is the same program doing the same job under a different host. Now the Share Manager can make the switch itself: "Manage hosting.." -> "Switch sharing to a Windows service..". One administrator prompt performs the whole move and says beforehand exactly what it will do: your folders, settings and the host key move into the machine-wide store, the service is registered and started, a firewall rule is added, and the folders you already share are granted to the service account - which is a separate account from you, and the step most easily forgotten when it is left for later. The host key is never re-issued, so phones that are already paired keep connecting. Coming back is the same window's "Return to the User edition..". The separate Server edition remains, unchanged, for machines that are set up without ever opening the app; the Microsoft Store version cannot register services and says so, pointing at the installer from the site.

Fixed

  • Installing through winget left you with the bare viewer - no offline video codecs, no OCR language models, and no folder sharing at all. The installer offers those three as optional parts, and then refused to write any of them unless Setup was running with administrator rights. An unattended install never is: winget starts the package silently and without elevation, which is exactly the case that was being excluded. So you downloaded the full package - around 370 MB - and what reached the disk was the two viewer programs and nothing else. The codecs and the OCR models at least healed themselves by downloading on first use, but the Share Manager and its sharing worker had no such path: the button reported that the program should be reinstalled, and reinstalling it the same way produced the same result. None of those parts ever needed administrator rights - they are ordinary files, and a personal install writes them into your own folder like everything else. They now install in both cases, and the components page in the wizard is a free choice in both as well, instead of being locked to "viewer only" without administrator rights. Administrator rights are still asked for exactly one thing, and only if you want it: turning folder sharing on, which adds a Windows Firewall rule - that stays a deliberate choice, in the wizard or later in the Share Manager.
  • On a machine running the always-on sharing service, the app could never be updated again through winget. The installer refuses an unattended install when it finds that service, so the state of a working server is not changed without a word - but it applied that to updates as well, and winget passes no flag to say otherwise, so winget upgrade failed every time, for good. An update of an installation that is already on the machine now proceeds: it replaces viewer files and touches nothing the service owns. A first unattended install still stops, so a deployment script cannot quietly add a second sharing host to a server.
  • Removing the app no longer leaves a sharing server running with nothing to manage it. If folder sharing was switched to the Windows service, uninstalling now offers to take that role away too, in the same step. Say no and it keeps serving exactly what you published; either way your settings and the host key stay, so a later reinstall does not mean re-pairing the phones.

Changed

  • When the sharing component genuinely is missing, the program now offers to fetch it instead of saying "reinstall". Sharing is an optional part of the installer, so a perfectly healthy installation can be without it - a compact install, a cleared checkbox, or any of the unattended installs described above. "Please reinstall" was both vague and, for the most common cause, wrong: reinstalling the same way brought back the same gap. The message now says which component is missing, explains that running the full installer over the current version adds it with your settings kept, and offers to open the download page.

26.8.13.2350

Added

  • Share Manager: a click on the enlarged QR code now also saves it as a picture and puts it on the clipboard. Until now the code could only be looked at - to get it to someone you had to photograph the screen or save the .fmscfg file and explain what to do with it. Now the same left click that enlarges the code also writes it as a PNG into Pictures\Fast Media Sorter\ and refreshes the clipboard, so Ctrl+V in Telegram, WhatsApp, Word or an email pastes the code as an image, and Ctrl+V in Explorer or an attachment area drops the file itself. Nothing is taken away: the click still steps the zoom, and repeated clicks overwrite the same file instead of leaving five copies. The picture is the code's own clean square - at least 512 pixels, never smoothed, with its white margin kept - regardless of how far the window happens to be zoomed. Ctrl+C copies without writing a file and Ctrl+S writes without touching the clipboard. Since the code is the key to your folders, the first save says so once, and if the Pictures folder cannot be written the picture goes to a temporary folder and the window tells you where.
  • The halo around a photo can now appear at three speeds, and by default it is twice as fast as before (64-bit program). When "Perspective background ▸ Dynamic halo ▸ Animated" is on, the halo grows out of the photo's edge every time a new picture opens. That growth used to take a fixed third of a second, which on a fast sorting run meant the background was still catching up when you had already moved on. A new "Halo animation speed" drop-down sits right under the Animated checkbox with three choices: Slow is exactly the old timing, Medium is twice as fast and is what you get now, and Fast is four times as fast. Only the arrival changes - the halo looks identical once it has settled, at every speed, and window resizing and zooming still draw it instantly as before. The setting is remembered, and changing it applies to the next photo rather than jolting an animation already under way.

Changed

  • The translation plate now takes its colours from the picture underneath it (64-bit program). It used to be the same nearly-white rectangle with black text on every image, which on a dark page or a coloured panel was the most obvious blemish the feature had. The program now samples the paper and the ink from the area the text occupied and paints the plate in those, so a translation over a dark comic panel stays dark and one over a yellowed page stays on paper. Heavy display lettering, where the strokes cover more of the box than the background does, would fool a naive reading into painting everything inside out, so the decision is made from what surrounds the block rather than from the block itself; and if the pair it finds would be too faint to read, it falls back to plain dark-on-light or light-on-dark rather than producing a pretty, unreadable plate. Your overlay transparency setting still applies exactly as before. The 32-bit program keeps the old light plate.
  • Zooming and resizing a picture full of translated text got noticeably lighter. Choosing the size of the overlay text used to walk down from 200 pixels one pixel at a time, measuring the text at each step, for every block, on every single frame - up to about a hundred and ninety measurements per block whenever the window was resized or the picture zoomed. It now tries about nine sizes instead, stepping down by eight per cent from the size of the original text.

Fixed

  • A speech balloon comes out as one plate again, and a heading is no longer glued to the paragraph under it. One balloon regularly broke into two or three plates. The program measured the empty space between the recognized boxes, and a line set in small capitals has no descenders, so its box is visibly shorter than the line and the space beneath it looks like a paragraph break. The translator then got three fragments instead of one sentence, so it was not only the layout that suffered but the translation itself. Lines are now grouped by the distance from the top of one line to the top of the next, which does not care how tall the ink happens to be, and a line joins a plate only if it is set in roughly the same size - which is what keeps a headline from being swallowed by the text below it.
  • A screenshot or a form no longer arrives as one plate covering most of the picture. When separate areas of a page are set in one size, at one spacing, in one column - a list of accounts, a form, an application window - nothing about any single line says where one area ends and the next begins, and the whole page was coming back as a single plate covering four fifths of the image with the original completely hidden behind it. Such a plate is now split into one plate per line. Nothing is thrown away in the process: every recognized line still gets its translation, and an ordinary paragraph or a large dense inscription is left as the one plate it should be.
  • A long translation no longer loses its tail, and the text no longer spills outside its own plate. If the translation did not fit, the end of it was quietly cut off and nothing said so. The program now first reduces the text size, then lets the plate grow downwards - never past the edge of the picture and never into the plate below it, so plates cannot overlap - and only if neither is enough is anything trimmed. Separately, on a block less than eighteen pixels tall the text used to be drawn taller than the plate it belonged to, above and below it, straight onto the picture: the plate and the text now occupy one and the same rectangle, so that cannot happen.
  • Fewer plates of nonsense. A block is now dropped when it is a run of consonants with no vowel anywhere, or a bare web address, e-mail or file path - text the recognizer produces from a texture or a watermark rather than from writing. Japanese, Chinese and Korean are judged by their own rule instead, and scripts that do not write vowels at all - Arabic, Hebrew, Devanagari - are not held to a rule written for European alphabets.
  • Share Manager: "Manage hosting.." -> the button that opens the Server edition's page no longer lands on "page not found". The address it opened spelled the project name in capitals where the real one does not, and web addresses are case-sensitive, so the one link that explains the always-on edition led nowhere.

26.8.8.2305

Added

  • A separate "always-on" edition of folder sharing for machines that have to stay available. Until now your folders were reachable from the phone only while you were signed in and the Share Manager was running - fine for a normal PC, useless for a machine whose whole job is to serve files. The new Folder Share Server edition is a separate download (from the website, the GitHub release, or winget install --id SerZhyAle.FastMediaSorter.Server) that installs a Windows service instead: it starts with Windows, serves with nobody signed in, keeps going through a log-off, and restarts itself if it ever fails. It asks for administrator rights once, during installation, and tells you exactly what it does with them - registers the service, creates a protected folder for the host key and password, and adds one firewall rule for the sharing program. Nothing is published until you choose the folders; the service never guesses. Install it only if the machine really is meant to stay up - on an ordinary PC the regular version is still the better choice, and it needs no administrator at all.
  • Switching between the two is safe both ways, and your phone does not notice. The server installer takes over the setup you already have - the folders, the password, the port and, most importantly, the host key your phone remembers - so paired phones keep connecting without being paired again. Going back is one button in the Share Manager ("Manage hosting.." -> "Return to the User edition.."). If anything about the key cannot be verified, the switch stops before the service is created rather than quietly issuing a new key and breaking every phone. Both editions work on one and the same folder list and settings, so whichever one is serving, you see the same thing.
  • The Share Manager now says exactly what is running, and can fix it. A new "Manage hosting.." window separates the four things that used to look identical when a phone could not connect: whether the service is *installed*, whether it is *running*, whether SFTP is actually *serving*, and whether any folders are chosen at all. It also names who is answering right now - the Windows service or the program's own background process - and shows the shared settings folder both of them use. When the service is installed it gains Start, Stop, Restart and "Repair the service registration", plus a button that gives the service permission to read the folders you picked (it runs under its own account, so a folder inside your user profile is invisible to it until that is granted). Only what the program itself added is ever taken back.
  • Every package now carries THIRD-PARTY-NOTICES.txt next to the licence - the copyright notices and licence terms of everything the program bundles: the VLC playback engine, the image decoders, the Tesseract OCR engine and its language models, and the dozen Go libraries inside the folder-sharing component. It was only ever a repository fact before; now it installs with the program, in the installer, the portable archive, the Store version and the Server edition alike.
  • New in Settings ▸ Files and system: "Allow launching in new windows" (64-bit program). It is off by default, so reopening a file still sends it to the existing window unless you explicitly enable it. When enabled, every new launch is a separate process and gets its own viewer window; the first window keeps the shared settings and position, while additional windows clearly say so and never overwrite them. The 32-bit program keeps its existing single-window behaviour.
  • "Send the logs to the author" on the Settings -> About tab. When something misbehaves, one button now packs the program's logs into an archive and opens a new mail with the file already attached, addressed to the author, with a short template to fill in. Before anything happens you are shown what went into the archive - the log, the Share Manager log if there is one, and a report with the version, Windows details and your settings - and you can open the archive and look at it. The program itself never sends anything anywhere: the mail leaves only when you press Send in your own mail program, and if the machine has no mail program that accepts attachments, the archive is copied to the clipboard and shown in its folder so you can attach it by hand. Your translation API key is never written into the report, and a log that has grown for months contributes only its last two megabytes, so the mail stays sendable.

Changed

  • Copying is now something you ask for at the moment you sort, not a mode you switch on beforehand (64-bit program). To copy a file instead of moving it you used to open Settings, tick "COPY mode (files are not moving)", sort, and then remember to untick it - and if you forgot, the next hundred files were copied instead of moved, or the copy you expected turned out to be a move. That checkbox is gone. Now a digit 1..9 or 0 moves the current file into that folder, and Shift + the same digit on the top row copies it there - the folders and the keys are the same, only the action differs. The same choice is everywhere the old one was hidden: the floating recipients panel gives every folder a narrow "copy" zone beside the row (the row itself still moves, and the delete row stays one action), both media menus now show "Move to" and "Copy to" side by side instead of whichever one the mode happened to be in, and in the recipients table in Settings a double-click on the key number moves while Shift + double-click copies. In the thumbnail panel (F3) the same pairing applies to the whole selection. The keys are the top-row digits on purpose: with NumLock on, Windows lets go of NumLock while Shift is held, so Shift + a numpad digit never arrives as a digit at all - the numpad keeps moving files, as always.
  • New in Settings ▸ Files and system: "Go to the next file after copying", on by default, in the place the old copy-mode checkbox occupied. On, and a copy behaves like the fast sorting run you already know - the next file comes up at once. Off, and the same file stays on screen after being copied, which is what you want when you are filing one picture into several folders: Shift+1, Shift+3, Shift+7 and it lands in all three. If the copy fails, the program comes back to the file it failed on instead of leaving you on the next one.
  • The 32-bit program is unchanged: it keeps the old copy-mode checkbox and behaves exactly as before.
  • The website's translated pages moved to one address prefix. Each of the twelve translations used to sit at its own top-level address (/de/, /zh/, /ar/ ..); they now live together under /lang/ - /lang/de/, /lang/zh/, /lang/ar/ and so on. Nothing about the pages themselves changed, and every link on the site, in the language switcher and in the search-engine metadata already points at the new addresses. Only an old bookmark or an outside link straight to /de/ stops working; the entry page and the switcher take you to the same page as before.

Fixed

  • The Share Manager button works on a machine that has the Server edition, and updating the viewer no longer leaves such a machine not serving. Three faults in the same seam. The button looked for the Share Manager only next to the viewer's own exe - but a machine with the Server edition installs the manager in its own folder and deliberately does not get a second copy beside the viewer, so a perfectly healthy setup was told to "reinstall the application". It now also finds the one the Server edition recorded, exactly as the Server edition's tray menu already finds a normally installed viewer. Second: Setup stops the sharing service before replacing files (its worker holds them), and nothing ever started it again - every viewer update quietly left a server machine unreachable until the next reboot. A service set to start Automatically is now started back; one its owner set to Manual or Disabled is left alone. Third: uninstalling removed only the firewall rule *named* by the installer, while the rules Windows itself writes when it asks "Allow access?" - named after the program - stayed on the machine for ever, one per install location, outliving the files they point at. Uninstall now also deletes every rule aimed at the executable being removed.
  • With "keep on top" switched on, the windows the program opens no longer hide behind it. Settings opened *behind* the pinned viewer - the button looked dead, because the window it opened was there all along, just underneath. Windows keeps a window above the one that opened it only within the same layer, and "keep on top" moves the viewer into a layer of its own, so anything opened afterwards started underneath it. Now every window the program opens - Settings, the thumbnail panel (F3), the folder and file pickers - joins the viewer in that layer, switching "keep on top" on or off moves an already-open window with it, and the whole set steps aside together when the program has to show you something outside it (the Ollama installer, your mail program with the log archive attached), instead of only the main window stepping aside and the Settings window covering it instead.
  • Folder Share Server: a folder you add is served straight away, and a folder shared for writing really is writable. Two halves of the same problem. The service runs under its own Windows account rather than yours, so a folder you can obviously open may be invisible to the thing that actually serves it - and the fix was a button in the "Manage hosting.." window, which nobody has any reason to look for after simply adding a folder; until you found it the phone got a folder it could not open, with no explanation anywhere. Now the permission is granted at the moment you choose the folder: the program checks first and stays silent when nothing is missing, so the single Windows confirmation appears only when it is actually needed, and declining it says what it costs instead of failing later on the phone. The second half: that grant only ever gave read access, so a folder marked writable let the phone browse and download and then refused every delete, move and upload. It now follows the folder list - read for a read-only folder, read and write for a writable one - and switching a folder to writable afterwards re-applies it instead of quietly leaving the old read-only permission behind.
  • Share Manager: "Check access from the internet" stops being permanently grey on a share that works. The button was disabled for the duration of every operation, as buttons are - but unlike the others its enabled state is worked out from the sharing status rather than set in one place, and nothing re-asked for it once the operation finished. So on a share that had just been started - exactly when you want to check that the outside world can reach it - the button went grey and stayed that way until the program was restarted.
  • Share Manager: "Open Fast Media Sorter" in the tray menu works in the Server edition. That package installs the Share Manager on its own, and the menu item only ever looked for the viewer in its own folder - so on a server machine it did nothing at all, silently. It now finds a normally installed viewer wherever it is, and when there really is none the item is simply not shown.
  • The program survives being left open for days, and stops growing while it sits there. A code audit of everything that only goes wrong after hours or thousands of files found and fixed a set of problems you could never reproduce in a minute of use. The worst three: the thumbnail panel (F3) no longer builds a card for every file from the start of the folder up to wherever you are standing - open it at photo ten thousand of a fifteen-thousand-file folder and it opens at once, instead of decoding ten thousand images and running the program out of window handles until it had to be restarted; a folder that goes unreachable mid-session no longer crashes the program - when a network drive drops, the viewer used to skip through the remaining files until it ran out of stack and died instantly, taking with it every setting, recent-folder entry and reading position changed since launch; and the log file next to the program stops growing for ever - it used to gain a line for every single image you looked at, a megabyte or two a day, and nothing ever trimmed it.
  • Your settings are no longer lost if the program does not close normally. Destination folders for the number keys, the recent files and folders lists, the position in the folder and every option were written only when the window was closed cleanly - so a crash, a power cut or ending the task threw away everything changed since the last proper exit, even days of it. Editing a destination folder now saves it immediately, and everything else is written a minute after it changes.
  • Closing the program while files are still being moved no longer loses them silently. Sorting keys pressed during the "finishing file operations.." wait were accepted, reported as done and then discarded - the file stayed where it was while the program said it had been moved. Those keys are now refused with a clear message. If the transfers need longer than the fifteen seconds the program waits, it asks whether to keep waiting instead of closing regardless, and a move between two different disks or network shares is now staged through a temporary name, so an interrupted transfer can no longer leave a half-copied file under the real file's name.
  • The window stops freezing on a sleeping network drive. Reading a folder, opening a file passed from Explorer, waiting for a file that is still downloading, and checking whether an image can be translated all used to run on the same thread that draws the window, so a share that had gone to sleep froze everything for as long as Windows took to give up - up to four minutes on the 32-bit program when a second copy was launched with a network path. A picture that cannot be read within twenty seconds is now reported as unavailable instead of holding the program hostage, and the errors that used to appear as pop-up dialogs - one per file when a key was held down - now go to the status line.
  • Automatic translation no longer bogs the program down over a long session. Switching pictures while OCR was running left the abandoned recognitions running to the end anyway, queueing up behind each other; they now stop as soon as their picture is gone. Both translation caches are now kept within a size limit - including the megabyte limit the settings window offered, which until now was displayed and saved but enforced by nothing, so the cache kept growing regardless of what you set it to.
  • Share Manager: "Share this folder with phone.." now works when the manager window is already open. The folder was quietly discarded in that case - nothing was added, nothing was said - so the feature appeared to work at random depending on whether the window happened to be closed. The manager also no longer wedges permanently if its background component stops responding: every request to it now has a time limit, and it stops polling a component that is not there.
  • iPhone photos really do open now: HEIC, HEIF and AVIF were announced but did not work in the installed program. The library that decodes them was built, but it was left behind when the package was assembled - so the feature worked when the program was run from the developer's build folder and failed everywhere else. Nothing about the feature changed; it is simply in the package now. This affected the installer, the portable archive and the Store version alike, from the release that introduced the formats.
  • The program no longer ships a log file from the machine it was built on. Every package carried a current.log left over from testing, with the build machine's own folder paths inside it, and installed it next to the program - so your own log began with someone else's sessions. It is excluded from all four packages now.

Нотатки про випуски написано англійською. Усі версії з інсталяторами - на сторінці релізів GitHub.

Усі релізи на GitHub