a8d7f7127a
* fix(langgraph-agent): describe selected primary source * fix(langgraph): isolate specialized engine loading failures * refactor(egress): centralize engine classification * fix(langgraph-agent): describe primary source neutrally * fix(langgraph-agent): address review findings on primary-source metadata - restore the pre-refactor AttributeError degradation for retriever_registry.get_metadata in _load_specialized_engine_tools: an older/minimal registry without the metadata API hands the decision to evaluate_retriever (metadata=None, PDP fails closed as retriever_unclassified) instead of being swallowed by the broad per-engine skip; regression test drives the real loop with a metadata-less registry - test the real format_primary_search_description prose unmocked, and prove end-to-end that an identifier-laden collection primary leaks no engine key, UUID, display name, or config text into the model-visible web_search description - cover the retriever-primary PUBLIC and UNSPECIFIED classification branches in _build_tools - pin the two downstream consumers of the collection is_local=True fix: settings UI keeps public collections in Local RAG, and the MCP engine listing reports them is_local=true - drop the unenforced '# allow: SIZE_OK' marker and the inert is_public/is_local attributes on the routing test's engine stand-in