1411 Commits
Author SHA1 Message Date
aleksey-hoffman 2b8bed4325 CI: fix the e2e leftover data check failing on an empty temp folder list - An empty Get-ChildItem result added a null entry to the leak list 2026-10-19 01:45:09 +03:00
aleksey-hoffman 7f9ebf2b79 CI: check that the Windows e2e run leaves no app data behind - Fail if the app's default roaming or local data folders get content, or the run's temp folder is left over 2026-10-19 01:45:09 +03:00
aleksey-hoffman 1305d81d18 Dev (e2e): retry removing the isolated data folder after the run - The app's WebView2 processes can still hold files when onComplete runs on Windows - Never remove a folder that is not the run's own temp folder 2026-10-19 01:45:09 +03:00
aleksey-hoffman 8908e214aa Dev (e2e): isolate WebDriver test runs in a temporary data folder - Add app_dirs helper: in debug builds SFM_E2E_DATA_DIR moves app data, config, local data, cache, logs, window state, extensions, thumbnails, global search index, icon probes and the WebView2 profile under one folder; release builds compile the override out - Route every app data path in Rust and the frontend through the helper (new get_app_dirs command) - Skip the autostart sync, default file manager migration and single-instance handoff when isolated, so test runs never touch the real OS integration or a running SFM - wdio creates a fresh temp folder per run, passes it through tauri-driver, refuses to launch the app until the override is confirmed, copies app logs to the artifacts on failure and deletes the folder afterwards (SFM_E2E_KEEP_DATA=1 keeps it) - Drop the leftover-extension cleanup from the extension spec 2026-10-19 01:45:09 +03:00
aleksey-hoffman 979d6e2c9d Dev (e2e): make WebDriver tests pass on a fresh Windows profile - Close the first-launch changelog dialog before a test starts - Navigator folder test opens the first folder the user can list, skipping inaccessible junctions like "Application Data" - Save failure artifacts for failed hooks too - Lower WebdriverIO log level to warn 2026-10-19 01:45:09 +03:00
aleksey-hoffman b42aa683b2 CI: run WebDriver e2e tests on Windows - Add e2e-windows job to ci.yml (debug build, tauri-driver, msedgedriver matching the runner's WebView2) - Pass --remote-debugging-port to WebView2 via HKLM policy, since WebView2 150+ ignores WEBVIEW2_* env vars for elevated processes - Upload screenshots, page sources and app logs on failure 2026-10-19 01:45:09 +03:00
aleksey-hoffman e00011fd05 Dev (e2e): add WebDriver spec for the extension main flow - Install a local test extension in the real app window, check that a call covered by its declared permission works and a shell call without the permission is denied, then disable/enable and uninstall it - Save a screenshot and page source for failed tests 2026-10-19 01:45:09 +03:00
aleksey-hoffman 5b6cab440d Dev (extensions): add main-flow test coverage for the extension lifecycle - Cover install/load, activation in the worker isolation host, an API call allowed with its permission and denied without it, and teardown on disable/uninstall - Assert the host binds caller identity on every privileged IPC call - Add neutral regression cases for the realm-escape technique - Runs under vitest in CI on Linux, alongside the Rust command tests 2026-10-18 13:52:50 +03:00
aleksey-hoffman 4b0a241999 Fix (extensions): harden extension isolation and permission checks - Enforce manifest-declared permissions host-side in Rust for extension shell commands, reading the authoritative on-disk manifest instead of relying on the IPC caller - Remove the unused in-process sandbox helper that shared host realm intrinsics; the Web Worker and sandboxed iframe remain the real isolation boundary - Tighten the static extension-code screen and add Rust and JS regression tests 2026-10-18 13:46:57 +03:00
aleksey-hoffman 74ddf6222a Docs: add security policy - Report vulnerabilities privately via GitHub private vulnerability reporting - Supported versions, response goals and scope 2026-10-18 13:20:46 +03:00
aleksey-hoffmanandcarfeii 45cedf892f Fix (security): SSRF via DNS rebinding and redirects in extension downloads - Check resolved addresses inside the DNS resolver so every connection is covered, including redirect hops, retries and fallback URLs - Re-validate every redirect target - Block more non-public ranges (CGNAT, 0.0.0.0/8, multicast, reserved, IPv4-mapped/compatible IPv6, NAT64, 6to4) and bracketed IPv6 literals - Fixes #552
Co-authored-by: carfeii <carfeii@users.noreply.github.com>
2026-10-18 13:15:54 +03:00
aleksey-hoffman c2295cecd5 Dev: sync Cargo version with package.json (2.2.0) 2026-10-17 18:33:56 +03:00
Aleksey Hoffman 3df1570d17 Fix (linux, Flatpak): app panics on launch - bundle libayatana-appindicator, update GNOME runtime to 51 (#551)
* Fix (linux, Flatpak): app panics on launch (Failed to load ayatana-appindicator3) - Bundle libayatana-appindicator via Flathub shared-modules - Update GNOME runtime from EOL 48 to 51

* Dev: lint - Fix existing ESLint and Stylelint errors from main - Ignore Flatpak shared-modules and build dirs in ESLint
2026-10-17 17:49:33 +03:00
aleksey-hoffman 61cdbb61f2 Docs: add code signing policy section 2026-10-17 03:26:00 +03:00
aleksey-hoffman 4ea1afd55a CI: fix signed installer upload in release workflow - Set GH_REPO since sign-windows job has no checkout - Keep signed installer as a workflow artifact 2026-10-17 02:52:57 +03:00
aleksey-hoffman 1a6400a241 CI: sign Windows installer via SignPath in release workflow - Upload unsigned installer only as a workflow artifact, never to the release - Add sign-windows job (release-signing, 6h approval timeout) that verifies the Authenticode signature and uploads the signed installer - Don't edit notes of published releases - Increase SignPath approval timeout in sign-windows workflow 2026-10-17 02:05:23 +03:00
aleksey-hoffman a4d4f4f1c1 Dev: keep locale JSON files ending with a newline 2026-10-16 15:59:34 +03:00
aleksey-hoffman 588165e688 New feature: select multiple files with Shift+arrow keys 2026-10-16 15:59:34 +03:00
aleksey-hoffman 0ae258d627 Fix: SMB move to trash confirms before permanent delete
Windows UNC paths and remote drives cannot use the Recycle Bin. Ask with the existing permanent-delete dialog, then delete only those paths. Local trash is unchanged, and a failed trash never removes the file.
2026-10-11 19:30:19 +00:00
aleksey-hoffman 4a33b290e0 UX: redesign dashboard page (delete remove from fav button) 2026-09-30 10:10:03 +03:00
aleksey-hoffman 5f678f8b27 Fix: double clicking window top area is not toggling maximized state 2026-09-29 19:49:28 +03:00
aleksey-hoffman 9560da5177 Fix: broken window state after fullscreen, maximize and snap
- Fit the restored main window into the work area on startup so an oversized saved size (e.g. from fullscreen) no longer breaks restore
- Restore window state in stages: frame first, then maximized and fullscreen
- Make the maximize button exit fullscreen instead of toggling maximize
- Disable window drag regions while fullscreen
2026-09-29 17:49:20 +03:00
aleksey-hoffman 3eca4c17ae UX: redesign dashboard page 2026-09-29 16:56:29 +03:00
aleksey-hoffman fed49ceede UX: improved tag editor
- Tags can now be rearranged in the editor and will be displayed in that order in the component
- The component now displays as many tags as it can fill in the available space instead of showing 1 and hiding the rest under the "+X"
- Increased click area for the color selector and edit buttons
2026-08-27 15:46:18 +03:00
aleksey-hoffman e65d67cf06 UX: improve clipboard menu
- Better design
- Added previews and file size
2026-08-27 13:08:29 +03:00
aleksey-hoffman 74eeadab83 New feature: allow to reorder items in quick panel 2026-08-27 00:02:28 +03:00
aleksey-hoffman dc5c8cb32e New feature: duplicate tab 2026-08-24 16:33:01 +03:00
aleksey-hoffman 662a6988b3 Refine: Fix: sidebar drives not opening on middle click 2026-08-24 15:19:34 +03:00
aleksey-hoffman b116ef21aa Fix: sidebar drives not opening on middle click 2026-08-24 14:37:18 +03:00
aleksey-hoffman a8c1dddb82 New settings: default directory and startup page 2026-08-24 14:16:47 +03:00
aleksey-hoffman d55295a91e UX: improved settings search
- Marching shortcuts now appear in the search results
2026-08-21 22:03:12 +03:00
aleksey-hoffman 5b3137c8c7 New shortcuts: switch to previous/next opened tab 2026-08-21 19:06:41 +03:00
aleksey-hoffman 7f7be33aed New feature: add multi range selection 2026-08-21 18:52:48 +03:00
aleksey-hoffman 1699f780ac Dev: lint 2026-08-21 17:15:44 +03:00
aleksey-hoffman b930cbaa21 Refine: UX: added ability to save navigator settings "per folder"; redesigned menu 2026-08-21 17:12:26 +03:00
aleksey-hoffman 833ec8b5a1 UX: added ability to save navigator settings "per folder"; redesigned menu 2026-08-21 15:09:26 +03:00
aleksey-hoffman 2d40dcc47c Dev: rename isCorrected key 2026-08-20 17:50:43 +03:00
aleksey-hoffman 71653d8554 UI: Add Armenian locale (by MaximalXP) 2026-08-20 17:49:59 +03:00
aleksey-hoffman d022c0a5b6 Docs: update contributing 2026-08-20 17:38:22 +03:00
aleksey-hoffman 1325919d30 Docs: update contributing 2026-08-20 17:32:33 +03:00
aleksey-hoffman 1a9108db37 UX: Remove ability to set app as default FM in MS store version
- Remove unvirtualizedResources restricted capability (MS store rejected it)
- Keep app launcher
ms-store-v2.2.0
2026-07-21 17:19:54 +03:00
Aleksey Hoffman c6916c22ff Docs: README 2026-07-18 14:33:20 +03:00
aleksey-hoffman 25e1a766b6 Dev: fix snap builds 2026-07-18 01:58:18 +03:00
aleksey-hoffman ce4829f303 CI: fix msix 2026-07-17 23:41:54 +03:00
aleksey-hoffman 5ee320512a CI: fix msix 2026-07-17 20:56:58 +03:00
aleksey-hoffman f5da528998 Docs: update CI 2026-07-17 20:49:28 +03:00
aleksey-hoffman e23f6c5c25 v2.2.0 v2.2.0 2026-07-17 18:59:21 +03:00
aleksey-hoffman 5ece662d9b UI: set specific width for navigator options popover; add missing changelog locales 2026-07-17 18:56:35 +03:00
aleksey-hoffman b831975885 Docs: changelog 2026-07-17 18:41:24 +03:00
aleksey-hoffman db15621b06 Refine: large dir loading performance 2026-07-17 00:49:33 +03:00