You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Metadata fields: make course-vocabulary load errors visible (roster.yaml has been unparseable since 2026-08-24, unnoticed) #253
reiserlab/cshl-2026-course/roster.yaml has been unparseable since 2026-08-24 (commit 4255f07b, "Update roster.yaml", made in the GitHub web editor): the new entry on line 73 is indented with one space instead of two, so the YAML parser sees a second block sequence where the people: mapping should end:
- id: guest
name: Guest
- id: ShubhamTR ← one space; the siblings have two
name: Shubham Rathore
A block sequence may not be used as an implicit map key at line 73, column 1
Since then every Studio session signed in to the course repo has silently fallen back to the site roster (configs/metadata/), so the experimenter list shown on rigs was the lab's seed list, not the course roster — and the person who added themself never appeared. Nobody noticed for seven weeks because the only trace is one warn line in the raw/Console log (fetchCourseRoster → Studio.rawLog('course roster: unreadable — …', 'warn'); same pattern in fetchCourseVocab for genotypes / ages / sexes / fly numbers). Found 2026-10-14 while bench-testing PR #252.
This is the same failure family as the v0.70 fix (PR #176: a read-allowlist miss made the override silently fall back) — the fallback is correct behavior, but it must not be silent.
Proposal
Inline, per field. When a course override fails (HTTP error, YAML parse error, empty/malformed list), show it where the person is looking: a small warning marker next to the affected field in Run details (experimenter / genotype / age / sex / fly #), with the file name, the error message and the line number in the tooltip and in the existing #mSrcNote line ("Experimenter list: course roster unreadable (roster.yaml line 73) — showing the lab list"). Keep the ↗ source link pointing at the course file so the fix is one click away.
Say which list is live. Today the note only changes on success. On fallback, state explicitly that the site list is in use and why.
Help-mode text (data-help) for the marker, in end-user voice: "The course roster could not be read, so the lab's list is shown. Fix the file in the course repo and reconnect."
Optional, course-repo side: a one-step YAML check in cshl-2026-course (GitHub Action on push to the root *.yaml, mirroring tests/test-metadata-yaml.js here) so a web-editor edit that breaks a vocabulary file fails loudly at commit time.
Not in scope
Fixing the roster itself (a one-character edit in the course repo); the Studio should still tell the user when it happens again.
The roster itself is fixed: reiserlab/cshl-2026-course@dabb0a6a (one space → two on line 73; the remote file parses, 20 people). This issue remains about making the next such failure visible in the Studio.
Activity
roster: fix indentation of the ShubhamTR entry (line 73, one space → …
mbreiser commentedon Oct 14, 2026
The roster itself is fixed: reiserlab/cshl-2026-course@dabb0a6a (one space → two on line 73; the remote file parses, 20 people). This issue remains about making the next such failure visible in the Studio.