add 0046/SESSION-0046.0-TRANSCRIPT-2026-05-30T06-28--2026-05-30T10-29.md + replace placeholder/variant SESSION-0046.0-TRANSCRIPT-2026-05-30T06-28--2026-05-30T06-49.md

This commit is contained in:
2026-05-30 10:31:18 -07:00
parent a143b68d0a
commit d78ba8bff5
@@ -13,6 +13,15 @@
> `e2e/` Tier-1 scaffold authored (PR #4, left OPEN for review). No > `e2e/` Tier-1 scaffold authored (PR #4, left OPEN for review). No
> deploys, no tags, no pin bumps — docs + groundwork only.** > deploys, no tags, no pin bumps — docs + groundwork only.**
> >
> Late addendum (post-first-publish): the operator settled four design
> decisions, recorded (not built — all v1-gated): **#42 auto-rollback =
> always-on VM-side watcher**; **#37 PPE = completely separate infra**
> (own micro VM + separate gcloud stack + own Gitea at
> `ppe.git.wiggleverse.org`, not colocated on prod); **#37 OAuth caveat
> resolved** (e2e via OTC); **#38 Tier-1 Gitea = stub inner loop, real
> Gitea for the gate**. Landed in handbook §10.1/§10.5 (eng PR #2) +
> ROADMAP #37/#42 (ohm-rfc PR #7) + the rfc-app scaffold README.
>
> Texture note: this session ran amid the harness-corruption / > Texture note: this session ran amid the harness-corruption /
> parallel-execution conditions flagged at launch (the prior advisory > parallel-execution conditions flagged at launch (the prior advisory
> "0046" hit Bash/Read garbling). Concretely: ROADMAP commits appeared > "0046" hit Bash/Read garbling). Concretely: ROADMAP commits appeared
@@ -145,15 +154,44 @@ Updated `project_engineering_handbook.md` memory (repo exists/canonical;
§10.3 = two-tier; open items refreshed). Surfaced the open decisions §10.3 = two-tier; open items refreshed). Surfaced the open decisions
(below). Wrote + published this transcript. (below). Wrote + published this transcript.
### Arc 6 — operator design decisions (post-first-publish)
After the first finalize, the operator engaged the surfaced open
decisions and settled them. Recorded across the docs (not built — all
gated on flotilla v1):
1. **#42 auto-rollback → always-on VM-side watcher** (chose option (a)
over my (b)-leaning recommendation). A systemd daemon arms on cutover,
disarms on promote, trips ONLY the DB-free rollback. Framed as a
bounded carve-out from flotilla's laptop-only model. (handbook §10.5 +
ROADMAP #42)
2. **#37 PPE → completely separate infra.** A real architecture pivot off
the original "three instances on one VM": PPE gets its own GCP micro
instance, its own separate gcloud stack (project + config), and its
own Gitea at `ppe.git.wiggleverse.org` colocated on the PPE VM. Only
flotilla's code-deploy gesture crosses over. flotilla
multi-deployment becomes "2nd record at a different host+project," not
a 2nd install dir. (handbook §10.1 reframed + ROADMAP #37 rewritten)
3. **#37 OAuth caveat → resolved** (e2e logs in via OTC; #5 shipped).
4. **#38 Tier-1 Gitea → stub for the inner loop, real Gitea for the
gate** (Tier 2 = PPE's own real Gitea). (rfc-app scaffold README)
5. **Open follow-on captured:** self-host prod Gitea on the prod VM too
("we can do that for prod, too") — flagged as its own decision, not
committed.
Merges: eng PR #2 (`4259df3`), ohm-rfc PR #7 (`f2a661f`), rfc-app PR #4
updated (`a3f48ba`). The Gitea merge-queue had recovered by this arc
(all three merged HTTP 200 cleanly). Memory updated.
--- ---
## Cut state (end of session) ## Cut state (end of session)
| repo | state | | repo | state |
| --- | --- | | --- | --- |
| engineering | `main` @ `4bab7a0` (PR #1 merge of `1f3c8e7`) — §10.3 two-tier testing + §10.6 touch-up | | engineering | `main` @ `4259df3` (PR #1 two-tier §10.3; PR #2 §10.1 PPE-separate-infra + §10.5 always-on watcher) |
| ohm-rfc | `main` @ `5760b5d` (PR #5 merge of `30326e3`, atop PR #4 `2e403dd`) — full two-tier #38 (table+narrative) + #40 (narrative+row). PR #6 closed (superseded). | | ohm-rfc | `main` @ `f2a661f` (PR #4+#5 two-tier #38/#40; PR #7 #37 separate-infra + #42 watcher). PR #6 closed (superseded). |
| rfc-app | branch `session-0046/e2e-tier1-scaffold` @ `a5a66e5`, **PR #4 OPEN**`e2e/` Tier-1 scaffold. No release. | | rfc-app | branch `session-0046/e2e-tier1-scaffold` @ `a3f48ba`, **PR #4 OPEN**`e2e/` Tier-1 scaffold + Gitea decision. No release. |
| OHM live | **untouched** — no deploy this session (docs + groundwork). | | OHM live | **untouched** — no deploy this session (docs + groundwork). |
| ohm-rfc pin | **unchanged** (`.rfc-app-version` not bumped). | | ohm-rfc pin | **unchanged** (`.rfc-app-version` not bumped). |
| memory | `project_engineering_handbook.md` updated. | | memory | `project_engineering_handbook.md` updated. |
@@ -191,23 +229,23 @@ Updated `project_engineering_handbook.md` memory (repo exists/canonical;
## What lands on the operator's plate ## What lands on the operator's plate
1. **#42 auto-rollback model — GENUINELY OPEN, surfaced not defaulted.** 1. **#42 watcher — DECIDED (always-on VM-side), build is v1-gated.** The
(a) always-on VM-side watcher (relaxes flotilla's laptop-only model for systemd watcher itself is built when #42 lands (post-v1, after #41).
one purpose) vs. (b) bounded bake during the operator's session 2. **#37 PPE — DECIDED (separate infra), live stand-up is v1-gated.** The
(1015 min post-cutover, no daemon). Needed before #42 is built real work waiting: provision the micro VM in its own gcloud project,
(post-v1, after #41). Handbook §10.5 + ROADMAP #42 both flag it. stand up its Gitea at `ppe.git.wiggleverse.org`, DNS for `ppe.*` +
2. **#37 OAuth-per-host caveat — effectively RESOLVED, confirm.** Because `ppe.git.*`, flotilla 2nd deployment record at the new host/project.
#5 email/OTC shipped (v0.7.0), PPE + the e2e suite log in via OTC, so None done — all v1-gated.
no per-host OAuth app is needed. The scaffold encodes OTC-only auth. 3. **v1 timing — the gating question.** Confirm flotilla v1 timing before
Flagging in case you still want an OAuth path tested on PPE. ANY PPE VM stand-up. I stood up nothing (local scaffold only).
3. **v1 timing.** Track Δ's live PPE-on-VM parts are gated on flotilla v1. 4. **rfc-app PR #4 (e2e scaffold)** — review / merge when ready. The
I stood up **nothing** on the VM (local scaffold only). Confirm v1 Tier-1 Gitea decision is now recorded in its README; #38 still builds
timing before any VM stand-up for #37. both seams (stub + real-Gitea bootstrap).
4. **rfc-app PR #4 (e2e scaffold)** — review when ready; its README poses 5. **Open follow-on:** self-host prod Gitea on the prod VM too — captured
the Tier-1 **Gitea-dependency decision** (real disposable Gitea + in §10.1 + ROADMAP #37, needs its own decision before any move.
bootstrap vs. stub the gitea client) that #38 must settle. 6. **Gitea merge-queue wedge** (§19.2 #1) happened mid-session and
5. **Gitea merge-queue** may be wedged (see §19.2 #1) — a queue/Gitea recovered; if it recurs, a queue/Gitea restart is the fix — may affect
restart may be warranted; could affect session 0045 too. parallel sessions (0045 was in flight).
--- ---
@@ -218,34 +256,36 @@ OHM driver session. Read ~/git/ohm-infra/SESSION-PROTOCOL.md and
~/projects/wiggleverse/ohm-rfc/ROADMAP.md (Phase F / Track Δ, #37#42) ~/projects/wiggleverse/ohm-rfc/ROADMAP.md (Phase F / Track Δ, #37#42)
first. Claim your session id via claim-session-id.sh --start <now>. first. Claim your session id via claim-session-id.sh --start <now>.
Context from session 0046: the two-tier testing refinement is fully Session 0046 recorded the operator's Track-Δ design decisions into the
landed — engineering handbook §10.3 (eng PR #1) and ohm-rfc ROADMAP docs (engineering handbook §10 + ohm-rfc ROADMAP). Nothing was built —
#38/#40 (ohm-rfc PR #4 + #5) both on main. The e2e suite is all of Track Δ is GATED ON flotilla v1. The decided shape:
environment-agnostic (one BASE_URL + mail-sink API URL): Tier 1 local
Docker per-PR (no VM), Tier 2 PPE as the deploy gate; the #40 compat
gate runs first in Tier-1 Docker.
A Tier-1 e2e scaffold is OPEN for review at rfc-app PR #4 (branch - Two-tier testing (handbook §10.3 / ROADMAP #38, #40): env-agnostic
session-0046/e2e-tier1-scaffold, new e2e/ dir, NOT a release). Its suite (one BASE_URL + mail-sink API URL). Tier 1 = local Docker per-PR
README poses the one real #38 design decision to settle FIRST: how (no VM); Tier 2 = PPE as the deploy gate. The #40 N1/N compat gate
Tier 1 satisfies the backend's hard Gitea dependency — a real runs first in Tier-1 Docker, PPE as prod-like confirmation.
disposable Gitea container + bootstrap (high fidelity) vs. stubbing - #37 PPE = COMPLETELY SEPARATE infra (handbook §10.1 / ROADMAP #37):
the gitea client (fast). Auth in tests is OTC, not OAuth (the #37 own GCP micro instance + separate gcloud stack (own project/config) +
OAuth caveat dissolved once #5/OTC shipped). own Gitea at ppe.git.wiggleverse.org colocated on the PPE VM. NOT
colocated on prod; only flotilla's code-deploy gesture crosses over.
Auth in tests = OTC (OAuth caveat resolved, #5 shipped).
- #38 Tier-1 Gitea = stub for the fast inner loop, real Gitea for the
gate (Tier 2 uses PPE's own Gitea). Scaffold OPEN at rfc-app PR #4
(branch session-0046/e2e-tier1-scaffold, e2e/ dir, NOT a release).
- #42 auto-rollback = always-on VM-side watcher (systemd daemon, DB-free
rollback only; bounded carve-out from flotilla laptop-only).
- Open follow-on (not decided): self-host PROD Gitea on the prod VM too.
Possible next moves: CONFIRM flotilla v1 timing with the operator before standing up ANYTHING
- Decide the Tier-1 Gitea approach, then flesh out rfc-app PR #4 on a VM (PPE micro instance, the PPE/prod Gitea, DNS). Work that does NOT
(Dockerfiles + gitea bootstrap + real selectors) toward a passing need the VM and can proceed now: flesh out rfc-app PR #4 toward a passing
Tier-1 suite — this is #38 and does NOT need the VM. Tier-1 suite (Dockerfiles + the (B) gitea stub + the (A) gitea bootstrap
- #37 (PPE on the VM) + everything live in Track Δ is GATED ON + real selectors) — that's #38.
flotilla v1 — confirm v1 timing with the operator before any VM work.
- #42 auto-rollback has an OPEN model decision (always-on VM watcher
vs bounded-bake-during-session) — surface it, don't default.
Heads-up: session 0046 hit a wedged Gitea merge-queue (persistent 405 Heads-up: 0046 hit a wedged Gitea merge-queue (persistent 405 "please
"please try again later") and harness Bash/Read corruption — verify try again later"; recovered later) and harness Bash/Read corruption —
git state against committed blobs (git show origin/main:<path>), put verify git state against committed blobs (git show origin/main:<path>),
--max-time on every curl, and check `git branch -r --contains <your put --max-time on every curl, and check `git branch -r --contains <your
commit>` before assuming your own PR is the merge path (0046 had its commit>` before assuming your own PR is the merge path. Session 0045 was
commit merged via someone else's PR). Session 0045 was also in flight. also in flight.
``` ```