4bf8479a43a493e2899953b7358c9464abbc3959
braney
  Wed Sep 23 17:15:55 2026 -0700
docent: regression scripts load sessions from text files, not from one machine's hgcentral, refs #38252

A named session runs only on the machine whose hgcentral holds it, so hgwbeta and the RR
answered "Could not find session".  The sessions are now text files in
regress/sessionFiles, saved with hgSession's own save to file, and the scripts load them
by raw GitHub URL.  rm36805, rm35580 and rm36340 pass on genome-test and hgwbeta.

rm36340's session held its custom tracks as a customTrash table on genome-test.  The
track source is a file of its own now, loaded through hgt.customText, without two
commented-out tracks whose URLs carry a password.  Its first check now asks for a custom
track row and the hub's row, and fails when the session file does not load.

A lifted session cannot be a file: it names its quickLift hub by a path on the server
that made it, and re-pointing it does not work (#38046).  rm37388, rm37389 and rm38272
build that lift in steps instead, the GenArk GCA_018466835.2 mitochondrion lifted to hg38,
and pass on genome-test and hgwbeta.  rm38272 also fails on genome.ucsc.edu (v503) at its
settings page, with the bug's own error, so it gains a release-ab proof line.

diff --git src/hg/utils/docent/tests/regress/rm38272.docent.yaml src/hg/utils/docent/tests/regress/rm38272.docent.yaml
index 27baf313759..da9c41580d5 100644
--- src/hg/utils/docent/tests/regress/rm38272.docent.yaml
+++ src/hg/utils/docent/tests/regress/rm38272.docent.yaml
@@ -21,37 +21,45 @@
 # :4202, just after the "Remove from QuickLift" link at :4118. Fixed, the same page is 2800
 # characters. hgwbeta still gave the 451-character page that morning, so the two were seen
 # side by side.
 #
 # The assertions are on text that exists only past the point where the broken page stopped.
 # "RefSeq mRNAs Track Settings" is deliberately NOT one of them: the 451-character page
 # carries that heading too, so it never told the two apart. "Color track by codons" comes
 # from cfgByCfgType() and "Data schema/format description and download" from extraUiLinks(),
 # which are two of the three routines that were handed the bad db.
 #
 # It reproduces from scratch with no session at all -- open GenArk GCA_018466835.2 at
 # CM089257.1:80,200,000-80,360,000, leave the default tracks alone, QuickLift to hg38, click
 # the gear on RefSeq mRNAs. The script that checks any server that way is at
 # /hive/groups/browser/redmineNotes/38252/claude/repro_37388_hgTrackUi.js.
 #
-# This script uses the braney/crash1 session instead, because that is the cheap way to the
-# same state and rm37388 already depends on it, so preflight covers it either way.
+# This script builds the same kind of state in steps, on the mitochondrion the way rm37388
+# does.  It used to load the saved session braney/crash1, which only genome-test could load.
 proof:
   - "server-flip 2026-09-06 -- cdb348c5512 reached genome-test and the nightly's xfail passed; hgwbeta still served the 451-character page that morning"
+  - "release-ab 2026-09-23 -- with the lift built in steps: fails on genome.ucsc.edu (v503) at step 7, whose page says Couldn't set connection database, and passes on hgwbeta (v504) and genome-test"
 
 target: genome-test
 db: hg38
 reset: true
 fast: true
 steps:
-  - loadSession: {user: braney, name: crash1}
-  - expect: {noText: "Could not find session", rows: [xenoRefGene]}
+  # The lifted view is built in steps, not loaded from a session.  A quickLift session names
+  # its hub by a path on the server that made it, and re-pointing it does not work (#38046),
+  # so braney/crash1 ran only on genome-test.  These steps run on any server.  They lift the
+  # mitochondrion of GenArk GCA_018466835.2 to hg38, the state crash1 held.
+  - goto: "/cgi-bin/hgTracks?db=GCA_018466835.2&position=chrMT_JAGYVI020000079v1_random:1-16566&pix=1100"
+  - expect: {rows: [xenoRefGene]}
+  - goto: "/cgi-bin/hgConvert?db=GCA_018466835.2&position=chrMT_JAGYVI020000079v1_random:1-16566&hglft_toOrg=Human&hglft_toDb=hg38&doQuickLift=on&hglft_doConvert=submit"
+  - click: 'a[href*="hgTracks?"][href*="quickLift."]'
+  - expect: {rows: [xenoRefGene], text: "chrM"}
 
   # The track's own settings link, which is the gesture a user makes to configure a lifted
   # track. hgTrackUi has no track image, so there is no row to assert on: the checks are on
   # the page text.
   - click: 'a[href*="hgTrackUi"][href*="xenoRefGene"]'
 
   - expect:
       text: "Color track by codons"
       noText: "Couldn't set connection database"
   - expect: {text: "Data schema/format description and download"}