@@ -587,6 +587,29 @@ func TestSearchDocs_DBFallbackIsNamespaceIsolated(t *testing.T) {
587587 }
588588}
589589
590+ func TestSearchDocs_DBFallbackDomainRuleUsesContextNamespace (t * testing.T ) {
591+ deps := setupTestDeps (t )
592+ tmpDir := t .TempDir ()
593+ deps .NamespaceRoot = filepath .Join (tmpDir , "namespaces" )
594+ deps .RagIndexDir = filepath .Join (tmpDir , ".ccg" )
595+ alpha := "alpha-service"
596+ beta := "beta-service"
597+ seedRetrieveDocsDBFallbackNode (t , deps , alpha , "alpha.Guard" , "Guard" , "guard.go" , model .TagDomainRule , "breakglass alpha approval" , "breakglass alpha approval" )
598+ seedRetrieveDocsDBFallbackNode (t , deps , beta , "beta.Guard" , "Guard" , "guard.go" , model .TagDomainRule , "breakglass beta approval" , "breakglass beta approval" )
599+ rebuildRetrieveDocsSearchBackend (t , deps , alpha )
600+ rebuildRetrieveDocsSearchBackend (t , deps , beta )
601+
602+ result := callToolWithNamespace (t , deps , alpha , "search_docs" , map [string ]any {"query" : "breakglass" , "limit" : float64 (5 )})
603+ if result .IsError {
604+ t .Fatalf ("search_docs context namespace DB fallback error: %v" , getTextContent (result ))
605+ }
606+
607+ results := decodeSearchDocsResults (t , result )
608+ if len (results ) != 1 || results [0 ].Summary != "breakglass alpha approval" {
609+ t .Fatalf ("expected only alpha domainRule result, got %#v" , results )
610+ }
611+ }
612+
590613func TestSearchDocs_DBFallbackAnnotationOnlyMatch (t * testing.T ) {
591614 deps := setupTestDeps (t )
592615 tmpDir := t .TempDir ()
0 commit comments