Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
942c183
ci(test-suite): run e2e tests with 2-of-2 coprocessor consensus
Eikix Mar 5, 2026
13e28ff
fix(test-suite): address code review findings in consensus watchdog
Eikix Mar 5, 2026
4ec9fc2
test(consensus-watchdog): add unit tests for watchdog logic
Eikix Mar 6, 2026
a767cee
fix(test): cleanup resource leaks in watchdog unit tests
Eikix Mar 6, 2026
e123576
fix(test-suite): skip proof monitoring when input verification is unset
Eikix Mar 6, 2026
f078004
ci(test-suite): install foundry in e2e workflow
Eikix Mar 6, 2026
1a3a099
fix(test-suite): avoid rerunning db migration for extra coprocessors
Eikix Mar 6, 2026
cec4eb8
revert(ci): drop validation-only e2e changes
Eikix Mar 6, 2026
1cc09f8
fix(test-suite): harden consensus watchdog
Eikix Mar 6, 2026
818e565
ci(test-suite): enable build-based e2e validation
Eikix Mar 6, 2026
3a73efb
fix(test-suite): avoid rerunning extra coprocessor migration
Eikix Mar 6, 2026
a14aaea
test-suite: clarify consensus watchdog summary
Eikix Mar 6, 2026
ceb4c44
Revert "fix(test-suite): avoid rerunning extra coprocessor migration"
Eikix Mar 6, 2026
c377947
Revert "ci(test-suite): enable build-based e2e validation"
Eikix Mar 6, 2026
086cac4
ci(common): sandbox Claude Code behind Squid proxy + iptables
enitrat Feb 14, 2026
a26fbf1
ci(test-suite): install foundry for 2-of-2 e2e deploys
Eikix Mar 9, 2026
d37b7ba
chore: rename claude.yml to claude-review.yml
chilcano Mar 9, 2026
f2e9bf1
chore: enforces changes in sandboxed claude-* workflow
chilcano Mar 9, 2026
ac2027f
fix(test-suite): avoid rerunning extra coprocessor migration
Eikix Mar 10, 2026
84bd2fc
ci(common): fix zizmor issues
eudelins-zama Mar 10, 2026
44f9896
fix(coprocessor): stop logging errors for unknown input verif events
antoniupop Mar 10, 2026
9c8a42a
fix(coprocessor): update cargo dependence
antoniupop Mar 10, 2026
9e8adae
Merge origin/main into ci/consensus-e2e-tests
Eikix Mar 10, 2026
a3fd447
Merge of #2083
mergify[bot] Mar 11, 2026
0110532
Merge of #2077
mergify[bot] Mar 11, 2026
5ebe1f4
Merge of #2052
mergify[bot] Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ test-suite/gateway-stress/Dockerfile @zama-ai/fhevm-devs

# Coprocessor Team ownership
/coprocessor/ @zama-ai/fhevm-coprocessor

# Enforces changes in Sandboxed AI CI/CD
.github/squid/sandbox-*.conf @zama-ai/infosec
.github/workflows/claude-*.yml @zama-ai/infosec
18 changes: 18 additions & 0 deletions .github/squid/sandbox-proxy-rules.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Strict domain allowlist for CI sandbox
# Only these domains are reachable through the Squid proxy.
# Based on: https://github.com/zama-ai/security-hub/tree/main/docs/how-tos/sandboxed-claude-code
#
# To add a new domain: append ".example.com" to the acl below.
# Leading dot means "this domain and all subdomains".

acl allowed_domains dstdomain \
.api.anthropic.com \
.platform.claude.com \
.github.com

# Allow only explicitly allowed domains
http_access deny !allowed_domains
http_access allow allowed_domains

# Deny everything else
http_access deny all
586 changes: 586 additions & 0 deletions .github/workflows/claude-review.yml

Large diffs are not rendered by default.

164 changes: 0 additions & 164 deletions .github/workflows/claude.yml

This file was deleted.

14 changes: 13 additions & 1 deletion .github/workflows/test-suite-e2e-operators-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ jobs:
- name: Setup Docker
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0

- name: Login to GitHub Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
Expand Down Expand Up @@ -125,7 +128,7 @@ jobs:
SNS_WORKER_VERSION: ${{ inputs.sns_worker_version }}
ZKPROOF_WORKER_VERSION: ${{ inputs.zkproof_worker_version }}
run: |
./fhevm-cli deploy
./fhevm-cli deploy --coprocessors 2 --coprocessor-threshold 2
- name: All operators tests
working-directory: test-suite/fhevm
Expand All @@ -150,6 +153,15 @@ jobs:
echo "::group::Transaction Sender Logs (filtered)"
./fhevm-cli logs transaction-sender | grep -v "Selected 0 rows to process"
echo "::endgroup::"
echo "::group::Coprocessor 2 - SNS Worker"
./fhevm-cli logs coprocessor-2-sns-worker 2>/dev/null | grep -v "Selected 0 rows to process" || true
echo "::endgroup::"
echo "::group::Coprocessor 2 - Transaction Sender (filtered)"
./fhevm-cli logs coprocessor-2-transaction-sender 2>/dev/null | grep -v "Selected 0 rows to process" || true
echo "::endgroup::"
echo "::group::Coprocessor 2 - TFHE Worker"
./fhevm-cli logs coprocessor-2-tfhe-worker 2>/dev/null || true
echo "::endgroup::"
- name: Cleanup
working-directory: test-suite/fhevm
Expand Down
16 changes: 14 additions & 2 deletions .github/workflows/test-suite-e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ jobs:
- name: Setup Docker
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0

- name: Login to GitHub Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
Expand All @@ -147,9 +150,9 @@ jobs:
DEPLOY_BUILD: ${{ inputs.deploy-build }}
run: |
if [[ "$DEPLOY_BUILD" == 'true' ]]; then
./fhevm-cli deploy --build
./fhevm-cli deploy --build --coprocessors 2 --coprocessor-threshold 2
else
./fhevm-cli deploy
./fhevm-cli deploy --coprocessors 2 --coprocessor-threshold 2
fi
# E2E tests on pausing the Host contracts
Expand Down Expand Up @@ -262,6 +265,15 @@ jobs:
echo "::group::TFHE Worker"
./fhevm-cli logs coprocessor-tfhe-worker
echo "::endgroup::"
echo "::group::Coprocessor 2 - SNS Worker"
./fhevm-cli logs coprocessor-2-sns-worker 2>/dev/null | grep -v "Selected 0 rows to process" || true
echo "::endgroup::"
echo "::group::Coprocessor 2 - Transaction Sender (filtered)"
./fhevm-cli logs coprocessor-2-transaction-sender 2>/dev/null | grep -v "Selected 0 rows to process" || true
echo "::endgroup::"
echo "::group::Coprocessor 2 - TFHE Worker"
./fhevm-cli logs coprocessor-2-tfhe-worker 2>/dev/null || true
echo "::endgroup::"
- name: Cleanup
working-directory: test-suite/fhevm
Expand Down
23 changes: 10 additions & 13 deletions coprocessor/fhevm-engine/gw-listener/src/gw_listener.rs
Original file line number Diff line number Diff line change
Expand Up @@ -201,19 +201,16 @@ impl<P: Provider<Ethereum> + Clone + 'static, A: AwsS3Interface + Clone + 'stati
continue;
}
if let Ok(event) = InputVerification::InputVerificationEvents::decode_log(&log.inner) {
match event.data {
InputVerification::InputVerificationEvents::VerifyProofRequest(request) => {
self.verify_proof_request(db_pool, request, log.clone()).await.
inspect(|_| {
verify_proof_success += 1;
}).inspect_err(|e| {
error!(error = %e, "VerifyProofRequest processing failed");
VERIFY_PROOF_FAIL_COUNTER.inc();
})?;
},
_ => {
error!(log = ?log, "Unknown InputVerification event");
}
// This listener only reacts to proof requests. Other known InputVerification
// events are expected when multiple coprocessors interact with the gateway.
if let InputVerification::InputVerificationEvents::VerifyProofRequest(request) = event.data {
self.verify_proof_request(db_pool, request, log.clone()).await.
inspect(|_| {
verify_proof_success += 1;
}).inspect_err(|e| {
error!(error = %e, "VerifyProofRequest processing failed");
VERIFY_PROOF_FAIL_COUNTER.inc();
})?;
}
} else {
error!(log = ?log, "Failed to decode InputVerification event log");
Expand Down
1 change: 1 addition & 0 deletions test-suite/e2e/hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ const config: HardhatUserConfig = {
defaultNetwork: DEFAULT_NETWORK,
mocha: {
timeout: 300000,
rootHooks: require('./test/consensusWatchdog').mochaHooks,
},
gasReporter: {
currency: 'USD',
Expand Down
Loading
Loading