GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix: harden core error handling, blob verification, and force-mode reporting by Wenxin-Jiang · Pull Request #56 · SocketDev/socket-patch

Conversation

@Wenxin-Jiang

@Wenxin-Jiang Wenxin Jiang (Wenxin-Jiang) commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Three independent hardening fixes in socket-patch-core:

  • read_manifest error propagation (MEDIUM-2): Non-NotFound I/O errors (permissions, disk failures) and JSON parse/validation errors are now propagated as Err instead of silently mapped to Ok(None). Users see the real error ("Permission denied") instead of the misleading "Invalid manifest".
  • Blob hash verification at download (LOW-1): download_hashes now computes git_sha256 on downloaded content and verifies it matches the expected hash before writing to disk. Corrupt downloads are rejected with a "Content hash mismatch" error.
  • --force + all NotFound reporting (MEDIUM-1): apply_package_patch now distinguishes all-AlreadyPatched from all-NotFound-skipped. When every file is NotFound under --force, the result is still success: true (to not break CI) but includes an informational error message: "All patch files were skipped: N not found on disk (--force)".

Test plan

  • cargo check --workspace --all-features compiles
  • cargo test -p socket-patch-core passes (255 tests)
  • cargo test -p socket-patch-cli passes
  • Manual: make manifest file read-only, run apply — should show real permission error
  • Manual: run apply --force against a package where all files are missing — should succeed but show skip message

🤖 Generated with Claude Code

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@Wenxin-Jiang @claude
fix: harden core error handling, blob verification, and force-mode re…
204df36
…porting

- Propagate real I/O and parse errors from read_manifest instead of
  silently returning Ok(None), so callers see the actual failure reason
- Verify downloaded blob content hash before writing to disk, rejecting
  corrupted or mismatched data at fetch time
- Distinguish all-AlreadyPatched from all-NotFound in --force mode,
  surfacing an informational message when patch files are skipped

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@Wenxin-Jiang

Wenxin Jiang (Wenxin-Jiang) commented Apr 2, 2026

Copy link
Copy Markdown
Contributor Author

Claude (@claude) review once

claude[bot] reacted with eyes emoji
All reactions
  • 👀 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

mikolalysenko
Mikola Lysenko (mikolalysenko) approved these changes Apr 7, 2026
View reviewed changes
@Wenxin-Jiang
Wenxin Jiang (Wenxin-Jiang) merged commit d25e60c into main Apr 7, 2026
19 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@Wenxin-Jiang
Wenxin Jiang (Wenxin-Jiang) deleted the fix/core-hardening branch April 7, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@mikolalysenko Mikola Lysenko (mikolalysenko) mikolalysenko approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@Wenxin-Jiang @mikolalysenko
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.