Add get_parents(name_or_id: str) -> list[Resource] method to ResourceDagMixin
in _resource_registry_dag.py. The method is symmetric to the existing
get_children() method but queries ResourceLinkModel by child_id instead of
parent_id to return all direct parent resources.
Implementation details:
- Calls show_resource() first to raise NotFoundError for non-existent resources
- Queries ResourceLinkModel filtered by child_id=resource.resource_id
- Returns deterministically sorted list (by name, then resource_id)
- Exposed via ResourceRegistryService through the mixin inheritance chain
The BDD scenario 'Get parents returns all direct parents' in
resource_dag.feature now passes. All 15 existing @dag_traversal and other
DAG scenarios continue to pass with no regression.
ISSUES CLOSED: #2844