diff --git a/CLAUDE.md b/CLAUDE.md index f00ce17..7fdaf20 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -214,7 +214,18 @@ fix flows to every page automatically; two hand-written HTML pages never will. firmware's ASCII error payload on non-ok status — keep that for new ops. New `.cmenu` popups: the document click-away closer ignores clicks inside `.cmenu-pop`; one-shot `.cmenu-item`s (not in a `.cmenu-row`) auto-close. -- **Metadata / controlled-vocab sourcing (THE rule):** when a **course repo is +- **Data repos (v0.72):** the Studio/Pattern Designer/dashboard target ONE GitHub + data repo chosen in File ▾ → GitHub → Repo, from the registry in + `js/studio-data-repos.js` (classic dual-export; course + lab entries + `parseRepo` + + label helpers). **No default repo** on a fresh browser. **Copy rule:** user-visible + wording goes through `Studio.dataRepoLabel()` / `Studio.idLabel()` / + `Studio.sharedLabel()` ("Bench id" for the course repo, "Rig id" otherwise); + internal identifiers (`courseSettings`, `refreshCourseMeta`, `fetchCourse*`, + `openFromCourseRepo`, `fmOpenCourse`, `studio_bench_id`) keep their historical + names — tests anchor on them, do not mass-rename. New repo = registry entry + + `scripts/seed-data-repo.sh`; never enable branch protection. Setup guide: + `docs/development/data-repo-setup.md`. +- **Metadata / controlled-vocab sourcing (THE rule):** when a **data repo is configured AND signed in**, ALL metadata vocabularies load from that repo (its root-level YAML) and their ↗ source links repoint there — the connected repo is the source of truth. When not (offline / not signed in), fall back to the diff --git a/arena_studio.html b/arena_studio.html index dc56446..6d0c5c3 100644 --- a/arena_studio.html +++ b/arena_studio.html @@ -175,7 +175,7 @@ body:not(.ghauth) .gh-check{opacity:.45;cursor:not-allowed} .gh-dest{font-size:10.5px;color:var(--dim);margin-top:5px;padding-left:2px} .gh-row label{flex:0 0 62px;color:var(--dim)} - .gh-row input[type=text]{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--text);padding:3px 7px;font-size:11px;font-family:inherit} + .gh-row input[type=text],.gh-row select{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--text);padding:3px 7px;font-size:11px;font-family:inherit} /* course-pipeline picker modal (Open from library… / Open from course repo…) */ .picker-overlay{position:fixed;inset:0;background:rgba(6,10,14,.65);z-index:900;display:flex;align-items:center;justify-content:center} .picker-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:380px;max-width:560px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.5)} @@ -2080,7 +2080,7 @@ - + @@ -2109,12 +2109,12 @@ - + - + - +
@@ -2128,10 +2128,10 @@ -
-
+
+
- +
+ @@ -2308,7 +2308,7 @@

Run details

-
Required for a recorded run.
@@ -2690,16 +2690,16 @@

Import error

- +
Single pattern (.pat)
- +
Pattern set (folder)
- +
@@ -2917,11 +2917,11 @@

Import error