Skip to content

G2b Echo-projected regular-file bytes - #2

Merged
flyingrobots merged 8 commits into
mainfrom
gate/g2b
Jun 1, 2026
Merged

flyingrobots merged 8 commits into
mainfrom
gate/g2b

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Jun 1, 2026 •

Copy link
Copy Markdown
Owner

G2b proves first Echo-projected normal regular-file bytes.

What passes:

  • /echo/head.json is a normal non-.warp regular file.
  • Its bytes come from Echo via ObservationProjection::Query -> ObservationPayload::QueryBytes.
  • WARP DRIVE caches those bytes before fuser::mount2().
  • FUSE worker threads do not call Echo.
  • G1 fixture files remain fixture-backed and are explicitly documented as such.
  • G2a metadata baseline remains intact.
  • Copy-in Docker acceptance passes with no live repo bind mounts and no Git metadata/remotes inside the container.

Validated commits:

  • Echo: d8da6d0478bb
  • WARP DRIVE validated implementation: 82a9fdc24484
  • WARP DRIVE gate record head after proof refresh: 77b5e4707c44

Validation:

cargo fmt --all
cargo fmt --manifest-path crates/warp-drive-echo-backend/Cargo.toml
cargo fmt --manifest-path crates/warp-drive-fuse-echo/Cargo.toml
cargo check --workspace
cargo test --workspace
cargo clippy --workspace -- -D warnings
cargo clippy --manifest-path crates/warp-drive-fuse-echo/Cargo.toml --target-dir target/echo-rlib -- -D warnings

cd /Users/james/git/echo-warp-drive
cargo fmt --manifest-path crates/warp-wasm/Cargo.toml
cargo check --manifest-path crates/warp-wasm/Cargo.toml --features engine
cargo clippy --manifest-path crates/warp-wasm/Cargo.toml --features engine -- -D warnings
cargo test --manifest-path crates/warp-wasm/Cargo.toml --features engine --lib default_engine_tests
cargo check --manifest-path crates/warp-wasm/Cargo.toml --features experimental-warp-drive-g2b
cargo clippy --manifest-path crates/warp-wasm/Cargo.toml --features experimental-warp-drive-g2b -- -D warnings
cargo test --manifest-path crates/warp-wasm/Cargo.toml --features experimental-warp-drive-g2b --lib experimental_warp_drive_g2b_tests
cargo test --manifest-path crates/warp-wasm/Cargo.toml --all-features

cd /Users/james/git/warp-drive
cargo xtask acceptance --gate g2b --runtime echo-rlib

Acceptance:

  • Copy-in Docker runner: no bind mounts of host repos.
  • In-container proof: PASS no git metadata in copied repos.
  • G2b gate result: 58 / 58 assertions.

Safety:

  • Echo acceptance uses sanitized copy-in Docker only.
  • No -v bind mount of host repos.
  • .git / .gitmodules are excluded and stripped.
  • In-container xtask refuses to run if Git metadata or GIT_DIR / GIT_WORK_TREE exists.

Caveats:

  • Only /echo/head.json is Echo-projected.
  • G1 fixture files and directories remain fixture-backed.
  • The Echo query observer is a temporary scaffold behind Echo's explicit experimental-warp-drive-g2b feature.
  • This is not the final Echo filesystem contract.

@coderabbitai

coderabbitai Bot commented Jun 1, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@flyingrobots, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 43 minutes and 45 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f1a92432-313f-460c-a722-f3c048ef66c5

📥 Commits

Reviewing files that changed from the base of the PR and between e235887 and 49f96ac.

📒 Files selected for processing (13)
  • .dockerignore
  • Dockerfile
  • crates/warp-drive-core/src/lib.rs
  • crates/warp-drive-echo-backend/Cargo.toml
  • crates/warp-drive-echo-backend/src/lib.rs
  • crates/warp-drive-fuse-echo/Cargo.toml
  • crates/warp-drive-fuse-echo/src/main.rs
  • docs/BEARING.md
  • docs/IMPLEMENTATION_PLAN.md
  • docs/design/g2b-echo-projected-file-bytes.md
  • docs/gates/G2b.md
  • scripts/acceptance-g2b.sh
  • xtask/src/main.rs

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 and usage tips.

@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex self-review findings after diffing gate/g2b against origin/main.

