← back to IWasCute

verification/TK-11380/REVIEW.md

31 lines

# TK-11380 — three sites requiring review

Historical local review. IWasCute production deployment subsequently passed on 2026-09-10; see [PRODUCTION.md](PRODUCTION.md) for the final scope, rollback and evidence. Google review submission is outside this deployment handoff.

## IWasCute

The pending root-layout AdSense loader would execute on photo upload, login and admin routes. It is replaced with `metadata.other['google-adsense-account']`. Google accepts this ownership-verification mechanism: https://support.google.com/adsense/answer/7584263?hl=en . This does not serve ads or establish approval/readiness.

`npm run build` passed using Next16.2.3. The installed metadata/scripts guides were read. `verify.cjs` verifies nine rendered routes, public-to-login navigation, zero attempted ad requests, exact ads.txt and unauthenticated admin API401. External requests are blocked in this test. Direct-route observation is bounded to DOMContentLoaded plus750ms; it does not prove authenticated workflows or all delayed behavior. Built JS/HTML/RSC scan found no adsbygoogle/googlesyndication references. `/3x` passed HTTP, screenshot, automation and Chrome; Safari/Firefox engines were unavailable. No account login or photo submission was performed.

DTD: option A (verification only),2/2 valid voters Codex/Qwen; Claude/Grok/Kimi/Muse abstained. Adversarial Codex KEEP, noting that verification is not Google approval. Raw run retained at `/tmp/TK11380-dtd-adscope-host`.

## Live findings, 2026-09-10

* Carmel `/`: HTTP200, title `DW — Staged for Active (cadence backlog)`; `/ads.txt`404. Live Nginx routes9861 to PM2 `staged-viewer`, not Carmel. Port9832 belongs to `hollywood-wallcoverings`. Carmel source exists at `/root/public-projects/carmelwallpapers` but no matching plural-name PM2 app runs. The separate `dwf-carmelwallpaper` app is a different domain/project.
* Hospitality `/`, `/ads.txt`, `/privacy`, `/about`: HTTP401. `/healthz`200. Full-site BasicAuth is intentional and remains intact. Local ads.txt and script exist behind that gate. Public access needs a separate owner decision.
* IWasCute runs `gap-iwascute`, `/root/Projects/iwascute`, PORT9636. Live serves the older Next build. Remote source already has the unbuilt global loader; local source fix targets it.

Both remote worktrees are dirty. A deployment must preserve their changes; never rsync/delete or overwrite the whole worktree. Carmel/Hospitality also lack privacy content; none of these findings establish AdSense readiness.

## Proposed production actions — approval required

1. Snapshot the two remote worktrees locally in their existing Git repos after checking excluded files/secrets. Back up the live Carmel Nginx file. Record PM2 state and current responses.
2. Carmel: recheck19961 is unused by listeners, PM2 and Nginx. Apply only reviewed source/config hunks: explicit19961, bind127.0.0.1, health.site=carmelwallpapers, health URL19961/health, and the previously committed duplicate-loader removal. Preserve remote data/products.json and shared code. Install locked production dependencies. Start only `carmelwallpapers` using its ecosystem config. Require `/health` site identity and nonzero products, correct homepage title and exact ads.txt before switching routing. Patch only Carmel's live `proxy_pass` from9861 to `127.0.0.1:19961`, preserve TLS/headers/analytics, run nginx validation, then reload. Other services remain untouched. Do not point to9832.
3. IWasCute: apply only the reviewed layout patch, preserve other source and analytics. Build in `/root/Projects/iwascute`, restart existing `gap-iwascute` on9636. Do not use the stale local ecosystem's7450 or legacy Express7350. Recheck live metadata, ads.txt, analytics, homepage, login and admin API401; assert no ad loader after hydration/navigation.
4. After each deployment, repeat live identity/integration checks and record evidence. Do not submit Google review until public-content/privacy prerequisites have separately passed. Hospitality auth remains unchanged.

Rollback: keep timestamped Nginx/source/config backups and a copy of IWasCute's previous `.next` build. Revert only this task's hunks and restore that build if needed. Rollback of Carmel's route returns its previously wrong page, so treat that as outage containment only and surface it. Stop only a newly created Carmel process; never stop staged-viewer or Hollywood Wallcoverings.

Local Carmel preparation and verification live in `Projects/carmelwallpapers/verification/TK-11380`. The proposed port is a checked candidate, not a permanent reservation; recheck immediately before deployment.