Inspiration
A diff shows you what changed — never what those lines were holding up. The merge requests that break production are usually the small, innocent-looking ones sitting under half the codebase. GitLab Orbit already indexes the whole codebase into a Knowledge Graph, so I wanted to put that knowledge where the decision happens: inside the merge request, as a verdict and a picture.
What it does
When a merge request opens, AetherMap:
- Traces the blast radius — it walks Orbit's call graph backwards (CALLS / EXTENDS) from the changed lines to find everything the change can break.
- Scores the risk (LOW → CRITICAL), names the fragile cores (widely-called symbols), and flags the untested blast zone (impacted code with no test).
- Acts — it posts the review as a merge-request note with the impact map embedded, and applies an
aethermap::<tier>label. - Renders an interactive impact map — and can even play the blast radius as sound.
On GitLab's own codebase (over a million graph relationships indexed in about two minutes), the blast radius of the can? permission check is CRITICAL: more than 2,250 definitions affected, almost none with a test in the radius.
How I built it
- Every number comes from Orbit through its official
orbit sqlinterface — one recursive query over the graph does the core work, so the same code runs locally and in CI. - Zero runtime dependencies — even the PNG embedded in the MR comment is encoded in pure Python.
- It ships three ways: a one-line CI
include:, an Agent Skill, and a published AI Catalog agent that queries the graph live and comments on merge requests. - A remote adapter taps Orbit's SDLC graph (reviewers, vulnerabilities) via the official query DSL, schema-validated against the live schema.
I tested it honestly
I replayed 36 real Django commits (18 that were later reverted + 18 random ones). Blast radius does not predict reverts (61% vs 72% high-risk) — but it proved that the median ordinary commit silently reaches 39 downstream definitions nobody can see in a diff. So AetherMap is about visibility, not prophecy.
Challenges I ran into
Orbit's node IDs are 64-bit and overflow JavaScript's safe integers (had to remap them for the map); getting the remote query envelope right against a live, evolving API; and making one code path behave identically across local Windows and Linux CI (encodings, long paths).
Accomplishments I'm proud of
A full blast-radius review on real codebases in seconds, a genuinely beautiful dependency-free impact map (with sonification), and an honest back-test instead of a cherry-picked number.
What I learned
How much reviewing power is latent in a point-in-time SDLC graph once you can traverse it — and that the real problem isn't risky changes sneaking past review; it's that all changes are reviewed blind.
What's next
Live reviewers and vulnerability overlays from Orbit's remote graph once the namespace finishes indexing, cross-project blast radius, and inline per-symbol annotations in the diff.
Log in or sign up for Devpost to join the conversation.