94041c12e043016875ebd340568bda0ccaf122f6
lrnassar
  Wed Jul 8 13:53:22 2026 -0700
Add db= to cross-CGI hgTracks/hgTrackUi/hgc links to prevent wrong-assembly errors. refs #37840

Completes the incomplete work from #26892: links from the browser to a different
CGI omitted db=, so the target CGI fell back to the cart's db (often wrong),
producing "Can't find <track> in track database <db>" errors and broken shared
links. Adds the current-assembly db to link builders across hgTracks
(chromGraphTrack, expRatioTracks, config ruler and per-track configure links,
variation), hgVai, hgFileUi, hgGtexTrackSettings, hgBlat, hgGene, hgNear, the
barChart/GTEx faceted UI (facetedBar, barChartUi, gtexUi), and the hgTrackUi
group-configure link.

diff --git src/hg/hgGene/pseudoGene.c src/hg/hgGene/pseudoGene.c
index 3926510fae1..5b49b9e1c4f 100644
--- src/hg/hgGene/pseudoGene.c
+++ src/hg/hgGene/pseudoGene.c
@@ -76,31 +76,31 @@
     refseq	= row[4];
     rtype	= row[5];
     score	= sqlUnsigned(row[6]);
    
     desc = emptyStr;
     sqlSafef(condStr, sizeof(condStr), "acc='%s'", refseq);
     descID= sqlGetField(database, gbCdnaInfoTable, "description", condStr);
     if (descID != NULL)
     	{
     	sqlSafef(condStr, sizeof(condStr), "id=%s", descID);
     	desc = sqlGetField(database, descriptionTable, "name", condStr);
 	if (desc == NULL) desc = emptyStr;
 	}
    	
     webPrintLinkCellStart();
-    hPrintf("<A HREF=\"hgc?g=ucscRetroAli&i=%s\">%s</A>", name, name);
+    hPrintf("<A HREF=\"hgc?db=%s&g=ucscRetroAli&i=%s\">%s</A>", database, name, name);
     webPrintLinkCellEnd();
     webPrintLinkCellStart();
     hPrintf("%s ", rtype);
     webPrintLinkCellEnd();
     webPrintLinkCellStart();
     hPrintf("%d ", score);
     webPrintLinkCellEnd();
     webPrintLinkCellStart();
     hPrintf("<A HREF=\"hgTracks?position=%s:%s-%s&ucscRetroAli=pack&hgFind.matches=%s,\">%s:%s-%s</A>",
            chrom, chromStart, chromEnd, name, chrom, chromStart, chromEnd);
     webPrintLinkCellEnd();
     webPrintLinkCellStart();
     hPrintf("%s\n", desc);
     webPrintLinkCellEnd();
     hPrintf("</TR>\n<TR>");