Skip to content

v7.0.48

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Jul 19:48
2c876cb

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 Icons metadata 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 Icons field.

Sources Checked