Skip to content

chore: stop tracking test snapshots; regenerate locally instead#84

Merged
0xdevcollins merged 1 commit into
testnetfrom
chore/untrack-test-snapshots
Jul 17, 2026
Merged

chore: stop tracking test snapshots; regenerate locally instead#84
0xdevcollins merged 1 commit into
testnetfrom
chore/untrack-test-snapshots

Conversation

@0xdevcollins

@0xdevcollins 0xdevcollins commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

Committed Soroban test snapshots are derived artifacts — cargo test regenerates them from any commit — and they are not byte-reproducible across runs (BytesN::random values differ per run), so they churned on every local test run and inflated PR diffs past the limits of the review tooling. On #82 both Almanax ("Diff Too Large for Analysis") and CodeRabbit (198-file limit) skipped scanning a HIGH-severity contract change because ~17k of its ~17.5k diff lines were snapshot noise.

Changes

  • Add test_snapshots/ to .gitignore
  • Untrack all 242 committed snapshot files (they remain on disk locally and regenerate on cargo test)
  • Rewrite the CLAUDE.md snapshot hard rule: snapshots are inspection tooling for reviewing storage-layout/auth changes, regenerated locally, never committed

Verification

  • cargo test --all on the branch: 197 events + 66 profile tests pass
  • After the test run the working tree stays clean (gitignore confirmed effective)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated repository guidance to treat generated test snapshots as inspection artifacts rather than committed files.
    • Added test snapshot directories to ignore rules.
    • Removed existing generated test snapshot files to reduce repository clutter.

Committed Soroban test snapshots are derived artifacts (cargo test
regenerates them from any commit) and are not byte-reproducible across
runs, so they churned on every test run and inflated PR diffs past the
limits of the security scanners: on PR #82 both Almanax (diff too
large) and CodeRabbit (198 files) skipped review of a HIGH-severity
contract change because of snapshot noise.

Gitignore test_snapshots/, untrack the 238 committed files (kept on
disk locally), and update the CLAUDE.md hard rule so contributors
inspect regenerated snapshot diffs during review instead of
committing them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 36c48af7-800b-4f03-a002-044e2cc35bee

📥 Commits

Reviewing files that changed from the base of the PR and between 0b255c7 and 65733b1.

