Repository navigation
Conversation
…o= is a tab-scoped override; "Rig id" (LAB-227 Phase 4)
- Default repo → reiserlab/arena-experiments in the Studio (DEFAULT_COURSE_REPO),
the Pattern Designer (new DEFAULT_DATA_REPO) and the dashboard (DEFAULT_REPO,
repo field, link, local path); the course repo stays usable by typing it.
- Studio.sessionRepo: a bare ?repo= link overrides the stored repo for that tab
(courseSettings), in force before the page-start listings, signed in or out —
fixes the ww18 2026-10-29 case where ?repo= signed out wired the DEFAULT repo's
shared pattern previews. encodeApp({sessionRepo}) keeps it across the canonical
URL rewrite; typing a repo in ⚙ Settings ends it. The listing log names the repo.
- Patterns ↗ passes the effective repo (default / stored / override).
- Replay: a signed-out 404 says "sign in if this repository is private".
- UI copy "Bench id" → "Rig id" (storage key studio_bench_id unchanged).
- Per-rig vocabularies: protocols/<rig-id>/<file>.yaml before the repo root.
- Docs: token runbook, dashboard README, CLAUDE.md rule; tests pin the defaults.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2 tasks done
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
LAB-227 Phase 4: the Studio, the Pattern Designer and the data-browser dashboard now default to the lab's private data repo
reiserlab/arena-experiments. The CSHL course reporeiserlab/cshl-2026-coursestays usable by typing it into the Repo field (course benches andrig03-srstill write there).Studio.DEFAULT_COURSE_REPO, the Designer's newDEFAULT_DATA_REPO(a fresh browser lists the lab repo in Open from Repo… / Save to Repo… without a Studio visit), the dashboard'sDEFAULT_REPO+ its repo field, link and local-path default.tests/test-studio-shell.jspins the three strings equal.studio_bench_idand the code identifiers keep their names.?repo=signed-out bug (ww18, 2026-10-29) — root cause: the Studio had no?repo=override at all;?repo=was honored only together withporreplay, so the page-start shared-pattern listing always used the stored/default repo (the log said "course repo: 52 shared pattern preview(s)" for the DEFAULT repo). NowStudio.sessionRepois parsed in the classic shell andcourseSettings()returns it ahead of the stored repo and the default — a tab-scoped override, like the Pattern Designer's, never written to localStorage, in force before the page-start listings, for reads and writes, signed in or out.encodeApp({sessionRepo})keeps a bare?repo=across the canonical URL rewrite so a refresh stays on the requested repo; the ⚙ Settings Repo field shows the override (hover explains it) and typing a repo ends it. The listing log line now names the repo, and a signed-out 404 says "sign in if this repository is private".?repo=fromcourseSettings()— default, stored or?repo=override — instead of only a stored value.fetchCourseGenotypes/fetchCourseVocabreadprotocols/<rig-id>/<file>.yamlbefore the repo-root file (readCourseVocabFile); a missing rig-level file is silent, the source link and log name the file actually used.protocols/was already a readable prefix.docs/development/data-repo-token-runbook.md(default repo, Rig id, course benches overwrite the field),dashboard/data-browser/README.md, one CLAUDE.md paragraph on the?repo=override rule.Deferred (not in this PR): the remaining "course repo" vocabulary in Studio copy and function names (
Save → course repo,Course-repo open failed,fetchCourse*) — a wording pass, no behavior.Linear: LAB-227 (Phase 4).
Tier
next candidate
Release notes
Studio
reiserlab/arena-experiments. Course benches keep typingreiserlab/cshl-2026-courseinto ⚙ Settings → Repo; a?repo=owner/namelink now switches that tab to the named repo for everything (pattern previews, Open from Repo, saves, replay), signed in or out, without changing the stored setting.protocols/<rig-id>/<file>.yaml; the repo-root lists remain the lab-wide fallback.Pattern Designer
reiserlab/arena-experimentsin a browser that has not set a repo; the Studio's Patterns ↗ link always hands over the repo the Studio is on.Dashboard
reiserlab/arena-experiments; typereiserlab/cshl-2026-courseto browse the 2026 course logs.Test plan
pixi run test— 73/73 files green (new checks intests/test-studio-shell.jsandtests/test-studio-url-state.js)reiserlab/arena-experiments; the log says the shared library is not readable signed out (HTTP 404) — sign in if private; Patterns ↗ →pattern_editor.html?arena=…&repo=reiserlab%2Farena-experiments?repo=reiserlab/cshl-2026-course: log "shared pattern library: 52 preview(s) wired from reiserlab/cshl-2026-course/patterns/";courseSettings().repo= course repo; the canonical URL keeps?repo=; Patterns ↗ carries the course reporeiserlab/arena-experimentsprotocols/<rig-id>/genotypes.yamlis picked up (not bench-tested; the root-file path is unchanged)🤖 Generated with Claude Code