add ohm/0071/SESSION-0071.0-TRANSCRIPT-2026-06-04T05-24--2026-06-04T07-03.md + replace placeholder/variant SESSION-0071.0-TRANSCRIPT-2026-06-04T05-24--2026-06-04T06-46.md

This commit is contained in:
2026-06-04 07:04:29 -07:00
parent 36e1c0a833
commit 850d538e05
@@ -2,7 +2,7 @@
> App: ohm > App: ohm
> Start: 2026-06-04T05-24 (PST) > Start: 2026-06-04T05-24 (PST)
> End: 2026-06-04T06-46 (PST) > End: 2026-06-04T07-03 (PST)
> Type: coding > Type: coding
> Mode: autonomous (yolo, default) > Mode: autonomous (yolo, default)
@@ -146,10 +146,26 @@ is functionally achieved for reading.** Write path (propose/PR/graduate) +
default-id re-stamp remain (non-default project is read-only; no live impact — default-id re-stamp remain (non-default project is read-only; no live impact —
no 2nd project in prod). ohm-rfc ROADMAP Phase G + memory updated. no 2nd project in prod). ohm-rfc ROADMAP Phase G + memory updated.
## Update — v0.38.0 (Plan B write path: propose) shipped
Continued and shipped **rfc-app v0.38.0 — project-scoped propose**:
`POST /api/projects/{pid}/rfcs/propose` (propose body extracted into a
project-parameterized helper; unscoped kept as compat), `GET
/api/projects/{pid}/proposals`, `refresh_meta_pulls` loops every project's
content_repo stamping `cached_prs.project_id`, `projects.content_repo(pid)`
helper; frontend `proposeRFC(pid,…)`/`listProposals(pid)`, `ProposeModal` takes
`projectId`, `App` resolves the current project from the `/p/<id>/` URL.
`test_project_scoped_propose.py` proves propose lands in a 2nd project's repo +
shows only under its proposals + gated 404. PR #16 merged, tagged, mirrored.
**A non-default project now renders AND accepts new entries** — step (1) read +
create both done. Remaining for step (1): the **edit** flows (branch/PR/
graduation) + the default-id re-stamp. **Four framework versions shipped this
session: v0.35.0 → v0.38.0.**
## Next-session prompt ## Next-session prompt
``` ```
/executing-plans Execute the §22 Plan B write-path + re-stamp slice (target rfc-app v0.38.0). Read path (per-project serving) shipped v0.37.0; PK rebuilds v0.36.0. Now: (1) scope the WRITE path by project — propose/branch/PR/graduation endpoints under /api/projects/{pid}/… and per-project cache/bot/webhook dispatch over each content_repo (today they still target the default, so a non-default project is read-only); (2) the default-project-id re-stamp (default → config slug, §22.13 step 1, via the reconciler); (3) seed a Tier-1 registry repo + projects.yaml + set REGISTRY_REPO in testing/.env.tier1 to unblock the deferred Playwright e2e. Then M4 (acceptance) + M5 (the bdd surface — ecomm-enabling). Read memory multi-project-program.md + ohm-rfc ROADMAP Phase G first. Do NOT do the OHM live cutover without operator go-ahead. /executing-plans Execute the §22 Plan B edit-flows + re-stamp slice (target rfc-app v0.39.0). Already shipped this session: PK rebuilds (v0.36.0), per-project read serving (v0.37.0), project-scoped propose (v0.38.0) — so a non-default project renders + accepts new entries. Now: (1) scope the EDIT write flows by project — branch / PR / graduation endpoints (api_branches.py, api_prs.py, api_graduation.py) under /api/projects/{pid}/… + the refresh_meta_branches / refresh_rfc_repo mirrors looping per project (mirror what refresh_meta_repo/refresh_meta_pulls already do); they still target the default content_repo; (2) the default-project-id re-stamp (default → config slug, §22.13 step 1, via the reconciler); (3) seed a Tier-1 registry repo + projects.yaml + set REGISTRY_REPO in testing/.env.tier1 to unblock the deferred Playwright e2e. Then M4 (acceptance) + M5 (the bdd surface — ecomm-enabling; OPEN DESIGN Q for the operator: free-form markdown vs parsed Given/When/Then scenarios). Read memory multi-project-program.md + ohm-rfc ROADMAP Phase G first. Do NOT do the OHM live cutover without operator go-ahead.
``` ```
## Operator plate (needs you) ## Operator plate (needs you)