Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
# client's autocrlf setting, because the 7-Zip manifest hashes their bytes.
tests/7zip-vectors/*.txt text eol=lf

# Delivery Handoff parser corpus inputs are byte-exact: the probe compares findings
# by line and column, and some hostile inputs deliberately mix encodings.
tests/handoff-specs/** -text

# Denote all files that are truly binary and should not be modified.
# (binary is a macro for -text -diff)
*.zip binary
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/nightly-parser-fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,8 @@ jobs:
- name: Replay Markdown extension-combination corpus
shell: pwsh
run: .\tools\test-cmark-gfm-hardening.ps1 -Iterations 250

- name: Replay Handoff specification hostile corpus
shell: pwsh
# Deterministic mutations of every delivery specification input, as in the bzip2 soak.
run: .\tools\test-handoff-spec-parser.ps1 -Architecture x64 -Iterations 250
5 changes: 5 additions & 0 deletions .github/workflows/pr-msbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,11 @@ jobs:
if: matrix.platform == 'x64'
run: .\tools\test-cmark-gfm-hardening.ps1

- name: Exercise Handoff specification parser corpus
if: matrix.platform == 'x64'
# Same invocation as scripts/runtests.ps1: shared specifications are untrusted input.
run: .\tools\test-handoff-spec-parser.ps1 -Architecture x64

- name: Register MSVC problem matcher
# This reviewed commit replaces the mutable master branch in PR builds.
uses: ammaraskar/msvc-problem-matcher@541aa4360062d76d9620af6b8bd35cfa0c5ef19f
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ The highlights below cover repository work from **March through September 2026**
- FTP downloads keep an existing local file intact while receiving data into a unique sibling `.salftp-*.part` file. The matching `.meta` file records ownership and verified resume checkpoints. A move deletes its remote source only after local validation, flush, metadata, publication, and checked completion succeed. Cancellation or failure can leave these private files for a later retry; keep them together. Resume requires a matching remote version and unchanged local evidence. Legacy, corrupted, named-stream, reparse-point, or ambiguous publication states require manual inspection; a `.previous` sibling retains the old destination when publication cleanup cannot finish. Restart never replays remote deletion.
- Bundled engines were upgraded: [7-Zip 26.02](src/plugins/7zip/doc/upgrade-26.02.md), zlib, SQLite (with defined recovery behavior), bzip2, and cmark-gfm.
- UnRAR plugin loading was restored; 64-bit file-size handling was applied to the active plug-in readers.
- New **Delivery Handoff** plug-in builds and verifies professional delivery packages: a reusable `*.handoff.json` specification defines required documents, naming, formats, PDF page sizes, image dimensions, allowed content, and approval and licence evidence; the plug-in assembles candidates from the working panel, flags omissions, copies them into a hash-verified package in the other panel, and writes `manifest.json`, `manifest.csv`, and `CONTENTS.txt`.

### Build, tests, and releases

Expand Down
2 changes: 1 addition & 1 deletion architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ Representative plug-in families in the solution are:
- archive/compression: 7-Zip, ZIP, TAR, PAK, ARJ, CAB, CHM, FAT, ISO, LHA, MIME, OLE, and RAR readers/writers;
- virtual filesystems: FTP, Network Neighborhood, Folders, Registry Editor, portable devices, and Windows Mobile;
- viewers/analyzers: database, browser, multimedia, PE, image, disk-map, and file-comparison tools;
- utilities: automation, checksum, version check, renamer, and split/combine;
- utilities: automation, checksum, delivery handoff, version check, renamer, and split/combine;
- SDK demonstrations: archive/menu/viewer/sample plug-ins.

### 5.4 Archive integration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@
"PluginDiskRecovery": "arrow_counterclockwise",
"PluginExecutable": "window_dev_tools",
"PluginFolders": "app_folder",
"PluginHandoff": "box",
"PluginHelp": "book",
"PluginMedia": "video",
"PluginNetwork": "desktop_sync",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1713,6 +1713,26 @@
"sha256": "8c25eaf69cc9156f0c44cb991745fd8645806fa88c4aa0a1f228f3816816d6ca"
}
},
"PluginHandoff": {
"16": {
"source": "box_16_regular.svg",
"sourceSize": 16,
"color": "#0F6CBD",
"sha256": "53fe38c2788d994131408de03cf32761249d519e22d22a1fe579728c2fd3dcfa"
},
"24": {
"source": "box_24_regular.svg",
"sourceSize": 24,
"color": "#0F6CBD",
"sha256": "0462b5ce36b275c9f6868eecc73eede4df999dc227e3fcac1edeb44b0e3a7e60"
},
"32": {
"source": "box_32_regular.svg",
"sourceSize": 32,
"color": "#0F6CBD",
"sha256": "a0287790bd89ba57e643d9f67dca368d2a1dc67ff2e26cac54282e5d82e5f33e"
}
},
"PluginHelp": {
"16": {
"source": "book_16_regular.svg",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading