Skip to content

chore: Accumulated backports to v4#22155

Merged
AztecBot merged 4 commits into
v4from
backport-to-v4-staging
Apr 2, 2026
Merged

chore: Accumulated backports to v4#22155
AztecBot merged 4 commits into
v4from
backport-to-v4-staging

Conversation

@AztecBot

@AztecBot AztecBot commented Mar 30, 2026

Copy link
Copy Markdown
Collaborator

BEGIN_COMMIT_OVERRIDE
fix: run compatibility tests on all v4-related branches (#22149)
END_COMMIT_OVERRIDE

## Summary

The `testnet_compatibility` and `mainnet_compatibility` tests were only
running on PRs targeting branches matching `^v[0-9]+$` (e.g. `v4`). This
missed three other critical branches:

- `backport-to-v4-staging`
- `v4-next`
- `backport-to-v4-next`

This caused a compatibility break on staging-public (4.2.0-aztecnr.2
bricking nodes due to block header shape changes between 4.1 and 4.2) to
go undetected.

## Fix

Expanded the regex in `yarn-project/bootstrap.sh` to:
```
^(v[0-9]+(-next)?|backport-to-v[0-9]+-(staging|next))$
```

This matches all four required branch patterns while still excluding
`next`, `master`, and other non-release branches.

ClaudeBox log: https://claudebox.work/s/dd9d82043dbc175f?run=1

@ludamad ludamad left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Auto-approved

@AztecBot AztecBot enabled auto-merge March 31, 2026 00:16
@AztecBot

Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 8 hours of inactivity. This PR will be merged automatically once all checks pass.

AztecBot and others added 3 commits April 2, 2026 10:17
Adapted block_store.ts for v4 branch structure:
- Kept v4's inline previous-checkpoint-block extraction (no getPreviousCheckpointBlock helper)
- Used checkpoints[0] reference instead of firstCheckpointNumber for post-skip correctness
- Only included skipOrUpdateAlreadyStoredCheckpoints method (the actual fix)
- Dropped getPreviousCheckpointBlock and validateCheckpointBlocks refactors from next
…2252) (#22257)

## Summary

Backport of #22252
to v4.

Fixes a mainnet issue where an L1 reorg moved a checkpoint to a
different L1 block, causing the archiver to re-discover it and crash
with `InitialCheckpointNumberNotSequentialError` in an infinite loop.

When `addCheckpoints` receives a checkpoint that's already stored, it
now:
- **Accepts it** if the archive root matches (same content, just
different L1 block)
- **Updates the L1 metadata** (block number, timestamp, hash) and
attestations
- **Throws** if the archive root doesn't match (content mismatch —
genuine conflict)

## Conflict Resolution

Cherry-pick had one conflict in `block_store.ts`:
- v4 uses inline code for extracting previous checkpoint block data;
`next` refactored this into a `getPreviousCheckpointBlock()` helper.
Kept v4's inline approach but updated to use `checkpoints[0]` reference
(correct after potential skip of already-stored checkpoints).
- Only ported `skipOrUpdateAlreadyStoredCheckpoints` method (the fix).
Dropped `getPreviousCheckpointBlock` and `validateCheckpointBlocks`
refactors that exist on `next` but not v4.

## Test Results

- 176 passed in `kv_archiver_store.test.ts`
- 33 passed in `archiver-sync.test.ts` (includes new `handles L1 reorg
that moves a checkpoint to a later L1 block` test)
- Build, format pass

ClaudeBox log: https://claudebox.work/s/21a4c138364df1ef?run=1
@AztecBot AztecBot merged commit e696cf6 into v4 Apr 2, 2026
9 checks passed
@AztecBot AztecBot deleted the backport-to-v4-staging branch April 2, 2026 12:09
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.

4 participants