Pre-flight Checklist
📝 Bug Description
The native 4R review handoff exposes the frozen candidate as a large base64 diff plus an ordered changed-path manifest, but the reviewer-agent transport does not deliver that immutable diff inline. The native contract is valid at the producer boundary but unusable by sandboxed reviewer agents.
This was discovered while reviewing PR #1966 (fix(orchestrator): guard trusted exploration handoffs, linked to #1178). It is a transport and sandbox-boundary failure, not an operating-system-specific failure.
🔄 Steps to Reproduce
- Enable review mode.
- Start a high-risk review for a candidate large enough to produce the native frozen handoff.
- Consent to the review.
- Observe that the native contract returns a 134,902-byte base64 candidate diff and an ordered changed-path manifest.
- Hand the frozen evidence to the four native review lenses.
- Observe that reviewer agents expect an inline diff but cannot access external paths containing the candidate.
- Attempt to read the raw handoff through the available tool; the raw base64 content is truncated.
- Decode the available
/tmp diff and verify that its SHA-256 matches the native candidate diff; the reviewer sandbox still cannot access that path.
✅ Expected Behavior
The adapter should decode the native candidate diff and inject the immutable decoded diff together with the ordered manifest inline into every reviewer-agent handoff. If the diff is missing or truncated, the handoff must fail closed as unavailable rather than asking reviewers to infer or locate evidence externally.
❌ Actual Behavior
The native producer returns complete evidence, but the reviewer agents receive only an inaccessible external path and/or truncated raw base64. They cannot inspect the candidate diff in their sandbox, even though the decoded /tmp artifact has the matching SHA-256.
🖥️ Environment
Gentle AI Version
Review lineage at PR #1966 / native 4R contract under review (exact release version is not material to reproduction)
Operating System
Linux (Fedora/RHEL)
AI Agent / Client
OpenCode
📋 Affected Area
Other
💡 Logs / Error Output
Native handoff facts:
- Candidate diff: 134,902 bytes when base64-encoded.
- Native output also contains the ordered changed-path manifest.
- The reviewer tool read truncates the raw base64 payload.
- The decoded
/tmp diff SHA-256 matches the native candidate diff.
- The reviewer sandbox cannot access
/tmp or other external paths.
Additional Context
Impact:
- Reviewers cannot produce valid findings grounded in the candidate diff or a valid receipt.
- The review must not claim PASS when the frozen evidence was unavailable.
- Archive/finalization is blocked because the 4R review has no valid findings/receipt.
Technical agreement / proposed direction:
- Add an adapter boundary that decodes and injects the immutable candidate diff plus ordered manifest inline for reviewer agents.
- Treat missing or truncated evidence as unavailable and fail closed.
- Add tests covering a large candidate diff and reviewers running in a sandbox with no external-path access.
Scope boundaries:
Exact review lineage: native 4R frozen-diff handoff failure discovered during review of PR #1966, fix(orchestrator): guard trusted exploration handoffs, linked to issue #1178.
Pre-flight Checklist
status:approved📝 Bug Description
The native 4R review handoff exposes the frozen candidate as a large base64 diff plus an ordered changed-path manifest, but the reviewer-agent transport does not deliver that immutable diff inline. The native contract is valid at the producer boundary but unusable by sandboxed reviewer agents.
This was discovered while reviewing PR #1966 (
fix(orchestrator): guard trusted exploration handoffs, linked to #1178). It is a transport and sandbox-boundary failure, not an operating-system-specific failure.🔄 Steps to Reproduce
/tmpdiff and verify that its SHA-256 matches the native candidate diff; the reviewer sandbox still cannot access that path.✅ Expected Behavior
The adapter should decode the native candidate diff and inject the immutable decoded diff together with the ordered manifest inline into every reviewer-agent handoff. If the diff is missing or truncated, the handoff must fail closed as unavailable rather than asking reviewers to infer or locate evidence externally.
❌ Actual Behavior
The native producer returns complete evidence, but the reviewer agents receive only an inaccessible external path and/or truncated raw base64. They cannot inspect the candidate diff in their sandbox, even though the decoded
/tmpartifact has the matching SHA-256.🖥️ Environment
Gentle AI Version
Review lineage at PR #1966 / native 4R contract under review (exact release version is not material to reproduction)
Operating System
Linux (Fedora/RHEL)
AI Agent / Client
OpenCode
📋 Affected Area
Other
💡 Logs / Error Output
Native handoff facts:
/tmpdiff SHA-256 matches the native candidate diff./tmpor other external paths.Additional Context
Impact:
Technical agreement / proposed direction:
Scope boundaries:
Exact review lineage: native 4R frozen-diff handoff failure discovered during review of PR #1966,
fix(orchestrator): guard trusted exploration handoffs, linked to issue #1178.