[PR #1726] [MERGED] fix(artifacts): preserve emitted ZIP entry identity #4780

Closed
opened 2026-10-31 00:54:58 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1726
Author: @N0zoM1z0
Created: 10/11/2026
Status: ✅ Merged
Merged: 10/11/2026
Merged by: @N0zoM1z0

Base: main ← Head: fix/zip-member-identity-1725


📝 Commits (1)

  • 8872832 fix(artifacts): preserve emitted ZIP entry identity

📊 Changes

2 files changed (+91 additions, -0 deletions)

View changed files

📝 src/artifacts/ZipArtifactReader.ts (+9 -0)
📝 tests/boundary/filesystem/artifactZipIntegrity.test.ts (+82 -0)

📄 Description

Duplicate ZIP filenames could overwrite the source lookup for an already emitted entry, so a delayed read of the first member returned the later member’s bytes. Reject exact duplicate names in the reader before replacing that mapping. Detection is scoped to each enumeration, preserving replay and case-distinct entries; public inventory/extraction keeps its path-collision policy.

Closes #1725. Related: #1480.

Validation: reproduced on fresh main with a 218-byte real ZIP, then observed the new boundary regression fail and pass. All 28 focused ZIP/inventory/order/cancellation tests pass. Fresh compiled producer probes preserve the first member after rejection; actual CLI and stdio MCP preserve complete control results and return the duplicate-path failure, with subsequent ping/close working. Single-threaded compile/typecheck, full lint, and architecture guards pass under the local CPU/RSS limits. No external native-provider claim.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1726 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 10/11/2026 **Status:** ✅ Merged **Merged:** 10/11/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `fix/zip-member-identity-1725` --- ### 📝 Commits (1) - [`8872832`](https://github.com/morluto/rea/commit/887283274d853137e57e2d9f127ae94ada75def2) fix(artifacts): preserve emitted ZIP entry identity ### 📊 Changes **2 files changed** (+91 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `src/artifacts/ZipArtifactReader.ts` (+9 -0) 📝 `tests/boundary/filesystem/artifactZipIntegrity.test.ts` (+82 -0) </details> ### 📄 Description Duplicate ZIP filenames could overwrite the source lookup for an already emitted entry, so a delayed read of the first member returned the later member’s bytes. Reject exact duplicate names in the reader before replacing that mapping. Detection is scoped to each enumeration, preserving replay and case-distinct entries; public inventory/extraction keeps its path-collision policy. Closes #1725. Related: #1480. Validation: reproduced on fresh main with a 218-byte real ZIP, then observed the new boundary regression fail and pass. All 28 focused ZIP/inventory/order/cancellation tests pass. Fresh compiled producer probes preserve the first member after rejection; actual CLI and stdio MCP preserve complete control results and return the duplicate-path failure, with subsequent ping/close working. Single-threaded compile/typecheck, full lint, and architecture guards pass under the local CPU/RSS limits. No external native-provider claim. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:54:58 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4780
No description provided.