Yimo/feat/graphviz rpc - #3693
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Greptile SummaryThis change adds a Confidence Score: 4/5The graph command is not safe to merge as-is for deployments that contain multiple named instances of the same module class, because it can display incorrect RPC provider relationships. A focused executed reproduction exercised the exact multi-instance resolution path and directly observed the renderer discard the instance identities in its emitted DOT. Files Needing Attention:
What T-Rex did
|
| caller=atom.module.__name__, | ||
| provider=provider.module.__name__, |
There was a problem hiding this comment.
RPC instance identities collapse
_resolve_rpc_connections stores atom.module.__name__ and provider.module.__name__, discarding the Blueprint atom names that distinguish instances. Two independently resolved same-class relationships, such as robot0/caller → robot0/provider and robot1/caller → robot1/provider, therefore render as one Caller → rpc_Caller_service → Provider topology with duplicate edges. Use atom.name and provider.name for the connection identities, and add a regression case with multiple namespaced instances of the same caller/provider classes.
Artifacts
Executable reproduction source for two namespaced same-class RPC pairs
- Creates two independent same-class Blueprint instance pairs, resolves their ModuleRef providers, renders DOT, and asserts the observed collapse.
Resolved per-instance RPC dependencies before DOT rendering
- The executed script shows `robot0/caller` resolves to `robot0/provider` and `robot1/caller` resolves to `robot1/provider`, establishing the distinct relationships the renderer must preserve.
DOT output with same-class RPC instances collapsed
- The executed renderer produces two identical class-name RpcConnections and one repeated `rpc_Caller_service` DOT identity, confirming the topology collapse.
❌ 1 Tests Failed:
View the full list of 1 ❄️ flaky test(s)
To view more test analytics, go to the Test Analytics Dashboard |
04d1aa6 to
6570872
Compare
|
looks great can we make rpc render an optional boolean then ready to merge |
Problem
Blueprint topology was difficult to inspect from the CLI. The existing Graphviz renderer only showed stream connections and did not visualize RPC dependencies.
Solution
dimos graphto generate a Blueprint topology SVG.How to Test