📒 Files selected for processing (244)
  • .gitignore
  • CLAUDE.md
  • contracts/events/test_snapshots/tests/admin/apply_upgrade_after_expiry_reverts.1.json
  • contracts/events/test_snapshots/tests/admin/apply_upgrade_before_timelock_reverts.1.json
  • contracts/events/test_snapshots/tests/admin/cancel_pending_upgrade_clears_proposal.1.json
  • contracts/events/test_snapshots/tests/admin/cancel_with_no_pending_reverts.1.json
  • contracts/events/test_snapshots/tests/admin/id_base_encodes_deployment_sequence.1.json
  • contracts/events/test_snapshots/tests/admin/initializes_with_expected_config.1.json
  • contracts/events/test_snapshots/tests/admin/migrate_marks_current_version_and_blocks_replay.1.json
  • contracts/events/test_snapshots/tests/admin/pause_and_unpause_round_trip.1.json
  • contracts/events/test_snapshots/tests/admin/propose_upgrade_records_pending_and_emits.1.json
  • contracts/events/test_snapshots/tests/admin/propose_upgrade_rejects_empty_version.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_after_deadline_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_bootstraps_profile_and_records_applicant.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_on_cancelled_event_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_on_completed_event_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_on_nonexistent_event_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_on_wrong_pillar_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_requires_applicant_auth.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/apply_when_paused_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/create_rejects_multi_release_kind.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/duplicate_apply_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/replayed_apply_reverts_idempotently.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/replayed_withdraw_reverts_idempotently.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/withdraw_after_submit_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/withdraw_on_nonexistent_event_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/withdraw_removes_the_applicant.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/withdraw_requires_applicant_auth.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/withdraw_when_paused_reverts.1.json
  • contracts/events/test_snapshots/tests/bounty_pillar/withdraw_without_apply_reverts.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/add_funds_on_cancelling_event_reverts.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/cancel_prorata_splits_remaining_across_partners_no_owner_residual.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/contributor_amount_zeroed_after_cancel.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/finalize_cancel_before_all_batches_reverts.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/full_partner_then_residual_pays_partners_and_owner.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/missing_running_total_initializes_for_an_empty_event.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/missing_running_total_with_contributors_fails_closed.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/non_manager_cranks_and_finalizes_with_exact_payout_deltas.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/owner_only_cancel_settles_inline.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/owner_only_process_and_finalize_rejected_after_inline_settle.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/paged_cancel_processes_in_batches.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/process_cancel_batch_without_start_reverts.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/running_non_owner_total_tracks_repeated_contributions_but_not_owner_topups.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/start_cancel_on_already_cancelled_reverts.1.json
  • contracts/events/test_snapshots/tests/cancel_refund/start_cancel_on_nonexistent_event_reverts.1.json
  • contracts/events/test_snapshots/tests/contributions/add_funds_on_nonexistent_event_reverts.1.json
  • contracts/events/test_snapshots/tests/contributions/add_funds_paged_storage_round_trip.1.json
  • contracts/events/test_snapshots/tests/contributions/add_funds_to_cancelled_event_reverts.1.json
  • contracts/events/test_snapshots/tests/contributions/anyone_can_top_up_an_active_event.1.json
  • contracts/events/test_snapshots/tests/contributions/below_minimum_contribution_reverts.1.json
  • contracts/events/test_snapshots/tests/contributions/cancel_at_boundary_pays_partners_full_no_owner_residual.1.json
  • contracts/events/test_snapshots/tests/contributions/cancel_clears_contributor_amounts_so_replay_state_is_clean.1.json
  • contracts/events/test_snapshots/tests/contributions/cancel_with_no_contributors_refunds_owner_in_full.1.json
  • contracts/events/test_snapshots/tests/contributions/cancel_with_owner_top_up_keeps_owner_residual_correct.1.json
  • contracts/events/test_snapshots/tests/contributions/cancel_with_partner_pool_refunds_partners_then_owner_residual.1.json
  • contracts/events/test_snapshots/tests/contributions/contributor_cap_rejects_the_overflow_entry.1.json
  • contracts/events/test_snapshots/tests/contributions/multiple_top_ups_from_same_contributor_aggregate_and_dont_duplicate_list.1.json
  • contracts/events/test_snapshots/tests/contributions/owner_top_up_grows_escrow_without_recording_contribution_entry.1.json
  • contracts/events/test_snapshots/tests/contributions/paged_cancel_owner_only_settles_inside_start.1.json
  • contracts/events/test_snapshots/tests/contributions/paged_cancel_processes_in_batches.1.json
  • contracts/events/test_snapshots/tests/contributions/replayed_add_funds_reverts.1.json
  • contracts/events/test_snapshots/tests/contributions/zero_or_negative_contribution_reverts.1.json
  • contracts/events/test_snapshots/tests/cross_contract/add_funds_uses_event_override_not_global.1.json
  • contracts/events/test_snapshots/tests/cross_contract/bounty_submit_requires_prior_application.1.json
  • contracts/events/test_snapshots/tests/cross_contract/bounty_submit_succeeds_after_apply.1.json
  • contracts/events/test_snapshots/tests/cross_contract/cancel_after_select_winners_refunds_only_remaining.1.json
  • contracts/events/test_snapshots/tests/cross_contract/cancel_already_cancelled_reverts.1.json
  • contracts/events/test_snapshots/tests/cross_contract/cancel_refunds_remaining_escrow_to_owner.1.json
  • contracts/events/test_snapshots/tests/cross_contract/claim_milestone_final_milestone_marks_event_completed.1.json
  • contracts/events/test_snapshots/tests/cross_contract/claim_milestone_idempotent_per_recipient_and_milestone.1.json
  • contracts/events/test_snapshots/tests/cross_contract/claim_milestone_invalid_milestone_index_reverts.1.json
  • contracts/events/test_snapshots/tests/cross_contract/claim_milestone_pays_per_milestone_amount.1.json
  • contracts/events/test_snapshots/tests/cross_contract/claim_milestone_rejects_non_grant_events.1.json
  • contracts/events/test_snapshots/tests/cross_contract/create_event_charges_override_rate_when_provided.1.json
  • contracts/events/test_snapshots/tests/cross_contract/create_event_omitted_override_falls_back_to_global_default.1.json
  • contracts/events/test_snapshots/tests/cross_contract/create_event_rejects_override_above_max_fee_bps.1.json
  • contracts/events/test_snapshots/tests/cross_contract/create_event_with_waiver_charges_no_fee.1.json
  • contracts/events/test_snapshots/tests/cross_contract/duplicate_apply_reverts.1.json
  • contracts/events/test_snapshots/tests/cross_contract/grant_last_milestone_sweeps_rounding_residue.1.json
  • contracts/events/test_snapshots/tests/cross_contract/hackathon_submit_creates_anchor_without_prior_apply.1.json
  • contracts/events/test_snapshots/tests/cross_contract/manager_can_be_rotated.1.json
  • contracts/events/test_snapshots/tests/cross_contract/manager_defaults_to_owner_and_override_is_recorded.1.json
  • contracts/events/test_snapshots/tests/cross_contract/manager_override_can_select_winners.1.json
  • contracts/events/test_snapshots/tests/cross_contract/replayed_apply_reverts_idempotently.1.json
  • contracts/events/test_snapshots/tests/cross_contract/resubmit_preserves_original_submitted_at_and_updates_uri.1.json
  • contracts/events/test_snapshots/tests/cross_contract/select_winners_handles_multi_recipient_distribution.1.json
  • contracts/events/test_snapshots/tests/cross_contract/select_winners_pays_against_remaining_escrow_including_top_ups.1.json
  • contracts/events/test_snapshots/tests/cross_contract/select_winners_pays_recipient_and_bumps_profile.1.json
  • contracts/events/test_snapshots/tests/cross_contract/select_winners_rejects_duplicate_position.1.json
  • contracts/events/test_snapshots/tests/cross_contract/select_winners_rejects_second_call_winners_already_selected.1.json
  • contracts/events/test_snapshots/tests/cross_contract/select_winners_replayed_reverts.1.json
  • contracts/events/test_snapshots/tests/cross_contract/select_winners_requires_position_in_distribution.1.json
  • contracts/events/test_snapshots/tests/cross_contract/submit_replayed_reverts.1.json
  • contracts/events/test_snapshots/tests/cross_contract/withdraw_submission_removes_anchor.1.json
  • contracts/events/test_snapshots/tests/cross_contract/withdraw_submission_without_submission_reverts.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/backer_pays_exactly_pledge_and_creator_bears_fee.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/builder_top_up_does_not_appear_in_contributor_list.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/cancel_after_partial_claim_pro_rates_remaining.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/cancel_refunds_all_partners_no_owner_residual.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/cancel_with_no_contributions_just_marks_cancelled.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/claim_milestone_last_drains_dust_remainder.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/claim_milestone_last_drains_dust_with_fee.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/claim_milestone_out_of_range_reverts.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/claim_milestone_replay_reverts.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/claim_milestone_splits_evenly_across_remaining.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/claim_milestone_splits_evenly_and_charges_fee_at_release.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/claim_milestone_with_empty_escrow_reverts.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/community_top_ups_raise_escrow_from_zero.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/create_rejects_distribution_with_multiple_positions.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/create_rejects_missing_deadline.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/create_rejects_single_release_kind.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/create_with_zero_owner_deposit_and_auto_registered_winner.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/crowdfunding_claim_milestone_requires_admin_auth.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/select_winners_on_crowdfunding_reverts.1.json
  • contracts/events/test_snapshots/tests/crowdfunding/submit_on_crowdfunding_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/add_funds_uses_event_override_bps.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/add_funds_zero_override_bps_charges_no_fee.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/crowdfunding_dynamic_milestone_split.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/crowdfunding_dynamic_rounding_no_dust.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/fee_account_accumulates_across_create_and_add_funds.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/fee_and_winner_balances_consistent.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/fee_rounding_on_odd_amounts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/fee_rounds_down_non_divisible_amount.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/global_fee_bps_used_when_no_override.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/grant_milestone_double_claim_rejected.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/grant_milestone_out_of_range_rejected.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/grant_milestone_pays_floored_per_milestone.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/large_budget_fee_does_not_overflow.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/mid_flight_global_bps_change_does_not_affect_override_event.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/multi_position_split_pays_correct_amounts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/override_at_max_bps_boundary_succeeds.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/override_bps_above_max_rejected.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/override_bps_used_on_create.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/partial_position_fill_leaves_residual_escrow.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/partner_funds_grow_winner_payout.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/replayed_create_event_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/replayed_select_winners_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/select_winners_duplicate_position_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/select_winners_empty_list_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/select_winners_invalid_position_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/select_winners_on_cancelled_event_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/select_winners_on_nonexistent_event_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/select_winners_twice_reverts.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/single_release_pays_full_escrow_for_100_percent.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/three_way_33_33_34_split_rounding.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/zero_global_bps_no_override_charges_no_fee.1.json
  • contracts/events/test_snapshots/tests/escrow_fee_math/zero_override_bps_skips_fee.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_already_claimed_reverts.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_earns_credits_and_bumps_reputation.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_last_sweeps_rounding_residue.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_marks_completed_on_last.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_on_single_release_reverts.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_op_replay_reverts.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_out_of_range_reverts.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_pays_fixed_per_milestone_amount.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/claim_milestone_without_being_winner_reverts.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/grant_create_with_multi_release_succeeds.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/grant_create_with_single_release_reverts.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/grant_create_with_zero_milestones_reverts.1.json
  • contracts/events/test_snapshots/tests/grant_pillar/two_winner_grant_each_claims_their_share.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/claim_milestone_on_single_release_hackathon_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/create_deposits_full_budget_and_takes_fee_at_deposit.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/create_rejects_missing_deadline.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/create_rejects_multi_release_kind.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/create_rejects_past_deadline.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/resubmit_keeps_original_timestamp_and_updates_uri.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_demands_owner_auth.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_duplicate_position_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_empty_set_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_multi_position_splits_by_distribution.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_on_completed_event_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_on_missing_event_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_position_not_in_distribution_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_replayed_op_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_second_call_reverts_winners_already_selected.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/select_winners_single_recipient_sweeps_escrow.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/submit_after_deadline_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/submit_open_without_prior_apply_creates_anchor.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/submit_replayed_op_reverts.1.json
  • contracts/events/test_snapshots/tests/hackathon_pillar/withdraw_submission_removes_anchor.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/create_event_with_deregistered_token_reverts.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/create_event_with_unsupported_token_reverts.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/deregister_removes_support.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/deregister_requires_admin_auth.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/deregister_unregistered_token_is_idempotent.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/deregister_without_admin_auth_reverts.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/multiple_tokens_registered_independently.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/register_makes_token_supported.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/register_requires_admin_auth.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/register_same_token_twice_is_idempotent.1.json
  • contracts/events/test_snapshots/tests/token_whitelist/register_without_admin_auth_reverts.1.json
  • contracts/profile/test_snapshots/tests/admin/accept_after_expiry_clears_and_reverts.1.json
  • contracts/profile/test_snapshots/tests/admin/accept_after_expiry_reverts_and_admin_must_cancel_to_prune.1.json
  • contracts/profile/test_snapshots/tests/admin/accept_before_timelock_reverts.1.json
  • contracts/profile/test_snapshots/tests/admin/apply_upgrade_after_expiry_reverts_profile.1.json
  • contracts/profile/test_snapshots/tests/admin/apply_upgrade_before_timelock_reverts_profile.1.json
  • contracts/profile/test_snapshots/tests/admin/cancel_pending_clears_proposal.1.json
  • contracts/profile/test_snapshots/tests/admin/cancel_with_no_pending_reverts.1.json
  • contracts/profile/test_snapshots/tests/admin/first_set_events_contract_succeeds.1.json
  • contracts/profile/test_snapshots/tests/admin/initializes_with_expected_config.1.json
  • contracts/profile/test_snapshots/tests/admin/migrate_marks_version_and_blocks_replay_profile.1.json
  • contracts/profile/test_snapshots/tests/admin/pause_and_unpause_round_trip.1.json
  • contracts/profile/test_snapshots/tests/admin/propose_then_accept_after_timelock_swaps_events_contract.1.json
  • contracts/profile/test_snapshots/tests/admin/propose_upgrade_records_pending.1.json
  • contracts/profile/test_snapshots/tests/admin/second_set_events_contract_reverts_already_configured.1.json
  • contracts/profile/test_snapshots/tests/bootstrap/bootstrap_self_creates_profile_for_caller.1.json
  • contracts/profile/test_snapshots/tests/bootstrap/bootstrap_self_demands_the_callers_own_auth_not_admin.1.json
  • contracts/profile/test_snapshots/tests/bootstrap/bootstrap_self_is_idempotent_for_existing_profile.1.json
  • contracts/profile/test_snapshots/tests/bootstrap/bootstrap_self_rejects_a_replayed_op_id.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_accumulates.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_auth_rejection.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_multiple_tokens.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_multiple_users.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_rejects_duplicate_op_id.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_rejects_negative.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_rejects_zero.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_reverts_no_events_contract.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_reverts_when_paused.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_saturating_add.1.json
  • contracts/profile/test_snapshots/tests/earnings/register_earnings_succeeds.1.json
  • contracts/profile/test_snapshots/tests/reputation/admin_slash_happy_path_decrements_reputation.1.json
  • contracts/profile/test_snapshots/tests/reputation/admin_slash_is_idempotent_on_replay.1.json
  • contracts/profile/test_snapshots/tests/reputation/admin_slash_rejects_non_admin_caller.1.json
  • contracts/profile/test_snapshots/tests/reputation/admin_slash_reverts_on_empty_reason.1.json
  • contracts/profile/test_snapshots/tests/reputation/admin_slash_reverts_when_paused.1.json
  • contracts/profile/test_snapshots/tests/reputation/admin_slash_reverts_when_profile_not_found.1.json
  • contracts/profile/test_snapshots/tests/reputation/admin_slash_saturates_at_zero.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_accepts_u32_max_delta_without_overflow.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_accumulates_across_calls.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_happy_path_increments_reputation.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_is_idempotent_on_replay.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_rejects_caller_without_events_contract_auth.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_reverts_when_events_contract_not_configured.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_reverts_when_paused.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_reverts_when_profile_not_found.1.json
  • contracts/profile/test_snapshots/tests/reputation/bump_zero_delta_is_noop_but_marks_seen.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_happy_path_decrements_reputation.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_is_idempotent_on_replay.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_rejects_caller_without_events_contract_auth.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_reverts_when_events_contract_not_configured.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_reverts_when_paused.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_reverts_when_profile_not_found.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_saturates_at_zero.1.json
  • contracts/profile/test_snapshots/tests/reputation/slash_zero_delta_is_noop.1.json

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.


