fix: max blob size and other encryption tests - #118
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The new patternReader.Read implementation in itest/stack_test.go uses an int64 slice index and will not compile.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds/extends integration coverage around encryption behavior and large-object limits, and adjusts max_blob_size defaults/validation so encrypted envelopes remain shippable to piri under its piece cap.
Changes:
- Add new forge-mode encryption integration suite (
TestForgeEncryption) and a gated 5 GiB max-part test, plus supporting harness utilities. - Update default blob sizing to account for encryption envelope overhead; add config validation and unit tests to fail fast on unshippable
max_blob_sizevalues. - Update docs and CI itest job settings (timeouts/disk space) to accommodate the new big-part coverage.
File summaries
| File | Description |
|---|---|
| itest/stack_test.go | Adds spool inspection/tamper helpers, pattern streaming reader, and a no-timeout S3 client for very large uploads |
| itest/README.md | Documents new encryption/max-part itest coverage and gating |
| itest/forge_encryption_test.go | New encryption and large-part integration tests (incl. tamper rejection and delete release verification) |
| itest/forge_delete_test.go | Removes duplicated waitForPiriLog helper now centralized in stack harness |
| config/config.go | Validates max_blob_size against encrypted-envelope size vs network ceiling |
| config/config_test.go | Adds regression test for max_blob_size validation behavior |
| bucket/chunker.go | Changes DefaultMaxBlobSize derivation to reserve encryption envelope allowance under piri’s cap |
| bucket/chunker_test.go | Pins envelope-fit derivation with a unit test |
| blockstore/store.go | Updates comments to reflect ~254 MiB default sizing |
| blockstore/spool.go | Updates comments to reflect ~254 MiB default sizing |
| docs/architecture.md | Updates architecture doc to reflect the corrected piece cap and default sizing rationale |
| .github/workflows/go-test.yml | Increases itest timeouts, frees runner disk, and enables the gated big itest in CI |
| go.mod | Bumps fil-forge/libforge dependency (per PR dependency note) |
| go.sum | Updates checksums for the bumped fil-forge/libforge version |
Review details
- Files reviewed: 13/14 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
alanshaw
force-pushed
the
ash/fix/max-blob-size-and-other-tests
branch
from
September 9, 2026 16:53
6cfd259 to
a0bd51a
Compare
alanshaw
force-pushed
the
ash/fix/max-blob-size-and-other-tests
branch
from
September 9, 2026 17:05
a0bd51a to
ec8df74
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Depends on:
MaxBlobSizewith PiriDefaultMaxPaddedSizelibforge#65Refs: