Sync Production with Main#714
Merged
Merged
Conversation
When buildListResult exhausts the DB batch with every row folding into a single CommonPrefix, the truncation fallback set the continuation token to the last raw key scanned. That key lives *inside* the folded virtual directory, so the next page's `key > token` query returned the remaining keys in the same directory and re-emitted the same CommonPrefixes entry. Detect when the last scanned key folded into a CommonPrefix and advance the token to `<foldedPrefix>+ï¿¿` so the next page resumes after the entire virtual directory. Non-delimiter and non-folded cases keep the previous last-key fallback. Includes three unit tests covering the duplicate-prefix regression, the non-folded last-key case, and the no-delimiter case. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix(backend): guard against NULL encoded_node in publishing pipeline
✅ Deploy Preview for auto-drive-storage ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
…t is already archived After onObjectArchived runs, removeNodeDataByRootCid only strips encoded_node for nodes already published (block_published_on IS NOT NULL). Nodes published later via recovery get block_published_on set but never lose encoded_node, causing indefinite local payload retention. Fix updateNodePublishedOn to conditionally clear encoded_node when the node's metadata is already marked archived. This is safe because at that point the data is confirmed on-chain and the archival cleanup won't fire again. Co-authored-by: Cursor <cursoragent@cursor.com>
…t is already archived (#715) After onObjectArchived runs, removeNodeDataByRootCid only strips encoded_node for nodes already published (block_published_on IS NOT NULL). Nodes published later via recovery get block_published_on set but never lose encoded_node, causing indefinite local payload retention. Fix updateNodePublishedOn to conditionally clear encoded_node when the node's metadata is already marked archived. This is safe because at that point the data is confirmed on-chain and the archival cleanup won't fire again. Co-authored-by: Cursor <cursoragent@cursor.com>
…pagination fix(s3): advance ListObjectsV2 continuation token past folded prefix
The S3 API only worked with clients that send the `x-id` query param and a
Content-Type header (e.g. the AWS JS SDK). The AWS CLI / botocore omits both,
which broke GetObject/PutObject/HeadObject and multipart uploads:
- getS3Method had no GET->GetObject or PUT->PutObject fallback, so plain
object requests without `x-id` returned "Method not found".
- The S3 raw body parser used `type: '*/*'`, but type-is returns false when no
Content-Type header is present, so the request body was never read and
req.body was left as {} (planted by the global express.json() parser),
causing a Buffer.concat TypeError deep in the upload path.
Fixes:
- Add GET->GetObject and PUT->PutObject method fallbacks (after the existing
multipart/list-type query-param checks so they are not misrouted).
- Read the S3 request body unconditionally (`type: () => true`) — object
bodies are opaque binary regardless of Content-Type.
- Mount the S3 controller ahead of the global JSON/urlencoded parsers in the
download API so those never run for /s3.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
feat(frontend): wire up bulk download for selected files
Adds raw-HTTP integration cases alongside the SDK suite that reproduce the
AWS CLI / botocore behaviour the SDK masks: no `x-id` query param and object
bodies sent without a Content-Type header. Covers single PutObject/GetObject
round-trip and a full multipart round-trip.
These fail on the prior code (GetObject/PutObject -> "Method not found";
UploadPart -> Buffer.concat on a {} body) and pass with the dispatch + raw
body fixes. They live in the s3-sdk spec to share its server/auth harness.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Member
Author
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 7019cfa. Configure here.
fix(s3): support AWS CLI clients (dispatch fallbacks + raw body)
jim-counter
approved these changes
May 27, 2026
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.
Auto Drive Release, May 26, 2026