Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3123 commits
Select commit Hold shift + click to select a range
decf939
apollo_http_server: add test for the max_request_body_size config (#1…
ArniStarkware Feb 11, 2026
21dbbbb
apollo_staking: add a config to enforce virtual = actual proposer (#1…
dafnamatsry Feb 11, 2026
ab05db8
apollo_starknet_os_program: fix race condition between formatting and…
Yoni-Starkware Feb 11, 2026
800b0c0
apollo_batcher: read results before adding new task (#12114)
amosStarkware Feb 11, 2026
524e170
starknet_os_runner: delete dead http_server.rs (#12497)
avi-starkware Feb 11, 2026
dbbd121
starknet_os_runner: add concurrency and connection limits to proving …
avi-starkware Feb 11, 2026
d03faf0
apollo_reverts: yield to tokio runtime between block reverts (#12496)
noamsp-starkware Feb 11, 2026
8ce160a
apollo_http_server: add dynamic config size validation (#12438)
ArniStarkware Feb 11, 2026
4d7cc68
starknet_os: refactor create commitment infos to not panic (#12460)
AvivYossef-starkware Feb 12, 2026
6da91b5
blockifier: enable getting cairo_primitive gas cost by name (#12461)
avivg-starkware Feb 12, 2026
9cba930
apollo_central_sync: use genesis parent hash in starknet api (#11675)
amosStarkware Feb 12, 2026
92940e1
apollo_consensus_manager: fix bug no revert on consensus storage if b…
ShahakShama Feb 12, 2026
0d2c8a6
workspace: remove temporary metrics file (#12517)
dan-starkware Feb 12, 2026
a349765
starknet_patricia_storage: fix feature flags (#12508)
yoavGrs Feb 12, 2026
3d1f0ff
apollo_committer: add TOTAL_BLOCK_DURATION_PER_MODIFICATION metric an…
rotem-starkware Feb 12, 2026
2598857
ci: remove redundant tempfile (#12410)
Itay-Tsabary-Starkware Feb 12, 2026
692195c
deployment: cherry pick cdk8s in docker (#12530)
idan-starkware Feb 12, 2026
47ff3e1
starknet_os_runner: move tx hash computation into the runner (#12526)
AvivYossef-starkware Feb 12, 2026
3b2e7cf
deployment: wrap cdk8s requirements in docker container (#12335)
idan-starkware Feb 12, 2026
a5179f9
deployment: remove edited event from pull_request trigger to avoid cu…
idan-starkware Feb 12, 2026
d5830cf
apollo_consensus_orchestrator: add min gas price to fee market calcul…
ayeletstarkware Feb 12, 2026
812a29f
starknet_os_runner: fix log`s prefix (#12529)
AvivYossef-starkware Feb 12, 2026
70a3843
apollo_consensus_orchestrator: update fee market escalation value (#1…
ayeletstarkware Feb 12, 2026
09a900c
apollo_config_manager: fix config manager state to be behind a shared…
ayeletstarkware Feb 12, 2026
b4a673c
blockifier: convert builtins_to_gas to cairo_primitives_to_gas (#12462)
avivg-starkware Feb 12, 2026
7896cc0
apollo_batcher: remove unnecessary async (#12537)
amosStarkware Feb 12, 2026
85ef3bd
apollo_rpc: use genesis parent hash in starknet api (#11678)
amosStarkware Feb 12, 2026
0f22407
workspace: add .claude local config to gitignore (#12523)
dan-starkware Feb 12, 2026
d5d2195
apollo_gateway: change client side proving flag default to true (#12531)
einat-starkware Feb 12, 2026
441a583
workspace: remove unused .husky gitignore entry (#12524)
dan-starkware Feb 12, 2026
9ac3421
shared_execution_objects,starknet_os: remove tx_type arg from call_in…
Yoni-Starkware Feb 13, 2026
9c75c41
starknet_os_runner: run virtual os with state changes test (#12305)
AvivYossef-starkware Feb 13, 2026
d6516e1
apollo_mempool: rename standalone adjective variable (#12546)
dan-starkware Feb 14, 2026
b367a18
apollo_consensus_orchestrator: rename standalone adjective variables …
dan-starkware Feb 14, 2026
a1e55c6
blockifier: rename standalone adjective variables (#12548)
dan-starkware Feb 14, 2026
cf00e34
starknet_patricia: rename standalone adjective variable (#12549)
dan-starkware Feb 14, 2026
55b9606
starknet_os_runner: transfer tx test (#12326)
AvivYossef-starkware Feb 14, 2026
75abb8f
starknet_os_runner: allow fee token address overide (#12533)
AvivYossef-starkware Feb 14, 2026
07a007d
workspace: remove codecov.yml (#12541)
dan-starkware Feb 14, 2026
829d7d2
apollo_committer: rename OFFSET metric to COMMITTER_OFFSET (#12542)
rotem-starkware Feb 15, 2026
c5a7a14
chore: merge branch main-v0.14.1-committer into main-v0.14.2 (with co…
ShahakShama Feb 15, 2026
28b00d6
blockifier: make get_builtin_gas_cost private (#12485)
avivg-starkware Feb 15, 2026
538500b
apollo_consensus: add helper function to report peer (#12464)
guy-starkware Feb 15, 2026
5fc76fe
apollo_transaction_converter: add log measuring get_proof times (#12488)
einat-starkware Feb 15, 2026
f3e78c2
apollo_config_manager: add state_sync dynamic config to config manage…
nadin-Starkware Feb 15, 2026
fc6e5b0
blockifier: compute_proving_gas for cairo_primitives (#12469)
avivg-starkware Feb 15, 2026
a7c592d
starknet_os: rename standalone adjective variables (#12550)
dan-starkware Feb 15, 2026
66fb222
apollo_batcher: read results while querying retro block hash (#12538)
amosStarkware Feb 15, 2026
b4adefc
apollo_batcher: remove allow(..) when not needed (#12584)
nimrod-starkware Feb 15, 2026
3f00b5d
scripts: resolve conflicts
ShahakShama Feb 15, 2026
501ba33
apollo_committer: gate CommitBlockMock behind test cfg (#12553)
dan-starkware Feb 15, 2026
861fec9
apollo_mempool: remove dead suspended_transaction_pool module (#12557)
dan-starkware Feb 15, 2026
c65c390
blockifier_test_utils: fix colliding class hash bases for MOCK_STAKIN…
dan-starkware Feb 15, 2026
8a22260
starknet_os_runner: add self-contained Dockerfile for external builds…
avi-starkware Feb 15, 2026
8dd4aab
apollo_storage: rename standalone adjective variables (#12551)
dan-starkware Feb 15, 2026
d104900
blockifier: update gas_per_proof (#12574)
avivg-starkware Feb 15, 2026
f1e8c44
apollo_starknet_os_program: address review comments (#12467)
Yoni-Starkware Feb 15, 2026
15add40
apollo_transaction_converter: create verification handler and spawn (…
einat-starkware Feb 15, 2026
6060230
starknet_os_runner: Show execution resources in logs (#12594)
avi-starkware Feb 15, 2026
4e728ab
apollo_gateway: fix conflicts in static config and proof_archive_writ…
ArniStarkware Feb 15, 2026
8cf16fa
apollo_committer: add missing registration for AVERAGE_COMPUTE_RATE (…
rotem-starkware Feb 15, 2026
ba1d3f6
Add clippy async-safety lints to catch Mutex held across .await (#12567)
dan-starkware Feb 15, 2026
d42b027
consensus: log panics from fire-and-forget reproposal spawn (#12568)
dan-starkware Feb 15, 2026
ad67408
workspace: rename standalone adjective variables in tests (#12552)
dan-starkware Feb 15, 2026
f34e016
apollo_transaction_converter: return a verification handle when (#12239)
einat-starkware Feb 16, 2026
82dfc45
apollo_starknet_os_program: address audit comments, part 2 (#12481)
Yoni-Starkware Feb 16, 2026
cf07cec
echonet: Stop ignoring attestation reverts (#12589)
ron-starkware Feb 16, 2026
3df66c6
apollo_gateway: add cairo_native feature flag and use in node build (…
TzahiTaub Feb 16, 2026
7298fe6
apollo_consensus_orchestrator: make proof verification happen (#12240)
einat-starkware Feb 16, 2026
10f682f
blockifier: have extract_vm_resources return ExtendedExecutionResourc…
avivg-starkware Feb 16, 2026
4d49ad1
echonet: mark k8s deployment as non-evictable (#12572)
ron-starkware Feb 16, 2026
4effbc3
echonet: Tune config (#12573)
ron-starkware Feb 16, 2026
1e1e438
apollo_infra: remove unused metric getter methods (#12559)
dan-starkware Feb 16, 2026
4d85fcf
blockifier: have total_vm_resources return ExtendedExecutionResources…
avivg-starkware Feb 16, 2026
834969d
blockifier: update function name due to change in return type in PR #…
avivg-starkware Feb 16, 2026
ad81532
apollo_committer: add BLOCKS_COMMITTED metric (#12578)
rotem-starkware Feb 16, 2026
e786a7f
apollo_mempool_types: remove duplicate MempoolResult type alias from …
dan-starkware Feb 16, 2026
82dbe04
apollo_transaction_converter: small fixes RE the verification handler…
noaov1 Feb 16, 2026
8e39c54
blockifier: add proof_facts length to linear factor (#12596)
avivg-starkware Feb 16, 2026
832e2b7
blockifier: remove unused functions (#12539)
avivg-starkware Feb 16, 2026
37d6872
blockifier: add fn ExtendedExecutionResources::prover_cairo_primitive…
avivg-starkware Feb 16, 2026
a5c7fd2
apollo_batcher: log when writing the block hash (#12625)
dorimedini-starkware Feb 16, 2026
0a676e4
apollo_dashboard: average_per_block_panel util function for committer…
rotem-starkware Feb 16, 2026
391f7b8
Merge remote-tracking branch 'origin/main-v0.14.2' into shahak/merge-…
ArniStarkware Feb 16, 2026
11e87e2
apollo_dashboard: change committer metrics into MetricCounter (#12580)
rotem-starkware Feb 16, 2026
bb740e6
apollo_network: remove stale dead_code allows on StreamMap methods (#…
dan-starkware Feb 16, 2026
4202352
apollo_committer: change TOTAL_BLOCK_DURATION_PER_MODIFICATION to Met…
rotem-starkware Feb 16, 2026
db9ee20
apollo_state_sync: fix typo in config description (#12633)
Itay-Tsabary-Starkware Feb 16, 2026
d023277
apollo_consensus_orchestrator: solve merge conflict
ArniStarkware Feb 16, 2026
c47213b
starknet_committer: move into fact db filled node due to logical merg…
ArniStarkware Feb 16, 2026
08d93b3
apollo_committer: change average rate metrics to MetricCounter (#12587)
rotem-starkware Feb 16, 2026
f7ba1bb
resolve conflicts in github action and workflows
ArniStarkware Feb 16, 2026
38038e0
apollo_rpc: log server address (#12634)
Itay-Tsabary-Starkware Feb 16, 2026
8f8a855
Merge remote-tracking branch 'origin/main-v0.14.2' into shahak/merge-…
ArniStarkware Feb 16, 2026
4c59523
apollo_storage: remove stale dead_code allow on StorageReaderServer (…
dan-starkware Feb 16, 2026
27c247f
apollo_deployments: add override_committee to replaceable keys (#12637)
asmaastarkware Feb 16, 2026
52f507e
apollo_committer: change count modifications metric to MetricCounter …
rotem-starkware Feb 16, 2026
946a9dd
apollo_state_sync: change store_sierras_and_casms to be block based (…
Itay-Tsabary-Starkware Feb 16, 2026
7bc2b44
apollo_dashboard: Change panels from pod to pvc grouping and labeling…
ron-starkware Feb 16, 2026
79f6293
apollo_deployments: remove redundant ip args (#12642)
Itay-Tsabary-Starkware Feb 17, 2026
f240397
apollo_committer: remove EMPTIED_LEAVES_PERCENTAGE_PER_BLOCK metric (…
rotem-starkware Feb 17, 2026
f8c1ba4
echonet: improve deploy script namespace and port-forward (#12571)
ron-starkware Feb 17, 2026
931d9bb
apollo_deployments: add a note regarding autoscaling and loadbalancin…
Itay-Tsabary-Starkware Feb 17, 2026
68e741e
apollo_batcher,apollo_committer: make some info logs debug (#12643)
dorimedini-starkware Feb 17, 2026
785a186
blockifier_reexecution: store chain info instead of chain id (#12575)
AvivYossef-starkware Feb 17, 2026
38b5482
apollo_staking: inject the dynamic config to the MockStakingContract …
dafnamatsry Feb 17, 2026
2154a3f
starknet_os_runner: refactor crate structure (#12345)
AvivYossef-starkware Feb 17, 2026
af37c39
apollo_state_sync,apollo_node: wire up state_sync dynamic config runt…
nadin-Starkware Feb 17, 2026
11f241e
starknet_os_runner: add rpc_records infrastructure for recording and …
AvivYossef-starkware Feb 17, 2026
d3b1647
apollo_staking: add logging and metrics (#12532)
dafnamatsry Feb 17, 2026
1dbf9f1
solve merge conflicts
ArniStarkware Feb 16, 2026
e75b401
Merge remote-tracking branch 'origin/main-v0.14.2' into shahak/merge-…
ArniStarkware Feb 17, 2026
2d7c187
starknet_os_runner: add CORS config fields and validation (#12606)
avi-starkware Feb 17, 2026
515548d
apollo_committer: move CommitBlockMock to test module (#12597)
yoavGrs Feb 17, 2026
79d179f
starknet_os_runner: add recording proxy for capturing RPC responses (…
AvivYossef-starkware Feb 17, 2026
48a7ca1
apollo_class_manager: split class manager config into static and dyna…
nadin-Starkware Feb 17, 2026
6182057
apollo_batcher: fix initial value of GLOBAL_ROOT_HEIGHT (#12668)
rotem-starkware Feb 17, 2026
fa427e1
apollo_deployments: set override_committee.#is_none to true (#12645)
asmaastarkware Feb 17, 2026
dda3fc4
apollo_consensus: add missing state machine tests (#12663)
asmaastarkware Feb 17, 2026
7029a22
apollo_dashboard: add proof manager metrics (#12651)
einat-starkware Feb 17, 2026
e001ac7
apollo_deployments: change the GW run_cairo_native to true (#12616)
TzahiTaub Feb 17, 2026
c3648cc
ci: fail on any parallel bash command (#12667)
dorimedini-starkware Feb 17, 2026
6d11ba9
Merge remote-tracking branch 'origin/main-v0.14.2' into shahak/merge-…
ArniStarkware Feb 17, 2026
8fc80a5
ci: move rustfmt toolchain definition to script (#12520)
dorimedini-starkware Feb 17, 2026
ff4674d
apollo_consensus: fix state machine test after logical merge conflict
ArniStarkware Feb 17, 2026
950ff2e
Merge pull request #12569 from starkware-libs/shahak/merge-main-v0.14…
dorimedini-starkware Feb 17, 2026
e208b62
apollo_proof_manager: make fs actions async (#12654)
einat-starkware Feb 17, 2026
91dfc55
apollo_config_manager,apollo_node_config: add class manager dynamic c…
nadin-Starkware Feb 18, 2026
2cbed3a
apollo_dashboard: add metric for time to verify proofs (#12666)
einat-starkware Feb 18, 2026
6d971e9
apollo_gateway: await write to GCS after tx sent to mempool and add (…
einat-starkware Feb 18, 2026
144c45f
blockifier: in CallInfo replace resources type with ExtendedExecution…
avivg-starkware Feb 18, 2026
abf558e
apollo_propeller: add handler helper methods (#11070)
sirandreww-starkware Feb 18, 2026
6765aba
apollo_dashboard: add panel for storing proof in proof manager latenc…
einat-starkware Feb 18, 2026
8e2855c
apollo_class_manager,apollo_node: wire up class manager dynamic confi…
nadin-Starkware Feb 18, 2026
82b776f
apollo_consensus_orchestrator: fn execution_resources return Extended…
avivg-starkware Feb 18, 2026
4cea35d
chore: merge branch main-v0.14.1-committer into main-v0.14.2 (with co…
nadin-Starkware Feb 18, 2026
9b678b7
starknet_os_runner: sort contract addresses query for the offline run…
AvivYossef-starkware Feb 18, 2026
49ed470
starknet_os_runner: apply CORS middleware to JSON-RPC server (#12607)
avi-starkware Feb 18, 2026
eaf1bad
blockifier: implement contains for native classes whitelist (#12544)
ArniStarkware Feb 18, 2026
d9f1b0a
starknet_os_runner: extract prove_virtual_snos_run from prove_transac…
Yoni-Starkware Feb 18, 2026
f1d4be9
starknet_os_runner: add CORS config unit tests (#12608)
avi-starkware Feb 18, 2026
1a57853
apollo_metrics: change metric macro to use qualified paths, avoiding …
Itay-Tsabary-Starkware Feb 18, 2026
b71404b
apollo_config_manager: unify error logging (#12650)
Itay-Tsabary-Starkware Feb 18, 2026
b417c1e
apollo_bather: fix merge conflicts
nadin-Starkware Feb 18, 2026
d479b0f
apollo_config_manager: add update error metric (#12687)
Itay-Tsabary-Starkware Feb 18, 2026
180131d
apollo_batcher: thread native classes whitelist from create block bui…
ArniStarkware Feb 18, 2026
52b2451
apollo_proof_manager: measure cache lock times in log and store in proof
einat-starkware Feb 18, 2026
e299e8f
apollo_transaction_converter: make validators use task that verifies …
einat-starkware Feb 18, 2026
fe026dc
ci: restrict CODEOWNERS cargo-owners rule to root Cargo.toml only
dan-starkware Feb 19, 2026
d5a6d81
blockifier: refactor native class manager get runnable to be more rea…
ArniStarkware Feb 19, 2026
ca8c30c
starknet_os_runner: rename rpc records dir (#12674)
AvivYossef-starkware Feb 19, 2026
49d197c
Merge pull request #12688 from starkware-libs/nadin/merge-main-v0.14.…
Itay-Tsabary-Starkware Feb 19, 2026
673a42f
Merge pull request #12720 from starkware-libs/02-19-ci_restrict_codeo…
dan-starkware Feb 19, 2026
43641ab
Merge pull request #12702 from starkware-libs/einat/proof_manager/mea…
einat-starkware Feb 19, 2026
7e3c155
Merge pull request #12713 from starkware-libs/einat/add_store_to_handle
einat-starkware Feb 19, 2026
71a2a06
apollo_proc_macros: add scan_fields_visibility macro (#12617)
yoavGrs Feb 19, 2026
b8efd9a
starknet_os_runner: wire up runner tests for offline and recording mo…
AvivYossef-starkware Feb 19, 2026
8328fa9
apollo_batcher: use upgrade_fields_visibility (#12727)
dorimedini-starkware Feb 19, 2026
9a444a2
apollo_propeller: implement outbound substream with message batching …
sirandreww-starkware Feb 19, 2026
fe0fed5
apollo_infra: remove redundant macros (#12730)
Itay-Tsabary-Starkware Feb 19, 2026
83e3fe6
apollo_propeller: add concurrent streams support to handler (#11072)
sirandreww-starkware Feb 19, 2026
ee2d740
apollo_config_manager: macro for response wiring (#12641)
Itay-Tsabary-Starkware Feb 19, 2026
5915c87
starknet_os: rename n_messages_to_l1 to n_l2_to_l1_messages. (#12712)
meship-starkware Feb 19, 2026
b05be6e
apollo_dashboard: remove redundant per-env file (#12732)
Itay-Tsabary-Starkware Feb 19, 2026
b2042bf
apollo_propeller: add rate-limited queue length warnings (#11073)
sirandreww-starkware Feb 19, 2026
e859754
blockifier: ChargedResources::vm_resources to ExtendedExecutionResour…
avivg-starkware Feb 19, 2026
e744e07
apollo_propeller: add dial upgrade error handling to handler (#11074)
sirandreww-starkware Feb 19, 2026
1713647
apollo_propeller: add Event enum to types (#11194)
sirandreww-starkware Feb 19, 2026
55e846c
blockifer: small clean-ups of #12493 (#12686)
avivg-starkware Feb 19, 2026
21a93b9
ci: better rustfmt toolchain installation (#12534)
dorimedini-starkware Feb 19, 2026
ff400fb
apollo_batcher,apollo_consensus_orchestrator: Return block header com…
asmaastarkware Feb 20, 2026
75dd15c
apollo_consensus: add observer_does_not_broadcast_on_start_or_votes S…
asmaastarkware Feb 20, 2026
7083974
apollo_protobuf: Add transaction/event/receipt commitment fields to C…
asmaastarkware Feb 20, 2026
232be00
apollo_protobuf: Remove next_l2_gas_price_fri from CommitmentParts (#…
asmaastarkware Feb 20, 2026
1f29105
apollo_protobuf: make parent_commitment optional (#12503)
asmaastarkware Feb 20, 2026
b6092d5
apollo_batcher: pass parent proposal commitment in FinishedProposalIn…
asmaastarkware Feb 21, 2026
42cbf12
starknet_os_runner: virtual os prover tests (#12681)
AvivYossef-starkware Feb 22, 2026
91ab9d2
apollo_consensus_orchestrator: send CommitmentParts in Fin (#12505)
asmaastarkware Feb 22, 2026
ee7d021
apollo_propeller: add behaviour skeleton (#11195)
sirandreww-starkware Feb 22, 2026
3397ed0
blockifier: prep for following PR: get_vm_resource_usage return Exten…
avivg-starkware Feb 22, 2026
a0de94e
apollo_propeller: add minimal config (#11196)
sirandreww-starkware Feb 22, 2026
6c3ed23
apollo_propeller: add behaviour public API stubs (#11942)
sirandreww-starkware Feb 22, 2026
0bcc455
apollo_propeller: add message padding utilities (#11943)
sirandreww-starkware Feb 22, 2026
dd82207
blockifier: set missing config validations (#12695)
ArniStarkware Feb 22, 2026
4022989
apollo_batcher: remove block_header_commitments from DecisionReachedR…
asmaastarkware Feb 22, 2026
2bf7f26
apollo_dashboard: add alert for dynamic config erroneous updates (#12…
Itay-Tsabary-Starkware Feb 22, 2026
e8ade07
blockifier: convert ComputationResources::tx_vm_resources to Extended…
avivg-starkware Feb 22, 2026
818cea3
apollo_gateway: set missing config validations on config members (#12…
ArniStarkware Feb 22, 2026
bd437de
apollo_consensus: Add get_ts for Echonet (#12535)
ayeletstarkware Feb 22, 2026
e373d36
blockifier: clean cairo_primitives computation for proving_gas (#12638)
avivg-starkware Feb 22, 2026
72f7bf1
blockifier: refacot total_vm_resources to return ExtendedExecutionRes…
avivg-starkware Feb 22, 2026
cc3eb77
apollo_mempool: add queue trait abstraction (#12660)
ayeletstarkware Feb 22, 2026
255b32f
apollo_transaction_converter: refactor verification related code (#12…
noaov1 Feb 22, 2026
e053e31
apollo_propeller: add sharding module with tests (#11944)
sirandreww-starkware Feb 22, 2026
13584ac
apollo_propeller: added shard index utility functions to schedule man…
sirandreww-starkware Feb 22, 2026
fafe1a0
apollo_propeller: add MessageProcessor scaffolding (#12003)
sirandreww-starkware Feb 22, 2026
fc6ff77
apollo_gateway: clean up gateway proof code (#12778)
einat-starkware Feb 23, 2026
8ec72ab
blockifier: proof_facts length into calldata length (#12628)
avivg-starkware Feb 23, 2026
c513afa
blockifier: update get_vm_resources_cost to accept ExtendedExecutionR…
avivg-starkware Feb 23, 2026
581a728
blockifier: compute sierra gas with opcodes (#12600)
avivg-starkware Feb 23, 2026
3d45db9
apollo_batcher_config: add native_classes_whitelist to dynamic config…
ArniStarkware Feb 23, 2026
a231bea
apollo_transaction_converter: make verify spawn blocking (#12812)
einat-starkware Feb 23, 2026
ad84af4
shared_execution_objects: report opcodes in ResourcesMapping (#12603)
avivg-starkware Feb 23, 2026
96cce70
apollo_proof_manager: remove cache log (#12815)
einat-starkware Feb 23, 2026
5c578e3
apollo_propeller: implemented MessageProcessor (#12780)
sirandreww-starkware Feb 23, 2026
da4a9f9
blockifier: fix test_gas_computation_regression_test for client side …
avivg-starkware Feb 23, 2026
f686ba8
apollo_propeller: implemented a simple time cache (#12024)
sirandreww-starkware Feb 24, 2026
367909b
starknet_os_runner: refactor debug print of proof (#12757)
AvivYossef-starkware Feb 24, 2026
e733a7e
apollo_consensus: refactor shc tests with shared helpers (#12801)
asmaastarkware Feb 24, 2026
f7a6168
apollo_consensus: rename metric to consensus_proposals_accepted_for_v…
asmaastarkware Feb 24, 2026
97f11e2
apollo_consensus: add votes_meet_threshold helper (#12664)
asmaastarkware Feb 24, 2026
f1fa82e
blockifier: add mul extended execution resources (#12758)
avivg-starkware Feb 24, 2026
e82b33b
apollo_propeller: add stale_message_timeout to Config (#12025)
sirandreww-starkware Feb 24, 2026
cb9caad
workspace: add claude code security settings (#12733)
dan-starkware Feb 24, 2026
3f0847b
apollo_staking: get block hash from Batcher with fallback to StateSyn…
dafnamatsry Feb 24, 2026
e06d056
blockifier: refactor extended execution resources use (#12817)
noaov1 Feb 24, 2026
df37de0
workspace: add code style rules for claude code (#12750)
dan-starkware Feb 24, 2026
6a8afcc
apollo_staking: move randomness block hash to be inside the random ge…
dafnamatsry Feb 24, 2026
ece4153
workspace: add CLAUDE.md project instructions (#12754)
dan-starkware Feb 24, 2026
91398ae
apollo_transaction_converter: align proving deps with stwo 1.0.1 (#12…
avi-starkware Feb 24, 2026
2f0d5be
apollo_mempool: move pending_txs func to trait (#12829)
ayeletstarkware Feb 24, 2026
16c6c27
apollo_mempool: share code in tests (#12828)
ayeletstarkware Feb 24, 2026
a342921
apollo_starknet_client: add block post 0.14.2 (#12826)
avivg-starkware Feb 24, 2026
8cc24d7
apollo_mempool: add update_timestamp func to mempool (#12835)
ayeletstarkware Feb 24, 2026
5778a87
apollo_consensus: StreamHandler config includes max_peers (#12735)
guy-starkware Feb 24, 2026
4a4f8a7
apollo_propeller: added engine task (#12026)
sirandreww-starkware Feb 24, 2026
e522820
blockifier: remove native_classes whitelist from the static config (#…
ArniStarkware Feb 25, 2026
a0f3ab6
blockifier: change ExpectedResultTestInvokeTx::resources to ExtendedE…
avivg-starkware Feb 25, 2026
57622ff
blockifier: replace flags in cairo native run config with enum (#12717)
ArniStarkware Feb 25, 2026
0901240
apollo_class_manager,apollo_state_sync: convert tests to async with t…
nadin-Starkware Feb 25, 2026
99e0f64
apollo_proof_manager: remove redundant contains proof check (#12852)
einat-starkware Feb 25, 2026
eb81d09
blockifier_test_utils: fix allowed_libfuncs deserialization for legac…
avi-starkware Feb 25, 2026
8b6720c
deployment: add graphite ci-optimizations for hybrid_system_test (#12…
idan-starkware Feb 26, 2026
ed59353
apollo_http_server: remove deprecated todo message (#12875)
Itay-Tsabary-Starkware Feb 26, 2026
aa47a36
apollo_integration_tests: fix port allocation to generate unique port…
nadin-Starkware Feb 26, 2026
2b5f379
workspace: remove strum_macro direct dependency (#12874)
Itay-Tsabary-Starkware Feb 26, 2026
d12aeab
deployment: Use ubuntu-24.04 for optimize_ci in blockifier_compiled_c…
idan-starkware Feb 26, 2026
40555ae
deployment: Use ubuntu-24.04 for optimize_ci in blockifier_reexecutio…
idan-starkware Feb 26, 2026
0b572b5
apollo_propeller: integrate engine into behaviour (#12029)
sirandreww-starkware Feb 26, 2026
b7240ec
deployment: Use ubuntu-24.04 for optimize_ci in blockifier_ci (#12894)
idan-starkware Feb 26, 2026
5abd11a
deployment: Use ubuntu-24.04 for optimize_ci in committer_ci (#12895)
idan-starkware Feb 26, 2026
cbbf727
deployment: Use ubuntu-24.04 for optimize_ci in committer_and_os_cli_…
idan-starkware Feb 26, 2026
d83a499
starknet_os_runner: add stwo_proving feature gates and compile-safe f…
avi-starkware Feb 26, 2026
a93ac65
blockifier: native entry point: get cairo_primitive_counters (#12881)
avivg-starkware Feb 26, 2026
6ef0f60
deployment: Use ubuntu-24.04 for optimize_ci in hybrid_system_test (#…
idan-starkware Feb 26, 2026
79eae42
deployment: Use ubuntu-24.04 for optimize_ci in sequencer_cdk8s-test …
idan-starkware Feb 26, 2026
01c3593
Apply fork patches to upstream main-v0.14.2
gabrielbosio Feb 26, 2026
e93d784
Fix sierra-emu syscall handler trait bound in executor
gabrielbosio Feb 26, 2026
07e4e75
Pin cairo-native and sierra-emu to rev instead of branch
gabrielbosio Feb 26, 2026
995d850
Normalize sierra-emu git URL to match cairo-native
gabrielbosio Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 0 additions & 8 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,3 @@
LLVM_SYS_191_PREFIX = "/usr/lib/llvm-19/"
MLIR_SYS_190_PREFIX = "/usr/lib/llvm-19/"
TABLEGEN_190_PREFIX = "/usr/lib/llvm-19/"

# Use `lld` for linking instead of `ld`, since we run out of memory while linking with `ld` on
# 16-cores linux machines, see:
# https://nnethercote.github.io/perf-book/build-configuration.html#linking.
# TODO(Gilad): remove this once `rust` stabilizes `lld` as the default linker, currently only on nightly:
# https://github.com/rust-lang/rust/issues/39915#issuecomment-618726211
[target.'cfg(all(target_os = "linux"))']
rustflags = ["-Clink-arg=-fuse-ld=lld"]
81 changes: 81 additions & 0 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# CLAUDE.md

## Security Warnings

**CRITICAL**: Never read, modify, or expose secret/credential files:
- Files: `.env`, `*_secrets.json`, `*keys.json`, Kubernetes `secret.yaml`
- Patterns: `*secret*`, `*key*.json`, `.env*`

## Project Overview

Starknet sequencer (Apollo) - modular blockchain sequencer in Rust. Components are wrapped in servers (local or remote). Local servers use tokio mpsc channels; remote servers use HTTP with JSON serialization (via hyper). Deployment topology is configured without code changes.

**Tx ingestion**: Gateway → Mempool (+ P2P propagation)
**Block production**: Consensus Manager orchestrates Batcher (pulls from Mempool + L1 Provider, executes via Blockifier)
**Finalization**: Batcher commits → Committer (state root) → State Sync

**Crate pattern**: Each component has 3 crates: `apollo_*` (logic), `apollo_*_config`, `apollo_*_types`

**Storage**: Apollo storage (MDBX) for sync, batcher & class manager; RocksDB with Patricia merkle trees for state commitment

## Essential Commands

**Python scripts require the venv**: Run `source sequencer_venv/bin/activate` first.

```bash
cargo build -p <package>
SEED=0 cargo test -p <package>
unset CI && scripts/rust_fmt.sh
python scripts/run_tests.py --command clippy --changes_only --commit_id HEAD
python scripts/run_tests.py --command integration --changes_only --include_dependencies --commit_id HEAD
```

## Git Workflow

Commit format (enforced by commitlint in CI): `scope[,scope2,...]: subject`

- **No type prefix** - don't use `feat:`, `fix:`, etc.
- **Scope required** - use crate names: `apollo_gateway`, `blockifier`, etc.
- **Special scopes**: `ci`, `deployment`, `release`, `scripts`, `workspace`, `infra`
- **Max 100 chars**

Examples:
```
apollo_gateway: add transaction validation caching
apollo_mempool,apollo_batcher: optimize streaming
ci: update rust toolchain
```

## Code Conventions

### Project Patterns
- Types crate has `communication.rs` with Client trait, Request/Response enums
- Config structs implement `SerializeConfig`
- Test-only code gated with `#[cfg(any(feature = "testing", test))]`
- Mock traits use `mockall` with `#[cfg(feature = "testing")]`
- Metrics use `apollo_metrics` framework

## Common Gotchas

- **Proto rebuild**: `cargo clean -p apollo_protobuf && cargo build -p apollo_protobuf`
- **Dashboard regen**: `cargo run --bin sequencer_dashboard_generator`
- **Test isolation**: Use `tempfile::TempDir` for storage paths in tests
- **Cairo native feature**: When modifying `cairo_native`-gated code, verify with `cargo check -p blockifier --features cairo_native`
- **CI flaky tests**: `blockifier_reexecution` can fail from transient GCloud network issues (not code-related). `merge-gatekeeper` fails when other checks fail (downstream).
- **Feature flag removal**: `define_infra_metrics!` and `define_metrics!` macros expand code with `cfg(feature = "testing")`. Crates using these macros MUST keep `testing = []` in Cargo.toml even if it looks unused — `check-cfg` will error otherwise. Grep for macro invocations, not just direct `cfg` checks.
- **Adding `Copy` derive**: Search the entire codebase for `.clone()` on that type (including tests, other crates). Clippy treats `clone_on_copy` as deny-level in CI.

## Mandatory Practices

### Debugging
When encountering any bug, test failure, or unexpected behavior: investigate the root cause before proposing fixes. Read error messages, trace the execution path, and form a hypothesis. Do not guess-and-check. If `/systematic-debugging` or `/debugging-wizard` skill is available, invoke it.

### Verification
Before claiming work is complete, fixed, or passing: run the relevant verification commands fresh and confirm the output. No claims without evidence. "Should work" is not verification. If `/verification-before-completion` skill is available, invoke it.

### Receiving Code Review
When addressing PR review comments: read the full comment, understand the reviewer's intent, and verify the suggestion is technically correct before implementing. Do not blindly apply feedback — push back if the suggestion would introduce a bug or violate project conventions. If `/receiving-code-review` skill is available, invoke it.

## Code Guidelines

Reusable coding lessons are in `.claude/rules/code-style.md`.
158 changes: 158 additions & 0 deletions .claude/rules/code-style.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Code Guidelines

Reusable lessons from code reviews and debugging in this codebase. Update this when a review or debugging session reveals a generalizable pattern.

---

## Naming

### Every name must answer "what is this?"
- A variable name should be a noun or noun phrase that identifies what it holds — readable without surrounding context
- The core test: if you see the name on its own line, can you tell what it represents?

### No standalone adjectives
- Adjectives describe a quality but not the thing itself; always pair with the noun
- Bad: `pending`, `remaining`, `discovered`, `complete`, `invalid`
- Good: `pending_futures`, `remaining_channels`, `discovered_channels`, `complete_entries`, `invalid_keys`

### No single-letter variables
- Single letters carry no meaning outside of trivial closures passed to stdlib combinators
- Bad: `i`, `s`, `n`, `f` as local variables
- Good: `channel_offset`, `channel_slots`, `num_items`, `felt_value`
- Exception: Single-letter closure params where the type and context make the meaning obvious (e.g., `.map(|x| x + 1)`, `.filter(|c| c.is_complete())`)

### No contractions or abbreviations
- Spell out the full word; the saved keystrokes aren't worth the mental tax on readers
- Bad: `ch`, `sc`, `futs`, `val`
- Good: `channel`, `subchannel`, `pending_futures`, `value`
- Exception: Abbreviations established by the domain (e.g., `tx` for transaction, `addr` for address, `pk` for public key, `ctx` for context, `msg` for message)

### Disambiguate counts from collections
- When a name represents a count, make that explicit with a prefix (`n_`, `num_`) or suffix (`_count`)
- Bad: `transactions` (Vec or count?), `total` (total of what?)
- Good: `num_transactions`, `transaction_count`

### Consistent terminology
- Use the same term for the same concept across parameters, fields, and documentation
- If a term is renamed, rename it everywhere — partial migrations create confusion

---

## Documentation

### Match documentation to code identifiers
- Doc comments should use the exact parameter and field names from the code

### Document semantic meaning, not just types
- Clarify behavioral details that the type signature doesn't convey
- For indices: inclusive vs exclusive; for optionals: what `None` means; for ranges: whether bounds are included

---

## Async

### Cancellation safety
- Be careful with `select!` — understand which futures are cancel-safe
- Dropped futures may leave shared state in an inconsistent state

---

## Edge Cases

### Treat user-provided values as adversarial
- Any value deserialized from an HTTP request, query parameter, or other external input must be assumed hostile
- Trace user-controlled values through the full call graph — can they cause DoS, OOM, panics, or resource exhaustion?
- Cap allocations derived from user input with hard limits

### Never panic on data reachable from requests
- Code reachable from HTTP handlers or external input must never use `.unwrap()`, `.expect()`, or unchecked indexing on values derived from that input
- Reserve panics for compile-time invariants where failure is a programmer bug, not a runtime possibility
- Return `Result` with a descriptive error variant, or use saturating/capping alternatives

### Prefer defensive arithmetic
- Use operations that handle edge cases gracefully, even if guards exist
- Prefer `saturating_sub`, `checked_mul`, etc. over raw arithmetic that could underflow/overflow if guards are later refactored

### Prefer intuitive API semantics over internal convenience
- Design APIs so callers don't need to know implementation details
- Avoid requiring callers to do adjustments like `start_index + 1`

### Simplify when defaults add no value
- If `None` just means a default value, consider using a plain type instead
- `start_index: u64` with default 0 is simpler than `Option<u64>` where `None` means 0

---

## Brevity

### Inline expressions that save >2 lines
- Inline expressions where doing so saves more than 2 lines without making the resulting line excessively long
- Prefer `map_or(default, |x| x + 1)` over `map(|x| x + 1).unwrap_or(default)`

### Inline trivial expressions
- Avoid separate `let` bindings for trivial expressions like `.clone()` when used immediately
- Inline directly in function arguments if it doesn't hurt readability

### Check for existing utilities before adding new ones
- Before writing a local helper function, search the codebase for existing shared utilities
- If similar code exists in multiple places, extract to a shared module

---

## Comments

### Explain WHY, not WHAT
- Add comments where the reasoning isn't obvious from context
- Focus on decisions, constraints, and non-obvious requirements

### No visual separator comments
- Don't use decorative comment lines to delineate sections (e.g., `// -----------`, `// =========`)
- Rely on blank lines and module organization for readability

### Document implicit structures
- When code relies on conventions or layouts, make them explicit
- Storage layouts, protocol-specific ordering, cryptographic choices

---

## Testing

### Never mask test failures
- Failing tests indicate real problems; hiding them hides bugs
- Fix the root cause instead of using `#[ignore]` or similar
- If a test fails due to stale fixture data, regenerate the fixture — don't ignore the test

### Cover edge cases systematically
- Test boundary conditions, empty inputs, and failure modes
- For pagination, test with no items, exactly one page, and partial pages

### Use accurate test names
- Test names should precisely describe the scenario being verified
- `test_empty_collection` vs `test_no_new_items` convey different conditions

### Match assertions to fixture guarantees
- Only assert on data presence when the fixture explicitly guarantees that data exists
- For structural/protocol tests, verify correctness of whatever data is returned without assuming specific content

### Verify base state before debugging failures
- When a test fails unexpectedly, first verify the code at HEAD actually compiles and tests pass
- `git stash && cargo build` to check if the original code even compiles before investigating test logic

---

## Module Organization

### Public entry points first
- Place public functions at the top of the module, before their private helpers
- Readers should encounter the high-level orchestration first and drill into details top-down

### Imports at scope top, not inline
- Place `use` statements at the top of the scope they serve — module-level for module-wide usage, `#[cfg(test)] mod tests` top for test-only usage
- Never put `use` inside function bodies; hoist to the enclosing module
- Use short imported names in signatures and bodies, not inline qualified paths like `super::types::Foo`

---

## Lessons

<!-- Add new lessons from code reviews and debugging below. Periodically promote them to a named section above. -->
55 changes: 55 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"permissions": {
"deny": [
"Read(**/*secret*.json)",
"Read(**/*secret*.yaml)",
"Read(**/*key*.json)",
"Read(**/*key*.yaml)",
"Read(**/.env)",
"Read(**/.env.*)",
"Edit(**/*secret*.json)",
"Edit(**/*secret*.yaml)",
"Edit(**/*key*.json)",
"Edit(**/*key*.yaml)",
"Edit(**/.env)",
"Edit(**/.env.*)",
"Write(**/*secret*.json)",
"Write(**/*secret*.yaml)",
"Write(**/*key*.json)",
"Write(**/*key*.yaml)",
"Write(**/.env)",
"Write(**/.env.*)"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [
{
"type": "command",
"command": "if echo \"$CLAUDE_FILE_PATH\" | grep -qE 'secret.*\\.(json|yaml)$|([^a-zA-Z]|^)keys?[^a-zA-Z].*\\.json$|([^a-zA-Z]|^)keys?\\.json$|\\.env(\\.|$)'; then echo 'BLOCKED: Cannot edit sensitive files' && exit 1; fi"
}
]
},
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "if echo \"$CLAUDE_FILE_PATH\" | grep -qE 'secret.*\\.(json|yaml)$|([^a-zA-Z]|^)keys?[^a-zA-Z].*\\.json$|([^a-zA-Z]|^)keys?\\.json$|\\.env(\\.|$)'; then echo 'BLOCKED: Cannot write to sensitive files' && exit 1; fi"
}
]
},
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "if echo \"$CLAUDE_BASH_COMMAND\" | grep -qE '(^|&&|;|\\|)\\s*(git|gt) add (-A|--all|\\.(\\s|$))'; then echo 'BLOCKED: Stage specific files instead of git/gt add -A or git/gt add .' && exit 1; fi"
}
]
}
]
}
}
16 changes: 16 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[profile.default]
slow-timeout = { period = "60s", terminate-after = 2 }

[test-groups.serialized]
max-threads = 1

# serialized tests (mostly integration tests)
[[profile.default.overrides]]
# TODO(victork): evaluate whether these are indeed required to run sequentially
filter = '(package(apollo_integration_tests) & kind(test)) | package(apollo_network) | (package(apollo_l1_provider) & kind(test))'
test-group = 'serialized'

# slow test exception whitelist
[[profile.default.overrides]]
filter = 'none()'
slow-timeout = { period = "120s", terminate-after = 2 }
15 changes: 15 additions & 0 deletions .cursor/hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"version": 1,
"hooks": {
"afterFileEdit": [
{
"command": "python3 .cursor/hooks/format_after_file_edit.py"
}
],
"afterTabFileEdit": [
{
"command": "python3 .cursor/hooks/format_after_file_edit.py"
}
]
}
}
Loading
Loading