📝 Walkthrough

Walkthrough

The change marks test_snapshots/ as generated, ignored Soroban test artifacts, updates repository guidance accordingly, and removes existing event contract snapshot JSON fixtures.

Changes

Snapshot policy

Layer / File(s) Summary
Ignore and document generated snapshots
.gitignore, CLAUDE.md
test_snapshots/ is ignored, and project guidance states that snapshots are regenerated by cargo test and should not be committed.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Poem

I’m a rabbit with a tidy nest,
Snapshots hop away when tests have guessed.
Git keeps the fluff outside the door,
Docs explain the rule once more.
Hop, hop—clean repos evermore!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/untrack-test-snapshots

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.

@0xdevcollins
0xdevcollins merged commit 188bc71 into testnet Jul 17, 2026
3 of 4 checks passed
@0xdevcollins
0xdevcollins deleted the chore/untrack-test-snapshots branch July 17, 2026 23:19
Shadow-MMN added a commit to Shadow-MMN/boundless-contract that referenced this pull request Jul 18, 2026
Resolved snapshot file conflicts by accepting upstream deletion
(snapshots are gitignored per repo convention).

Upstream changes:
- chore: stop tracking test snapshots; regenerate locally instead (boundlessfi#84)
- test(admin): assert admin auth is actually required, not just mocked (boundlessfi#78)
- fix(events): harden cancellation liveness (boundlessfi#82)
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