Skip to content

Add file Hash buttons and verify packaged Windows/release binaries - #2

Merged
lovitus merged 5 commits into
mainfrom
codex/gui-file-hashes
Sep 17, 2026
Merged

lovitus merged 5 commits into
mainfrom
codex/gui-file-hashes

Conversation

@lovitus

@lovitus lovitus commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Feature

Adds +Dir | Hash | MV | Del to both Windows file panes. Hash is enabled for one or more selected files, disabled for empty/folder/mixed selections and while busy. The chooser offers MD5, SHA-1, SHA-224, SHA-256 (default), SHA-384 and SHA-512. Each result and filename is printed in the Log and terminal.

Local hashing streams files with bounded memory; remote hashing runs on the server through the existing SSH route, uses an allowlist and shell-safe positional arguments, supports common utility fallbacks, batches long selections and continues after individual file failures. Subprocess output is drained before Wait to avoid truncating the final result.

Verification

  • Portable known-vector, binary streaming, cancellation, quoting/injection, backend fallback, per-file error and batching tests. Local portable tests, vet and five race runs passed.
  • Windows selection and complete-subprocess-output tests.
  • Windows GUI CI builds amd64/arm64 release-mode binaries, packages/extracts amd64 and drives the real executable's native controls against a loopback SSH fixture, testing all six methods on both panes and partial failures. No personal SSH server or files are used.
  • Existing Linux CI remains intact, including full suite, race detection, repeat stability and reconnect/forwarding E2E.

Release

Requests v2.0.15 on merge. The requested-release workflow waits for both Linux and Windows CI for the exact main commit before creating a tag and explicitly dispatching the existing Release workflow. It then downloads the published Linux/Windows amd64 archives, verifies their checksums, runs version smoke tests and repeats the native Windows GUI/SSH test against the downloaded release executable. Existing tags are never moved.

CI and release results will be recorded after execution. Temporary source-patch staging files have been removed from the final diff.

@lovitus
lovitus merged commit d2e12e7 into main Sep 17, 2026
2 checks passed

lovitus commented Sep 17, 2026

Copy link
Copy Markdown
Owner Author

Completed: v2.0.15 published and the downloaded release binary tested

Feature merged in d2e12e7f138c22e0923f61a95e8a78665ce079ff. Final tested/tagged source: dffac8b9abdbfde8987619cbbb9b9e2d3f55a0fb. Release v2.0.15 is published (not a draft or prerelease).

Final verification

Check Result Evidence
Linux full suite, reconnect/forwarding E2E, race detector, five-repeat stability suite PASS CI run 35186280813
Windows GUI unit tests, amd64/arm64 release-mode builds, extracted amd64 executable GUI/SSH test repeated five times PASS, 5/5 Windows run 35186280799
Existing release pipeline: all platform archives, Linux packages, package manifests and repositories PASS Release run 35186689396
Downloaded published Linux amd64 archive: SHA-256 verification and version execution PASS Release verification run 35186280794
Downloaded published Windows amd64 ZIP: SHA-256 verification, version execution, actual native GUI controls and real loopback SSH PASS Release verification run 35186280794

The published Windows executable passed all six algorithms in both panes, including checksum comparisons for normal, quoted/Unicode and empty files; toolbar placement; selection enablement; default method and Cancel; and a missing-file failure that still produces the remaining file's hash. The downloaded-release GUI test completed in 8.44 seconds.

The first main-branch Windows run exposed a test-driver startup issue while sending WM_GETTEXT to enumerated startup/hidden windows. The follow-up commit uses non-blocking cached captions for visible top-level windows; the complete packaged GUI test then passed five consecutive runs. No assertion or feature test was disabled. The release gate blocked publication until the final Linux and Windows runs passed.

Verified published archive:

6ccf7b516a52eb39e52da62197f69a4da7b99239b291e3634695b7429988430e  flyssh-2.0.15-windows-amd64.exe.zip

Runtime GUI verification is on Windows amd64; Windows arm64 and the other release targets were built, not all executed on their native architectures. Linux amd64 additionally passed the downloaded-binary version smoke test. All SSH tests used temporary fixture files and loopback credentials, not personal servers or files.

Screenshots, complete GUI logs, version output and checksum evidence are in the published-windows-validation-dffac8b9abdbfde8987619cbbb9b9e2d3f55a0fb artifact of the release-verification run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant