# MuseHub Overseer Handover **Living relay for MuseHub enrichment + Knowtation-domain staging work** in the MUSE_HUB workspace. Paste the **NEXT SESSION** block into a fresh chat. **Not Scooling product order.** For Scooling product sequencing, use `~/scooling/docs/OVERSEER-HANDOVER.md` (`ok workspace check-next`). **Roadmap authority:** `docs/MUSEHUB-ROADMAP.md` (also under `musehub/docs/` when committing in the musehub Muse tree). --- ## NEXT SESSION — F7 review fix → KD-6b multipart (PRIMARY enrichment) **Date:** 2026-08-11 **Model:** **Auto** (code fixes) then **Operator** (Gabriel re-review / deploy) **Constellation:** MuseHub is **enrichment** in `scooling-stack`. Scooling product PRIMARY is also MuseHub gate (see Scooling board) — this file owns MuseHub HOW. ### Assessment snapshot (verified 2026-08-10/11) | Item | Evidence | | --- | --- | | **Staging `dev` tip** | `sha256:632c4ee4285e…` — Gabriel merge `feat/opengraph-repo-cards` (musehub#129) + `#168` scroll-lock fix in history | | **Local `main`/`dev`** | Fast-forwarded to that tip | | **AWS Aaron deploy** | `AWS_PROFILE=musehub-infra` **missing** (`aws configure list-profiles` → `default` only) | | **OpenGraph** | Merged + deployed (Gabriel) | | **F7 proposal** | Open — [changes requested](https://staging.musehub.ai/gabriel/musehub/proposals/sha256:01e6a0d4ca543a6a11eeeecd4fa9eca259c0d2ad625954b5465de30a30163c83): router never `include_router`'d; unit tests skip HTTP | | **KD-6b** | Blocked — [issue #169](https://staging.musehub.ai/gabriel/musehub/issues/169): `Form(...)` without `python-multipart` → app fails on import | | **Prod readiness** | Gabriel filed `#149–#167` (`production-readiness`); backups `#157` highest — **not** Aaron's F7/KD path | | **Merge dry-run** | F7 → `origin/dev`: **1** conflict (`config.py::Settings`); KD-6b → `origin/dev`: **27** conflicts (mostly `main.py` import symbols) | ### Product order (cross-repo) | | | | --- | --- | | **Scooling Apple chapter** | **CLOSED 2026-08-11** — APPLE-7-ship PARKED secondary | | **Scooling PRIMARY** | MuseHub gate — prefer **code fixes** before waiting on Aaron AWS | | **Knowtation** | Does not own F7/KD; F7 not required for Apple | ### THE ONE NEXT STEP — F7 review fix (new feature branch) ```text Step: MUSEHUB-F7-REVIEW-FIX — Wire router + TestClient; merge origin/dev Model: Auto Repo: ~/MUSE_HUB/musehub Branch: NEW from origin/dev (do not pile onto feat/kd-6b) Prior branch tip: feat/9a-4-f7-overseer-provenance @ e5530c6 Proposal: sha256:01e6a0d4… (changes requested) Do exactly: 1. Branch from origin/dev @ 632c4ee… (or newer tip). 2. Bring F7 commits; resolve config.py::Settings conflict. 3. Register overseer_provenance router in main.py near other fixed-path routers BEFORE /{owner}/{repo_slug} wildcard (Gabriel review). 4. Add TestClient integration test that hits GET /api/overseer-run-provenance/{run_ref} (gate on + fixture row). 5. Muse commit + push staging feature branch; ask Gabriel re-review. 6. Update this handover + Scooling board: F7 review-fix → awaiting merge. Do NOT: claim F7 DONE without merge+deploy+spot-check; deploy without AWS or Gabriel; feature→GitHub-main; App Store; touch KD-6b in same PR. ``` ### After F7 review-fix — KD-6b multipart (#169) ```text Step: MUSEHUB-KD-6B-MULTIPART — Add python-multipart; merge origin/dev Model: Auto Repo: ~/MUSE_HUB/musehub Prior: feat/kd-6b @ c04414e…; issue #169 Do exactly: 1. New branch from origin/dev (or continue after F7 lands on dev). 2. Add python-multipart to requirements.txt + pyproject.toml. 3. Resolve merge conflicts (expect main.py import symbol noise). 4. Prove app imports / vault Form routes do not crash. 5. Push; Gabriel deploy; then KD-VERIFY-STAGING paste below. ``` ### Parked until code lands | Tip | Status | | --- | --- | | **F7 staging deploy (Aaron)** | AWS `musehub-infra` missing — Gabriel may deploy after merge | | **KD-VERIFY-STAGING** | Needs KD-6b live after #169 fix | | **Prod-readiness #149–#167** | Gabriel track — do not block F7/KD | ### Paste-ready — KD-VERIFY-STAGING (after live KD-6b deploy) ```bash # A. Confirm live site serves KD-6b routes (browser) # B. Re-push gabriel-muse auth fix if needed # C. Push smoke vault via gabriel-muse PYTHONPATH only # D. Optional remote attest — local verify still authoritative ``` Frozen CLI recipe: hub auth = `~/MUSE_HUB/muse`; vault ops = `PYTHONPATH=~/MUSE_HUB/gabriel-muse` + gabriel-muse `.venv/bin/muse`. --- ## Done recently (MuseHub domain) | Item | Status | | --- | --- | | **OpenGraph #129** | **DONE** on staging `dev` @ `632c4ee…` (Gabriel merge 2026-08-09) | | **#168 scroll-lock** | **DONE** live on staging (Gabriel) | | **KD-6b Muse history** | **DONE** @ `c04414e…` — not live until #169 + deploy | | **F7 Muse history** | **DONE** @ `e5530c6…` — review-blocked (router not registered) | | **Assessment closeout** | **DONE 2026-08-11** — this handover; next = F7 review-fix branch | ## Change log - **2026-08-11** — Assessment closeout. Staging `dev` @ `632c4ee…` (opengraph merged). Gabriel requested F7 `include_router` + TestClient; KD-6b blocked on `python-multipart` (#169). Aaron AWS still missing. NEXT = **F7 review-fix** on a new branch from `origin/dev`. Scooling Apple chapter CLOSED; product PRIMARY = MuseHub gate. - **2026-07-31** — Prior dual-block (F7 AWS + KD-VERIFY Gabriel); product_order was SEC-KN-4c. - **2026-07-10** — KD-STAGING Thinking freeze PARTIAL; NEXT was KD-VERIFY-STAGING.