97557b2dab79bd19b0345f1ea49a233c191300ae
braney
  Sat Sep 12 06:59:07 2026 -0700
hgConfCatalog: cite skipMalformedCgiPairs where the tree actually reads it, refs #37925

The row cited lib/cheapcgi.c, which is where the flag takes effect but not
where it is read: the kent libraries cannot read hg.conf at all.  The read is
hg/lib/hgConfig.c:227, which hands the setting to cheapcgi through
cgiSkipMalformedPairs.  The nightly reconcile had been reporting the row as
citing a file the read has left.

diff --git src/hg/utils/hgConfCatalog/hgConfCatalog.py src/hg/utils/hgConfCatalog/hgConfCatalog.py
index 4d2713464ec..700bb694013 100755
--- src/hg/utils/hgConfCatalog/hgConfCatalog.py
+++ src/hg/utils/hgConfCatalog/hgConfCatalog.py
@@ -248,31 +248,31 @@
     "vars": [
         h("showTxCodonNumbers", "flag", "hg/hgTracks/cds.c", default="FALSE",
           role="gate", verified=True, ticket="38298",
           note="A second codon number in the gene-track codon mouseover, counted in the "
                "transcript's own coordinates, for a transcript that aligns with bases the "
                "assembly does not have.  The number the browser has always shown is counted "
                "along the genome, so for those transcripts it disagrees with the number NCBI "
                "reports, by one codon per three missing bases.  It affects 58 coding "
                "transcripts on hg38's primary chromosomes but 656 on canFam3, and gets worse "
                "the poorer the assembly.  With the gate on, such codons also draw in the "
                "browser's existing query-insertion orange with a \"!\" after the codon "
                "number.  Read once in txCodonNumbersEnabled(); with it off no alignment is "
                "looked up, no codon carries a transcript number, and the rendering and the "
                "mouseover are byte-identical to before.  Off during QA; flip to TRUE once "
                "released."),
-        h("skipMalformedCgiPairs", "flag", "lib/cheapcgi.c", default="FALSE",
+        h("skipMalformedCgiPairs", "flag", "hg/lib/hgConfig.c", default="FALSE",
           role="gate", verified=True, ticket="38340",
           note="Step over a CGI or cookie pair that has no =value, instead of losing the "
                "pair after it or aborting the request.  Covers parseCookies in cheapcgi, "
                "hgSession's session backup, and refreshNamedSessionCustomTracks.  The query "
                "string parsers were fixed unconditionally under #38335 and do not read this "
                "flag.  The kent libraries cannot read hg.conf, so hgConfig.c hands the "
                "setting to cheapcgi through cgiSkipMalformedPairs.  Off during QA; flip to "
                "TRUE once released."),
         h("collectionHubCopyOnWrite", "flag", "hg/lib/cart.c", default="FALSE",
           role="gate", verified=True, ticket="38273",
           note="Copy a track collection's generated hub file when the program that writes "
                "it (only hgCollection) asks for a copy, instead of on every session load.  "
                "With it off, loading any session that carries a collection copies the hub to "
                "a new trash file and registers that copy in hgcentral.hubStatus, which is "
                "where 81% of the RR's 3.1M hubStatus rows came from.  Read in "