RedSalamander v7.0.48 Release Notes
Changes since v7.0.43, published July 16, 2026.
RedSalamander v7.0.48 was published on July 20, 2026. It is a broad reliability, data-safety, accessibility, remote-storage, and release-engineering update. It improves everyday file handling, archive workflows, cloud providers, settings protection, RedSalamander Monitor, theme authoring, packaging, and application stability.
Highlights
- Safer drag-and-drop, clipboard, copy, move, overwrite, archive, and local-output behavior.
- A faster, cancellable Make File List workflow with text, CSV, and JSON output.
- Significant reliability and security improvements for IMAP, Microsoft Drive, Google Drive, Amazon S3, Curl, 7-Zip, and plugin refresh or shutdown.
- Conflict-aware settings saves that protect newer configuration changes and recovery files.
- Bounded, responsive RedSalamander Monitor behavior during large-file loading and heavy ETW traffic.
- Expanded accessibility, keyboard, text-input, IME, menu, and navigation reliability.
- Safer RedConfigure localization and theme-editing workflows.
- Reproducible dependency builds, stronger portable-package validation, and more informative Winget submissions.
File Management and Drag-and-Drop
- Dropping files onto a folder now correctly uses that folder as the destination; dropping on the pane background uses the displayed directory.
- Copy, move, paste, and drop operations wait until the destination pane has finished loading.
- Operations that would copy or move a directory into itself, its current parent, or one of its descendants are rejected.
- Files dragged from Windows Explorer into cloud or plugin-backed panes are read through the local filesystem and transferred to the destination provider correctly.
- A normal drag on the same local volume defaults to Move; cross-volume and cross-provider drags default to Copy.
- External asynchronous moves no longer authorize the source application to delete files before RedSalamander has verified completion.
- A completed cut-and-paste clears the move clipboard only after success. Failed or cancelled operations remain available for retry.
- Clicking or right-clicking an unselected item now makes that item the actual command target.
- Destructive context-menu commands are cancelled if a refresh changes their original target while the menu is open.
- Malformed or unexpectedly large clipboard and drag-and-drop payloads are rejected safely.
- Local writers reject contradictory overwrite flags before touching the destination, and recursive operations preflight late conflicts before making partial changes.
Archives and Make File List
- Archive extraction now offers an explicit existing-file policy: Skip existing files, selected by default, or Replace existing files.
- Extraction preflights conflicts and rejects incompatible file-versus-directory replacements.
- Existing files remain intact if archive extraction, writing, verification, or final replacement fails.
- Archive creation rejects an output path that is the same as, or inside, one of the selected source folders.
- Delete-after-packing starts only after the archive has been successfully created and verified.
- Large 7-Zip archive indexes can be cancelled and retried without publishing incomplete results.
- Make File List now uses a standard Save dialog with explicit overwrite confirmation.
- File lists can be written as text, CSV, or JSON, or copied to the clipboard.
- Collection, sorting, rendering, and file output run in the background with visible File Operations progress.
- Running Make File List again while it is active requests cancellation.
- Failed or cancelled output preserves any existing destination file.
Cloud, Remote, and Plugin Filesystems
IMAP
- IMAP messages now carry mailbox-generation identity, preventing stale entries from opening or deleting a different message after the server reuses an identifier.
- Single-message deletion uses safe UID-based expunge when supported.
- Servers without the required UIDPLUS capability refuse unsafe deletion instead of falling back to mailbox-wide expunge.
- Missing message summaries are retried in smaller batches before reduced fallback information is shown.
Microsoft Drive and OneDrive
- Authentication tokens are restricted to validated Microsoft Graph destinations and are never forwarded to foreign, redirected, or insecure hosts.
- Sensitive request URLs, authorization headers, and upload-session details are excluded from diagnostics.
- Resumable uploads follow the server-confirmed next byte range and reject contradictory acknowledgements.
- Folder merges retain an emptied source folder when the service cannot guarantee an atomic "delete only if empty" operation, avoiding deletion of concurrently added files.
- A successful move remains successful when only later backup cleanup fails; the cleanup problem is reported separately.
Google Drive
- Requests have total deadlines, bounded response sizes, and controlled retries for throttling and temporary server failures.
- Concurrent requests share one token refresh instead of starting several competing refreshes.
- Failed refreshes do not unnecessarily discard the last valid cached token.
- Duplicate, case-sensitive, and suffix-like names receive reversible display identities so the correct object is opened or modified.
- Large or malformed paginated listings stop safely instead of looping indefinitely.
Amazon S3
- Fixed shutdown and runtime-refresh crashes caused by AWS background work continuing after plugin unload.
- Upload completion requires the exact declared byte count to have been consumed.
- Recursive deletion rechecks the prefix until it is empty or reports that concurrent additions prevented completion.
- Interrupted multipart-upload cleanup is retried through a bounded background reconciliation process.
- Cancellation and final progress failures are no longer overwritten by a false success result.
- S3 object, prefix, and S3 Table pagination reject missing or repeated continuation tokens.
Plugin Configuration and Lifetime
- Curl and Google Drive coordinate their shared network runtime during plugin refresh and shutdown.
- Local, 7-Zip, Curl, Google Drive, Microsoft Drive, and S3 configuration changes are validated transactionally; invalid input does not replace the last working configuration.
- Legacy inline passwords, passphrases, and tokens are removed from returned plugin configuration and cleared from temporary memory more carefully.
- Provider pagination is bounded by page, item, byte, token, time, and cancellation limits.
- Plugin producers and callbacks are stopped before module unload so background work cannot continue in unloaded code.
Settings, Connections, Credentials, and Shutdown
- Settings are saved through unique temporary files and atomic replacement.
- RedSalamander detects when another process or newer instance changed a settings file and refuses to overwrite that newer revision.
- Shutdown and Windows session-end saves use the same ordered save coordinator, preventing an older queued snapshot from replacing the final settings.
- Failed recovery backups block automatic replacement of the only remaining settings file until the user explicitly approves recovery.
- Main application and Monitor preferences are saved independently. If only Monitor settings fail, the main settings remain applied and the dialog clearly reports what remains pending.
- Invalid UTF-16, oversized numeric values, and malformed settings content fail safely instead of being silently truncated or rewritten.
- Connection profile identifiers are canonical and unique.
- Invalid or duplicated profile identifiers are repaired without guessing which saved Windows credential belongs to which profile.
- Affected profiles may ask for their password, passphrase, or sign-in token again. Existing Windows Credential Manager entries are left unchanged.
- Authentication grants are separated between interactive secret viewing and background file operations.
- Cached secrets and authorization grants are cleared on workstation lock, disconnect, logoff, session end, and application shutdown.
RedSalamander Monitor
- ETW queues, retained history, retained text, and stored search matches have configurable limits.
- During extreme event volume, the oldest events are discarded so current diagnostics remain responsive.
- The status bar shows both received and dropped ETW event counts.
- Opening large log files runs in the background with byte progress.
- Choosing Open again while a file is loading requests cancellation.
- File loading validates UTF-8 and UTF-16LE strictly and rejects malformed or over-limit input.
- Search remains consistent when older retained history is removed.
- Clear resets text, selection, caret, search, scrolling, and pending layout state.
- Save As uses transactional output so conversion or disk failures preserve the previous destination file.
- ETW shutdown, clipboard publication, and background layout work are safer during window close and application exit.
Themes and RedConfigure
- Localization and theme batch operations are bound to the exact previewed rows, values, and arguments.
- A preview that became stale must be generated again instead of being applied to changed content.
- Batch operations validate all changes before editing and are recorded as one Undo action.
- Theme recipes modify only the intended exact references and direct color values.
- Theme numeric input is locale-independent and requires a finite value using
.as the decimal separator. - Duplicate-theme creation distinguishes invalid names, identifier collisions, and exhausted alternatives.
- Theme expression output uses the canonical function names accepted by the settings schema.
- Contrast calculations account for translucent foreground colors composited over their background.
- Duplicate or temporarily invalid inline theme definitions are preserved during settings saves instead of being silently removed.
- Validation categories, theme origins, status messages, and error descriptions are resource-backed.
Accessibility, Input, Menus, and Navigation
- Text fields and editable combo boxes expose more complete UI Automation text and editing behavior.
- Tree accessibility items retain stable identity across sorting, expansion, insertion, and removal.
- Unicode text elements, including joined emoji sequences, are treated as complete characters for caret and accessibility movement.
- Password fields keep source text separate from displayed mask characters and do not expose secret text through accessibility patterns.
- Cancelling an IME composition restores the original text and selection.
- Menus, trees, and controls are safer when callbacks close or replace the active window.
- Large menus render only visible rows, improving responsiveness.
- Breadcrumb sibling menus retain up to 99 destinations and provide a search/navigation entry when more exist.
- Dismissed address-bar suggestions cannot reappear from a stale background result.
- The full-path popup remains open while interacting with one of its own popup menus.
- Find Files and Compare Directories now receive their owning application window explicitly, reducing hidden lifetime dependencies while preserving focus restoration and file-operation behavior.
Localization
- New file-operation, archive, Make File List, connection-security, and Preferences messages are localized for Czech, French, Japanese, and Slovak.
- New Monitor file-loading, cancellation, and dropped-event messages are localized for the same four languages.
- RedConfigure's new text is fully resource-backed, but its 77 new Czech, Japanese, and Slovak entries currently contain English placeholder text pending human linguistic review.
- RedConfigure does not currently ship a French satellite resource.
Build, Testing, Packaging, and Distribution
- Runtime dependency staging is centralized in one verified manifest shared by MSBuild and portable packaging.
- Clean-package checks expand every portable ZIP, verify the shipping applications and all built-in plugins, and run package smoke tests when the host can execute the target architecture.
- Release publication fails closed when a requested package is missing, empty, duplicated, incorrectly named, built for the wrong architecture, has invalid metadata, or fails checksum validation.
- vcpkg's executable checkout and ports baseline are pinned separately and validated together, preventing dependency versions from being requested from an incompatible vcpkg database.
- CI imports the pinned vcpkg MSBuild integration only for the current build and selects matching Release or Debug libraries, including ASan Debug, without changing user-wide integration state.
- GitHub Actions dependencies are pinned to reviewed commits, with Dependabot updates and CODEOWNERS review for workflow and release-policy changes.
- CI now covers x64 Release, x64 Debug, ARM64 Debug compilation, critical contract tests, and an ASan lane for scheduled, manual, and high-risk changes.
build.ps1 -MaxCpuCount <N>can limit MSBuild workers on resource-constrained machines.- Added a helper for removing NTFS alternate data streams from repository files when downloaded content carries Windows security-zone metadata.
- Expanded deterministic tests for settings races and recovery, hostile drag/drop data, provider pagination, plugin unload, archive conflicts, Monitor retention and shutdown, accessibility, menus, themes, package contents, build reproducibility, and release policy.
Winget Submission Improvements
- The release workflow validates the generated manifest, installs it on a clean Windows runner, confirms the package with
winget list, and uninstalls it before submission. - Submission checks for an existing open pull request for the same RedSalamander version to avoid duplicates.
- Winget pull requests use the canonical
Update: RedSalamanders.RedSalamander to <version>title. - The generated pull-request body includes the release link, installer type, x64 and ARM64 coverage, commands, minimum Windows version, manifest schema, automated validation evidence, and the completed Winget manifest checklist.
- The workflow verifies the updated pull-request title and body and reports the created pull-request URL.
- Winget
Iconsmetadata remains intentionally omitted because current community validation restricts it to verified publishers; including it would cause the manifest submission to fail.
Availability
The v7.0.48 release provides portable ZIP packages for x64 and ARM64, plus a SHA-256 checksum manifest.
Important Upgrade Notes
- Some repaired connection profiles may require credentials to be entered and saved again.
- IMAP deletion may be unavailable on servers without safe UID-based expunge support.
- A Microsoft Drive folder merge may intentionally leave an empty source folder and report partial cleanup.
- RedConfigure's newly resource-backed Czech, Japanese, and Slovak text still requires linguistic review before the release should be described as fully localized.
- Winget installation does not display the application icon in the console because the manifest intentionally omits the validation-restricted
Iconsfield.
Sources Checked
- v7.0.43 release
- v7.0.48 release
- GitHub compare: v7.0.43...v7.0.48
- Pull request #90: repository reliability and data-safety remediation
- Pull request #95: dependency pins and Winget submission details
- Pull request #96: pinned vcpkg MSBuild linking
- Repository source, authoritative specifications, completed implementation plans, tests, and release-workflow policy in the v7.0.43-to-v7.0.48 delta