Conversation
Greptile SummaryThis PR completes the migration away from two legacy RPC-linking mechanisms — the string-keyed Key changes:
Confidence Score: 5/5Safe to merge — the changes are a clean, well-tested removal of legacy RPC plumbing with no correctness defects found. All remaining findings are P2. The single noteworthy point (vis module now required in dimos/agents/skills/gps_nav_skill.py — confirm the behavioural shift from optional to required Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant Blueprint
participant BlueprintAtom
participant ModuleCoordinator
participant ModuleProxy
User->>Blueprint: build()
Blueprint->>BlueprintAtom: from_module(cls)
BlueprintAtom->>BlueprintAtom: inspect type hints
Note over BlueprintAtom: _field: SomeSpec → required ModuleRef<br/>_field: SomeSpec | None → optional ModuleRef
BlueprintAtom-->>Blueprint: module_refs (required & optional)
Blueprint->>ModuleCoordinator: deploy all modules
Blueprint->>Blueprint: _connect_streams()
Blueprint->>Blueprint: _connect_module_refs()
loop for each ModuleRef
Blueprint->>ModuleCoordinator: find candidate satisfying spec
alt candidate found
Blueprint->>ModuleProxy: set_module_ref(name, target_proxy)
ModuleProxy-->>ModuleProxy: setattr(self, name, RPCClient)
else no candidate & optional
Blueprint->>Blueprint: skip (no error)
else no candidate & required
Blueprint-->>User: raise Exception (missing dependency)
end
end
Blueprint->>ModuleCoordinator: build_all_modules()
|
Problem
Still had the two old RPC linking systems.
Closes DIM-527
Solution
Breaking Changes
Old RPCs are gone.
How to Test
Contributor License Agreement