1270c4fd6763378548918470aa2a4b799c7c930d
braney
  Sat Sep 12 06:59:17 2026 -0700
urlCommandCatalog: catalog hgc's aliTrack parameter, refs #37923

aliTrackParam() puts &aliTrack=<track> on the alignment links and hgc reads it
back with cartUsualString to find the track it was called on.  aliTable cannot
serve that purpose: it is the table name from the assembly the alignments came
from, and that name usually exists on the assembly being viewed as well, so it
cannot tell a quickLifted alignment track from a native one.  Added to hgc
under #38249; it is in hgc's excludeVars, so it does not reach a saved session.

diff --git src/hg/utils/urlCommandCatalog/urlCommandCatalog.py src/hg/utils/urlCommandCatalog/urlCommandCatalog.py
index 783d78a5700..4a52a25132c 100755
--- src/hg/utils/urlCommandCatalog/urlCommandCatalog.py
+++ src/hg/utils/urlCommandCatalog/urlCommandCatalog.py
@@ -830,30 +830,40 @@
         "what": "The details page. Its command is the value of g=, which "
                 "selects among a long list of handlers, so g is a dispatch "
                 "key rather than a boolean.",
         "cmds": [
             c("g", "action", "hg/hgc/hgc.c:28618", value="<track>|<htcVerb>",
               public=True, verified=True,
               note="Which handler runs. A track name shows that track's item "
                    "details; the htc* and get* verbs are internal pages such "
                    "as getDna and htcGeneMrna."),
             c("i", "action", "hg/hgc/hgc.c:28618", value="<item>",
               public=True, verified=True, note="Item name."),
             c("i2", "action", "hg/hgc/hgc.c", value="<item>", leaks=True,
               note="Second item, for paired features."),
             c("aliTable", "action", "hg/hgc/hgc.c:28618", value="<table>",
               verified=True, note="Alignment table to pull the alignment from."),
+            c("aliTrack", "action", "hg/hgc/hgc.c:8838", value="<track>",
+              verified=True,
+              note="Track hgc was called on, put on the alignment links by "
+                   "aliTrackParam() at hgc.c:7291.  aliTable above is the table "
+                   "name from the assembly the alignments came from, and that "
+                   "name usually exists on the assembly being viewed too, so it "
+                   "cannot tell a quickLifted alignment track from a native one; "
+                   "this can.  Read with cartUsualString and looked up in "
+                   "trackHash.  Added with the quickLift alignment details pages, "
+                   "refs #38249."),
             c("addp", "action", "hg/hgc/hgc.c:28618", verified=True,
               note="Protein-alignment flag."),
             c("pred", "action", "hg/hgc/hgc.c:28618", value="<table>",
               verified=True, note="Gene prediction table."),
             c("quickLiftCcds", "action", "hg/hgc/hgc.c:28618", verified=True,
               note="quickLift CCDS hand-off."),
             c("doGetBed", "action", "hg/hgc/hgc.c:24549", verified=True, leaks=True,
               note="Return the feature as BED."),
             c("oldFonts", "action", "hg/hgc/barChartClick.c:384",
               verified=True, leaks=True,
               note="Draw bar chart details with the pre-FreeType fonts, added "
                    "so QA could compare. Retirement candidate."),
             c("hgSeq.maskRepeats", "action", "hg/hgc/hgc.c", verified=False, leaks=True,
               note="Mask repeats in retrieved sequence."),
         ],