Skip to content

test(archive): exercise recording proof through S3 HTTP - #5760

Merged
kixelated merged 3 commits into
mainfrom
quest/m2/archive-s3
Oct 17, 2026
Merged

kixelated merged 3 commits into
mainfrom
quest/m2/archive-s3

Conversation

@kixelated

@kixelated kixelated commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Archive proofs covered memory, disk, and a listing fake, leaving the real S3 client's URL encoding, conditional writes, and pagination untested.

Approach

Run the existing multi-track recording/replay plan through object_store's S3 client and an in-process s3s-fs server on an ephemeral loopback port. Compare exact stored bytes and replay every source group. Check the HTTP path for encoded track names, reject conditional-create collisions without changing stored data, and exercise start-after plus two-entry continuation pages.

Closes the quest/m2/archive-s3.md quest.

Impact

  • Public API, archive format, and wire: no changes.
  • Tests add s3s/s3s-fs 0.17 (newest stable) dev-dependencies, requiring Rust 1.96 for tests; the Nix shell provides 1.98. No external service, credentials, or network is used: requests are unsigned and stay on loopback.

Decisions

Settled while iterating (recommended option taken, unattended):

  • Where the S3 proof runs:
    • ✅ The default Rust test suite (the merge gate). Both tests take about 3.5s combined, and the dependency cost is test-only.
    • Behind a dev feature, nightly only. Rejected: the quest asked for this only if the build cost was large, and it would leave the S3 path unchecked per PR.
  • Server under test:
    • ✅ s3s-fs, a maintained S3 implementation that enforces If-None-Match: *, verified by the collision negative control.
    • A handwritten HTTP fake. Rejected: it would retest our own assumptions.

Validation

Rebased onto main after the relay fixture fix (#5768) landed. nix develop --command just check passes at b264edcc2: 8,203 workspace tests passed (33 existing skips), including both proof::s3 tests, plus the remaining lint, docs, and repository checks.

Follow-ups

None.

(Written by Claude Opus 5.5)

kixelated and others added 2 commits October 16, 2026 22:18
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
@kixelated
kixelated force-pushed the quest/m2/archive-s3 branch from 4f59bdf to b264edc Compare October 17, 2026 05:30
@kixelated
kixelated marked this pull request as ready for review October 17, 2026 05:30
@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 48 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4bf8b0b2-1380-40c3-8f5f-af3bc422ec2f
📥 Commits

Reviewing files that changed from the base of the PR and between 0fb7487 and 3fca932.

⛔ Files ignored due to path filters: 1
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing: 4
  • quest/m2/README.md
  • quest/m2/archive-s3.md
  • rs/moq-archive/Cargo.toml
  • rs/moq-archive/src/proof.rs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T05:32:37.571043Z b264edc Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Merging. Summary:

  • Merged origin/main (3fca932) to clear a conflict in rs/moq-archive/Cargo.toml: took main's async-trait = { workspace = true } and kept the PR's axum dev-dependency. No source changes; Codex reviewed the content at b264edc with no findings.
  • Decision settled with the maintainer: the S3 proof runs in the default Rust test suite.
  • Validation at 3fca932: just ci check passes, and cargo nextest run --workspace --all-features --no-fail-fast passes 8,831 tests, including both proof::s3 tests.
  • Unrelated flake seen locally: moq-gst source::imp::session_tests::a_refused_redial_posts_a_bus_error_after_playback failed twice under just check with AddrInUse (it rebinds a just-released ephemeral port, which a parallel test can claim first) and passed alone and in the full rerun. Worth a follow-up to bind the refusing relay without reusing the port.

(Written by Claude Opus 5.5)

@kixelated
kixelated enabled auto-merge October 17, 2026 14:14
@kixelated
kixelated added this pull request to the merge queue Oct 17, 2026
Merged via the queue into main with commit 291e392 Oct 17, 2026
13 of 14 checks passed
@kixelated
kixelated deleted the quest/m2/archive-s3 branch October 17, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant