ReviewOS

home-lang/home

Port S3Client.list option encoding overflow regression

#94
Closed chris opened this 10 days ago ·
10 days ago

Scope

Activate and pass js/bun/s3/s3-list-encode-overflow.test.ts from the copied Bun corpus.

Required behavior

  • Add reusable S3Client.list() query construction for instance and static APIs.
  • Map Bun list options to their S3 ListObjectsV2 query names.
  • Percent-encode values without fixed-size buffers, including 1024-byte inputs whose encoded form is much larger.
  • Preserve ? and # inside S3 object keys in presigned URL paths.
  • Reject unavailable requests normally rather than panicking or overflowing.
  • Add an exact-corpus repository regression and pass the full Home test gate.

Tracks a bounded S3 tranche of #66 and #81; the full response parser and list-objects integration remain separate follow-up work.

10 days ago

Implemented and published on main in d52bc116c3716e7f731e2a650b8b5f4ac1b8324f (feat(test): port S3 list option encoding).

What landed:

  • reusable ListObjectsV2 query encoding for instance and static S3Client.list()
  • Bun option mapping for prefix, delimiter, continuation token, start-after, max keys, encoding type, and fetch-owner
  • dynamically sized percent encoding, eliminating the fixed-buffer overflow class
  • local request dispatch with normal promise rejection when no endpoint is available
  • activation and permanent exact-corpus coverage for s3-list-encode-overflow.test.ts

Verification:

  • exact current fixture: 5 pass, 0 fail/todo/unsupported
  • ./pantry/.bin/zig build test -Dfilter=home_test --summary failures: passed with zero failures.

The full list-object response parser/server matrix remains follow-up work under #66/#81.

Sign in to comment on this issue.