277 lines
12 KiB
Markdown
277 lines
12 KiB
Markdown
# Session 0013.2 — Transcript (subsession)
|
||
|
||
> Parent: SESSION-0013.0-TRANSCRIPT-2026-05-28T05-26--INPROGRESS.md
|
||
> Date: 2026-05-28
|
||
> Goal: Roadmap item #17 step 1 (inventory) + step 2 (propose) — survey every repo on `git.wiggleverse.org` and `git.benstull.org`, draft the move proposal as a single document for the operator to review. **Step 3 (execute) is explicitly out of scope.**
|
||
>
|
||
> Outcome: **`REPO-NAMING-PROPOSAL.md` written to `~/git/ohm-infra/`. 12 repos inventoried across the two hosts plus 9 local-only working dirs documented. 8 moves proposed (3 archives, 2 namespace transfers, 3 operator-decision items). 6 open questions surfaced. Zero git operations performed against any remote.**
|
||
|
||
This is a subsession of Session 0013.0 (the OHM driver session). The driver
|
||
dispatched M.2 with a tight read-only-inventory + single-deliverable
|
||
brief. Subsession boundaries follow the OHM session protocol §1
|
||
(letter+number scheme — M.2 is the second subsession of M).
|
||
|
||
---
|
||
|
||
## Pre-session state
|
||
|
||
The driver's hand-off named:
|
||
|
||
- 9 known wiggleverse.org repos (driver named 3; M.2 inventoried the
|
||
rest via Gitea explore endpoint).
|
||
- 3 known benstull.org repos (same).
|
||
- Roadmap item #17 ("Repo naming + location alignment") names the
|
||
framing: rfc-app should be in `wiggleverse/`, not personal namespace;
|
||
mirror convention undocumented; the `ohm-app` legacy VM (tracked
|
||
separately as roadmap #1, out of scope for M.2).
|
||
- Hard constraint: subsession publishes its transcript to
|
||
`wiggleverse/ohm-session-history` (public). No secret bytes.
|
||
- Hard constraint: no Gitea admin actions, no transfers, no edits to
|
||
anything but the proposal document itself.
|
||
|
||
Operator's working tree (parent session 0013.0's pre-state): clean.
|
||
Active OHM deployment: v0.17.0 (deploys.id=21). Pin: 0.17.0. Healthy.
|
||
|
||
---
|
||
|
||
## Turn-by-turn arc
|
||
|
||
### Arc 1 — Read roadmap #17 + scout local checkouts
|
||
|
||
Read `~/projects/wiggleverse/ohm-rfc/ROADMAP.md` lines 314+ for
|
||
item #17's full statement. The session-shape it names is:
|
||
inventory → propose → execute. M.2 owns the first two.
|
||
|
||
Listed `~/git/` and `~/projects/wiggleverse/` to map local checkouts:
|
||
|
||
- `~/git/`: ohm-infra (not a git repo!), ohm-meta (empty), rfc-app
|
||
(canonical clone), rfc-app-v0.15/v0.16/v0.17 (per-release worktrees),
|
||
wiggleverse-meta (clone of `wiggleverse/meta`), benstull-infra
|
||
(not a repo, just two old transcript MDs).
|
||
- `~/projects/wiggleverse/`: ohm-rfc (clone), ohm-rfc-app-flotilla
|
||
(clone), rfc-app-prototype (clone), org/ (not inspected).
|
||
|
||
Already a discovered-friction item: `~/git/ohm-infra/` not being a
|
||
git repo is structurally weird. Filed as §3.4 in the proposal.
|
||
|
||
### Arc 2 — Inventory both Gitea hosts
|
||
|
||
`curl https://git.wiggleverse.org/explore/repos` and the equivalent
|
||
on benstull.org returned HTTP 200 HTML for both — anonymous explore
|
||
works. Parsed out `href="/<owner>/<name>"` links.
|
||
|
||
Wiggleverse.org reported 9 repos:
|
||
- `ben.stull/{benstull,ohm-rfc,rfc-app,rfc-app-prototype}`
|
||
- `wiggleverse/{meta,ohm-meta,ohm-rfc-app-flotilla,ohm-session-history,rfc-0001-human}`
|
||
|
||
Benstull.org reported 3:
|
||
- `benstull/{docs,rfc-app,rfc-app-flotilla}`
|
||
|
||
For each, hit `/api/v1/repos/<owner>/<name>` for metadata (description,
|
||
created/updated, default branch, size, mirror flag, private flag).
|
||
All API calls anonymous; all returned 200. No auth needed for this
|
||
inventory.
|
||
|
||
Also hit `/api/v1/repos/<owner>/<name>/commits?limit=1` per repo for
|
||
the actual last-commit timestamp and message — `updated_at` from the
|
||
repo metadata wasn't always commit-tied (could be a description edit).
|
||
|
||
### Arc 3 — Confirm the push-mirror mechanism
|
||
|
||
`ben.stull/rfc-app` and `benstull/rfc-app` both reported commit
|
||
`1456c8b73f70` at `2026-05-28T05:10:52-07:00` — same sha, same
|
||
timestamp within seconds. But neither was flagged `mirror: True`
|
||
in the API. Tried `/api/v1/repos/.../push_mirrors` — returned
|
||
"user should be an owner or a collaborator with admin write," so
|
||
the push-mirror config is admin-only-visible.
|
||
|
||
Conclusion: the sync mechanism is a push-mirror configured by the
|
||
operator on the canonical side, invisible to the public read API.
|
||
Worth a note in the proposal — operator needs to reauthorize it
|
||
after Move 3.
|
||
|
||
Also noticed: the **descriptions** of the canonical and mirror have
|
||
drifted apart ("The Wiggleverse RFC framework app — see PHILOSOPHY.md
|
||
and SPEC.md." vs "Open-source RFC platform software"). Filed under
|
||
§3.3.
|
||
|
||
### Arc 4 — Probe URL-redirect handling on Gitea
|
||
|
||
The flotilla CHANGELOG L282–283 has a note about `ben/ohm-rfc` being
|
||
a redirect alias to `ben.stull/ohm-rfc`. Tested:
|
||
- `/api/v1/repos/ben/ohm-rfc` → HTTP 307
|
||
- `/api/v1/repos/ben.stull/ohm-rfc` → HTTP 200
|
||
- Same `307` for `ben/rfc-app`, `ben/benstull`, `ben/rfc-app-prototype`.
|
||
|
||
Conclusion: `ben` is an old username that aliases to `ben.stull` via
|
||
Gitea's user-rename redirect feature. This matters because if Moves
|
||
3+4 land, the alias chain becomes two hops: `ben → ben.stull →
|
||
wiggleverse`. Filed as risk in Move 4 and as Q5.
|
||
|
||
### Arc 5 — Find URL refs in load-bearing docs
|
||
|
||
`grep -nE 'git\.(wiggleverse|benstull)\.org'` against:
|
||
- `~/git/rfc-app/CLAUDE.md` and `SPEC.md` → zero hits. rfc-app source
|
||
doesn't reference the hosting URLs. Good — moves don't break
|
||
shipped framework code.
|
||
- `~/git/rfc-app/frontend/` → zero hits. The running frontend doesn't
|
||
embed the canonical URL. Confirms zero shipped-artifact breakage.
|
||
- `~/projects/wiggleverse/ohm-rfc-app-flotilla/CLAUDE.md`, `SPEC.md`,
|
||
`README.md`, `CHANGELOG.md`, `docs/operator-guide.md`, `scripts/`,
|
||
`tests/` → **many hits**. Catalogued line-by-line in the proposal's
|
||
Moves 3 and 4 sections. Test files hardcode `ben/ohm-rfc` four
|
||
places. The SPEC has it ~10 places, plus a whole framing paragraph
|
||
in §3.1 about why rfc-app gets a benstull mirror that **needs
|
||
conceptual rewriting**, not just URL swapping.
|
||
- `~/projects/wiggleverse/ohm-rfc/ROADMAP.md` → many hits including
|
||
the entire §16 release-table (rows 2–13) with tag URLs. Note in
|
||
proposal: those should probably stay (they record historical state)
|
||
but Gitea's redirect will keep them resolving.
|
||
- `~/git/ohm-infra/SESSION-*-TRANSCRIPT-*.md` → many hits. Per session
|
||
protocol these are immutable. Gitea's redirect handles them. Filed
|
||
explicitly in the proposal's "do NOT edit historical transcripts"
|
||
callout.
|
||
|
||
### Arc 6 — Inspect overlapping meta-repo content
|
||
|
||
`wiggleverse/meta`, `wiggleverse/ohm-meta`, and
|
||
`wiggleverse/rfc-0001-human` all had READMEs and `rfcs/` dirs.
|
||
Fetched contents via API.
|
||
|
||
- `wiggleverse/meta`: `PHILOSOPHY.md` (12 KB), `CONTRIBUTING.md`
|
||
(626 B), `rfcs/.gitkeep`, generic README.
|
||
- `wiggleverse/ohm-meta`: `PHILOSOPHY.md` (12 KB), `CONTRIBUTING.md`
|
||
(626 B), `rfcs/human.md` (292 B **stub**), README.
|
||
- `wiggleverse/rfc-0001-human`: `RFC.md` (22 KB, the full body),
|
||
`.rfc` marker, README that says "canonical text lives here;
|
||
meta-repo entry is `rfcs/human.md` in ohm-meta."
|
||
- `ben.stull/ohm-rfc`: `PHILOSOPHY.md` (13.5 KB — superset),
|
||
`CONTRIBUTING.md` (4.5 KB — superset), `RFC-0001-human.md` (22 KB
|
||
— **same body** as `rfc-0001-human/RFC.md`), `ROADMAP.md` (61 KB),
|
||
`CLAUDE.md`, `LICENSE`, `.rfc-app-version`.
|
||
|
||
The proposal's §2 Move 2 names the collision: two models
|
||
("per-RFC repos" vs "monorepo") both exist, monorepo has won in
|
||
practice. Operator decision Q1 settles whether to archive the per-RFC
|
||
repos.
|
||
|
||
### Arc 7 — Confirm flotilla SQLite registry state
|
||
|
||
`sqlite3 ~/.ohm-rfc-app-flotilla/ohm-rfc-app-flotilla.db 'SELECT *
|
||
FROM deployments;'` returned the ohm-rfc-app row with
|
||
`pin_source_repo='ben/ohm-rfc'` and `corpus_repo='ben/ohm-rfc'`.
|
||
|
||
Important: after Move 4, the operator must run a flotilla command
|
||
to update these values, or the next deploy chases a two-hop redirect.
|
||
Flagged in Move 4 cross-repo-cleanup section.
|
||
|
||
### Arc 8 — Write the proposal
|
||
|
||
Wrote `~/git/ohm-infra/REPO-NAMING-PROPOSAL.md` (~22 KB) covering:
|
||
|
||
- §1 inventory: two host tables + local-only working dirs + topology snapshot
|
||
- §2 move proposal: 8 moves with risk, ordering, URL-breakage callouts, specific paths
|
||
- §3 discovered friction: 6 items (confirmed roadmap #17's plus 4 new)
|
||
- §4 open questions: 6 (Q1 RFC-shape, Q2 mirror destination, Q3 stub fate, Q4 ohm-infra-as-repo, Q5 username alias, Q6 backup before)
|
||
- §5 suggested execution-session shape: pre-flight checklist, ordered execution, Gitea-admin vs git-cli vs edit-text gestures, verify
|
||
- §6 §19.2 candidates surfaced
|
||
- §7 summary table
|
||
|
||
No git operations against any remote. No edits to anything besides
|
||
the proposal doc itself.
|
||
|
||
---
|
||
|
||
## Cut state (end of subsession)
|
||
|
||
| | |
|
||
| --- | --- |
|
||
| `~/git/ohm-infra/REPO-NAMING-PROPOSAL.md` | new file, ~22 KB, M.2's only artifact |
|
||
| Every other repo (local + remote) | untouched |
|
||
| OHM live | unchanged (deploys.id=21, v0.17.0, healthy) |
|
||
| flotilla SQLite registry | unchanged |
|
||
| Parent session 0013.0 state | unchanged |
|
||
|
||
| M.2 deliverable ledger | Status |
|
||
| --- | --- |
|
||
| Read roadmap #17 in full | done |
|
||
| Inventory wiggleverse.org repos | done (9 found) |
|
||
| Inventory benstull.org repos | done (3 found) |
|
||
| Cross-reference local checkouts | done |
|
||
| Read CLAUDE.md/SPEC.md/ROADMAP.md for URL refs | done |
|
||
| Write proposal doc | done |
|
||
| Write transcript | done (this file) |
|
||
| Publish transcript to ohm-session-history | **driver does this**, not subsession (per protocol §"subagents do not write their own transcripts" — but the brief overrode that and asked M.2 to write one; M.2 wrote, driver publishes) |
|
||
|
||
---
|
||
|
||
## §19.2 candidates surfaced
|
||
|
||
Two surfaced during M.2 (also in proposal §6):
|
||
|
||
1. **Stop relying on Gitea path aliases.** flotilla currently leans
|
||
on the `ben/ohm-rfc` → `ben.stull/ohm-rfc` redirect alias (urllib
|
||
follows 307s). After Moves 3+4, that chain becomes two hops.
|
||
Better: resolve canonical paths at `flotilla deployment update`
|
||
time, store the resolved path in SQLite, never chase aliases at
|
||
deploy time.
|
||
2. **flotilla-core extraction reservation as concrete artifact.**
|
||
The stub repo `git.benstull.org/benstull/rfc-app-flotilla` (Move 5)
|
||
could either be archived or repurposed as the placeholder for the
|
||
future `flotilla-core` §19.2 extraction. Operator decision (Q3).
|
||
|
||
A third candidate **not** in the proposal but worth a separate item:
|
||
|
||
3. **Promote `~/git/ohm-infra/` to a real git repo.** Currently a
|
||
working dir with no version control on `SESSION-PROTOCOL.md`,
|
||
the publish script, the transcript-publishing plan, etc. Roadmap
|
||
#17 scope doesn't cover it but the inventory surfaced it (§3.4).
|
||
Worth its own roadmap item.
|
||
|
||
---
|
||
|
||
## What the driver needs to know
|
||
|
||
1. **Proposal lives at `~/git/ohm-infra/REPO-NAMING-PROPOSAL.md`**
|
||
and is ready for operator review.
|
||
2. **Six open questions** the operator must settle before the
|
||
execution session. Q1 is structural (monorepo vs per-RFC) and may
|
||
reshape the proposal entirely.
|
||
3. **Biggest finding not in roadmap #17:** `wiggleverse/meta`,
|
||
`wiggleverse/ohm-meta`, and `wiggleverse/rfc-0001-human` are three
|
||
repos for one job. Monorepo has won in practice; archive the other
|
||
two if operator confirms.
|
||
4. **Biggest cross-repo cleanup load:** the flotilla SPEC.md needs
|
||
~10 URL updates *plus* a conceptual rewrite of the §3.1 paragraph
|
||
that explains why rfc-app has a benstull mirror (the "personal
|
||
shape" rationale dissolves once rfc-app moves to org namespace).
|
||
5. **flotilla test files hardcode `ben/ohm-rfc` in four places**
|
||
(`test_plan.py`, `test_pin.py`, `test_bringup_replay.py`,
|
||
`test_deployment.py`). These must update with Move 4.
|
||
6. **The flotilla SQLite registry** at
|
||
`~/.ohm-rfc-app-flotilla/ohm-rfc-app-flotilla.db` has
|
||
`pin_source_repo` and `corpus_repo` both set to `ben/ohm-rfc`.
|
||
Must be updated post-Move-4 or next deploy chases a redirect.
|
||
7. **No shipped frontend artifacts reference the canonical URLs.**
|
||
This is the load-lightening discovery: the moves don't break
|
||
anything that an OHM end-user sees.
|
||
8. **No git operations were performed by M.2** against any remote.
|
||
Read-only inventory, single new file (the proposal), this
|
||
transcript.
|
||
|
||
---
|
||
|
||
## Closing handoff to driver
|
||
|
||
M.2 is done. The driver returns control to the operator with the
|
||
proposal ready for review. The next OHM session that wants to
|
||
execute roadmap #17 picks up by:
|
||
|
||
1. Operator reads `REPO-NAMING-PROPOSAL.md`, settles Q1–Q6.
|
||
2. Operator backs up `~/git/ohm-infra/` (Q6 / §3.4 surfaced) if not
|
||
yet a real repo.
|
||
3. Driver session opens, follows the execution shape in proposal §5.
|
||
|
||
That execution session is operator-led (per the brief that dispatched
|
||
M.2: "step 3 is operator-led in a future session").
|