Serialize deep-cadence local-stack checks and index ProjectCreated - #136
Merged
Conversation
Share a flock between stack.fresh-seeded and stack.restart-consistency, and skip remaining local-stack cadence checks after a failure so restart cannot overlap a wipe or run against a half-destroyed chain.
PID 1 was ignoring compose stop; the wrapper maps TERM to INT and waits for the dump. Periodic --state-interval plus a block-height assertion in stack.restart-consistency catch empty reloads.
Reachable endpoints no longer pass the check; it also requires Hardhat #0 roster refs and bookmarked-causes for the funded seed wallets.
Subscribe the event cache to ProjectFactory.ProjectCreated and query it by creator topic instead of unbounded eth_getLogs from block 0.
The old regex treated any later word "merge" (including a tool description or git merge-base) as a merge onto protected branches. Parse JSON properly, detect the actual git subcommand, and restore inbox items the cherry-pick had dropped.
AdamSpitz
commented
Aug 21, 2026
AdamSpitz
left a comment
Owner
Author
There was a problem hiding this comment.
Review receipt.
Reviewed the serialize-cadence + ProjectCreated index work. Local-stack flock/skip-on-fail, Anvil SIGTERM->SIGINT dump, seed-ref probes, SDK getUserCreatedProjects via indexed ProjectCreated, and the git-mutating-subcommand matcher all look correct. Unit tests for cadence skip logic and the hook matcher pass. No blocking findings. Follow-up already in inbox: hosted indexer must reindex ProjectFactory. Optional live deep-cadence run still unchecked.
Reviewed-with: grok
Reviewed-files: 34
Reviewed-commit: 7a5ad4e
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Work that was sitting on the local-only
fix/serialize-deep-cadence-local-stackbranch, replayed onto currentdevwithout the accidental mediator commit (already in #135).stack.fresh-seededandstack.restart-consistency, and skip remaining local-stack cadence checks after a failure so restart cannot overlap a wipe.--stateon Docker SIGTERM so compose restarts keep the chain.stack.fresh-seeded(not just RPC reachability).ProjectFactory.ProjectCreatedand list created projects via a creator-filtered SDK query instead ofeth_getLogsfrom block 0.git log/git merge-basebecause a greedy regex treated the word "merge" in the tool description asgit merge.Test plan
node --test scripts/lib/deep-cadence-local-stack.test.mjspython3 .claude/hooks/git-mutating-subcommand.py --self-test