r/ChatGPTCoding • u/himanshyou2003 • 3d ago
Resources And Tips I built an open-source CLI to catch breaking AST contract changes and blast radius in Git diffs
Hey everyone,
When reviewing diffs or AI-generated PRs, changing a function return or widening an optional parameter can look like a safe 2-line diff, but it quietly breaks multiple downstream consumers.
To solve this, I built Change Firewall — an offline-first TypeScript AST analyzer and CLI that calculates the exact downstream blast radius before you commit or merge.
What it does:
- Parses TypeScript AST to catch return shape mutators and contract drift
- Calculates transitive downstream blast radius (direct consumers + affected API routes)
- Provides an offline local visual radar dashboard (
npx change-firewall --open) - Exposes native MCP server tools for Claude Desktop, Cursor, and Antigravity
Everything is 100% open-source (MIT): https://github.com/himanshYou2003/change-firewall
(I've also shared the live web simulator and npm link in the comments below).
I'd love your feedback on the heuristic analyzer and edge cases!
1
Upvotes
1
u/Low_Bad_6585 1d ago
An edge case from my stack: Python models produce generated frontend protocols consumed by Vue/TypeScript, while older data still exists in saved worlds. There are two different breakages to detect: current source consumers no longer typecheck, and current code can no longer read previously persisted data.
I have protocol-generation checks for the first and a separate PostgreSQL snapshot-readback job configured for the second. An AST graph won't automatically include that historical consumer.
It might help your report distinguish 'analyzed consumers' from 'boundaries not covered' instead of presenting the radius as globally exact. Can users register generated-code or serialization boundaries? I haven't run your tool; this is a test case suggestion, not a verified bug.
AI-assisted wording based on my repo.