Severity File Lines Type Finding Recommended mitigation
High xtask/src/main.rs + docs/gates/G2b.md xtask/src/main.rs:437-454, docs/gates/G2b.md:130-133 Safety invariant / proof drift The gate record says staged copies exclude .gitmodules, but copy_repo_for_docker() only excludes .git, target, and .DS_Store. If either repo has .gitmodules, it enters the staging tree and Docker build context before the Dockerfile strips it. That contradicts the recorded safety invariant and can leave remote metadata in an earlier image layer/build context. Prompt: “Update the G2b copy-in runner so .gitmodules is excluded before Docker build context creation, add a stage-level assertion that neither copied repo contains .git nor .gitmodules, and keep the gate record wording aligned with the implementation.”
Medium scripts/acceptance-g2b.sh scripts/acceptance-g2b.sh:206-225 Acceptance proof gap The acceptance script proves /echo/head.json has projection_hash, but it does not assert the two negative invariants that motivated the Echo hardening: the projected payload must not contain artifact_hash, and Echo-facing payload bytes must not leak the POSIX path /echo/head.json. Echo unit tests cover this, but the WARP gate acceptance proof does not. Prompt: “Add G2b acceptance assertions that /echo/head.json does not contain artifact_hash and does not contain /echo/head.json; rerun copy-in Docker acceptance and update the G2b gate transcript/assertion count.”
Low docs/design/g2b-echo-projected-file-bytes.md docs/design/g2b-echo-projected-file-bytes.md:6, docs/design/g2b-echo-projected-file-bytes.md:237-241 Documentation lifecycle drift The design doc still says Status: DRAFT and keeps an unresolved “Remaining question before gate record” section even though docs/gates/G2b.md records PASS and answers the CI/local proof question by documenting local copy-in Docker acceptance. Prompt: “Update the G2b design doc status from DRAFT to passed/accepted, remove or answer the stale remaining-question section, and point readers to docs/gates/G2b.md for the proof record.”

Issue count: High 1, Medium 1, Low 1.

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create an environment for this repo.

@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex resolved the self-review findings in follow-up commits.

Prior severity Finding Resolution
High .gitmodules was not excluded before Docker build context creation despite the gate record claiming staged copies exclude it. Fixed in edd5235f6287: copy_repo_for_docker() now excludes .gitmodules, and the copy-in path asserts neither .git nor .gitmodules exists in each staged repo before docker build.
Medium G2b acceptance did not assert /echo/head.json omits artifact_hash or the POSIX path literal. Fixed in edd5235f6287: scripts/acceptance-g2b.sh now asserts both negative invariants.
Low G2b design doc still said Status: DRAFT and kept a stale remaining-question section. Fixed in edd5235f6287: design status is ACCEPTED, links to docs/gates/G2b.md, and replaces the stale question with the accepted local copy-in Docker proof model.

Validation after fixes:

cargo fmt --all
cargo fmt --manifest-path crates/warp-drive-echo-backend/Cargo.toml
cargo fmt --manifest-path crates/warp-drive-fuse-echo/Cargo.toml
cargo check --workspace
cargo test --workspace
cargo clippy --workspace -- -D warnings
cargo clippy --manifest-path crates/warp-drive-fuse-echo/Cargo.toml --target-dir target/echo-rlib -- -D warnings
cargo xtask acceptance --gate g2b --runtime echo-rlib

Copy-in Docker acceptance now passes with the expanded proof:

Copy-in acceptance isolation:
  PASS no git metadata in copied repos
G2b GATE PASSED  (60 / 60 assertions)

Gate record refreshed in a552d0a4be90 with the updated validated WARP commit, transcript, assertion count, and Docker image cleanup details.

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create an environment for this repo.

@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex added one final proof-record clarification in a891b6c43724.

docs/gates/G2b.md now distinguishes:

  • Echo validated behavior commit: d8da6d0478bb
  • Echo branch head copied during the 60 / 60 acceptance run: 1b27c577cf5a
  • Delta between them: comment-only TODO documenting the temporary CODEC_ERROR invalid-vars assertion until Echo exposes a more precise query-vars code

No behavior changed; no acceptance rerun was needed for this docs-only clarification.

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create an environment for this repo.

@flyingrobots

Copy link
Copy Markdown
Owner Author

Correction to my previous comment: the final proof-record clarification commit is 49f96ac53084, not a891b6c43724.

The content described there is accurate:

  • Echo validated behavior commit: d8da6d0478bb
  • Echo branch head copied during the 60 / 60 acceptance run: 1b27c577cf5a
  • Delta between them: comment-only TODO documenting the temporary CODEC_ERROR invalid-vars assertion until Echo exposes a more precise query-vars code

@flyingrobots
flyingrobots marked this pull request as ready for review June 1, 2026 10:50
@flyingrobots
flyingrobots merged commit 60829e1 into main Jun 1, 2026
4 checks passed
@flyingrobots
flyingrobots deleted the gate/g2b branch June 9, 2026 23:52
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