update 0061/SESSION-0061.0-TRANSCRIPT-2026-06-01T10-28--INPROGRESS.md
This commit is contained in:
@@ -116,32 +116,50 @@ Both shell assets pass `bash -n`; the param reader round-trips wiggle-snip's tom
|
|||||||
### Arc 3 — Dogfood step 1: GCP foundation for wiggle-snip
|
### Arc 3 — Dogfood step 1: GCP foundation for wiggle-snip
|
||||||
|
|
||||||
Operator chose **full live bring-up** on a **new** billing account. Drove
|
Operator chose **full live bring-up** on a **new** billing account. Drove
|
||||||
`scaffold-gcp-project` for wiggle-snip:
|
`scaffold-gcp-project` for wiggle-snip: project `wiggle-snip` under org
|
||||||
|
`wiggleverse.org`; dedicated `wiggle-snip` profile **`--no-activate`** (verified the
|
||||||
|
active pointer stayed `benstull-infra`); **6/6 PASS** validate (gcloud-project WARN
|
||||||
|
cleared). Operator created a new billing account → linked → APIs enabled
|
||||||
|
(compute/secretmanager/iap) → ADC quota pinned to wiggle-snip.
|
||||||
|
|
||||||
- Created GCP project `wiggle-snip` under org `wiggleverse.org` (592336083752).
|
### Arc 4 — VM + firewall + runtime (3 skill bugs found by dogfooding)
|
||||||
- Created the dedicated `wiggle-snip` gcloud profile **`--no-activate`**; populated
|
|
||||||
account/project/region/zone scoped by `CLOUDSDK_ACTIVE_CONFIG_NAME` only. **Verified
|
|
||||||
the active pointer stayed `benstull-infra`** — the two-layer rule held.
|
|
||||||
- Re-ran `deployment validate`: **6/6 PASS, the gcloud-project WARN cleared** — the
|
|
||||||
§4.2 gate for `provision-vm` is green.
|
|
||||||
|
|
||||||
Blocked here on the operator plate (below): a **new billing account** is Console-only,
|
- Static IP `35.255.99.91`; VM `wiggle-snip-ppe` (e2-micro, debian-12, shielded) RUNNING.
|
||||||
and APIs/VM can't proceed until billing links.
|
- Firewall: IAP-only :22 (35.235.240.0/20), :80/:443 from Cloudflare ranges.
|
||||||
|
**Skill bug #1:** the default VPC ships `default-allow-ssh` (:22 from 0.0.0.0/0);
|
||||||
|
firewall rules union, so IAP-only wasn't structural until I deleted
|
||||||
|
default-allow-ssh + default-allow-rdp. Patched provision-vm Step 3 (3d).
|
||||||
|
- IAP SSH verified. provision-runtime installed the OS runtime (node 18.20.4, npm
|
||||||
|
9.2.0, python 3.11.2). **Skill bug #2:** clone temp dir `${INSTALL_DIR}.clone`
|
||||||
|
under root-owned /opt couldn't be created by the service user — now root
|
||||||
|
pre-creates it user-owned. **Skill bug #3:** the Gitea host has an AAAA record
|
||||||
|
but the VM has no IPv6 route → SSH clone died "Network is unreachable"; forced
|
||||||
|
IPv4 (`AddressFamily inet` / `ssh -4` / `ssh-keyscan -4`).
|
||||||
|
|
||||||
|
### Arc 5 — Gitea repo + the One-Name fork
|
||||||
|
|
||||||
|
- No GITEA_TOKEN in env; org push-to-create disabled. Operator created the repo —
|
||||||
|
as `wiggleverse/wiggleverse-wiggle-snip-app` (the `<org>-<product>-app`
|
||||||
|
convention), NOT `wiggle-snip`. **One-Name divergence (§3.3).** Operator chose:
|
||||||
|
keep deployment/project/VM = `wiggle-snip`, repoint `[app].repo` at the long
|
||||||
|
name. Logged as SPEC §3.3 friction (Wiggleverse repo convention vs
|
||||||
|
repo-name==One-Name). Pushed main + tag `v0.1.0` over SSH (as ben.stull).
|
||||||
|
- Repo is **private** (operator's choice). Added `gitea_read_secret_ref =
|
||||||
|
wiggle-snip/wiggle-snip-gitea-read-token` to the toml; re-validated (6/6);
|
||||||
|
re-imported. provision (private path) generated the VM deploy key
|
||||||
|
(`ssh-ed25519 …mYXY0 wiggle-snip-ppe-deploy`), pinned to the IPv4 fix.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What lands on the operator's plate (current)
|
## What lands on the operator's plate (current)
|
||||||
|
|
||||||
1. **New billing account** (Console-only) → give me the account ID (not a secret) so I
|
1. **Register the VM deploy key** (read-only) on wiggleverse-wiggle-snip-app — for
|
||||||
link it, or link it yourself: `gcloud billing projects link wiggle-snip
|
the clone.
|
||||||
--billing-account=<ID>`.
|
2. **Store the read token**: `gcloud secrets create wiggle-snip-gitea-read-token`
|
||||||
2. **Gitea repo push** — export a `$GITEA_TOKEN` with org repo-create scope and either
|
(stdin) — for flotilla's pin fetch. (NOT `flotilla secret set` — §5.1 keeps it
|
||||||
run, or let me run, `scaffold-gitea-repos/assets/init-and-push.sh --app-dir
|
out of the app runtime env.)
|
||||||
~/projects/wiggleverse/wiggle-snip --repo wiggleverse/wiggle-snip` (public; no
|
3. **Cloudflare DNS** A `ppe.wiggle-snip.wiggleverse.org` → `35.255.99.91`, proxied,
|
||||||
`--private`). Pushes + tags `v0.1.0`.
|
SSL Full — before phase 8 can go green.
|
||||||
3. **Cloudflare DNS** — a `$CF_API_TOKEN` + `$CF_ZONE_ID` in your env for the proxied
|
|
||||||
A record `ppe.wiggle-snip.wiggleverse.org` → the VM IP, SSL mode Full (provision
|
|
||||||
Step 6). Never pasted into the conversation.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user