From da0436cee8397dc6377c99343fe8beb713bf1b48 Mon Sep 17 00:00:00 2001 From: vladtechno Date: Sun, 17 May 2026 11:34:19 +1000 Subject: [PATCH] =?UTF-8?q?docs(state):=20Phase=201=20MVP=20LIVE=20?= =?UTF-8?q?=E2=80=94=20backend+frontend=20deployed,=20smoke=20checks=20gre?= =?UTF-8?q?en?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/superpowers/STATE.md | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/docs/superpowers/STATE.md b/docs/superpowers/STATE.md index be02311..2bc05d7 100644 --- a/docs/superpowers/STATE.md +++ b/docs/superpowers/STATE.md @@ -1,10 +1,30 @@ # Premium Mechanic PWA β€” Implementation State -> Last updated: 2026-05-17 (Phase 1 MVP code-complete, awaiting production deploy) +> Last updated: 2026-05-17 (Phase 1 MVP LIVE IN PRODUCTION) -## Status: **READY TO DEPLOY** (Phase J prep done, awaiting explicit user OK) +## Status: 🟒 **DEPLOYED β€” Phase 1 MVP LIVE on https://mechanic.pptaxi.ru** -Backend (Phases B-F) and Frontend (Phases G-I) are feature-complete and pushed to Gitea. Deployment is the only step left β€” it requires SSH into `root@100.64.0.12` (prod VDS), Docker compose restart, and Caddy reload. **Not executed automatically.** See "Deployment runbook" section below for the exact steps. +All 4 deployment phases executed successfully: + +- βœ… **J1 Backend**: `git push vds feat/mechanic-mvp` β†’ checkout on VDS β†’ `docker build` β†’ rolling restart blue+green β†’ healthz 5/5 green on `https://crm.pptaxi.ru/api/v1/mechanic/healthz` +- βœ… **J2 Frontend**: `scp dist/` β†’ VDS at `/opt/sites/mechanic-pwa/dist/` (448K) β†’ added Caddy block + bind mount β†’ `docker compose up -d --force-recreate caddy` β†’ Let's Encrypt cert auto-issued β†’ HTTPS 200 on `https://mechanic.pptaxi.ru/` +- βœ… **J3a Merge**: `feat/mechanic-mvp` β†’ `main` (ff-only) in BOTH repos, pushed to Gitea + VDS +- βœ… **J3b Prod sync**: VDS now on `main` branch, healthz still green + +**Smoke checks passed:** +| Check | Result | +|---|---| +| `GET https://mechanic.pptaxi.ru/` | 200 OK, text/html, served from SPA | +| `GET /manifest.webmanifest` | JSON with `"name": "Premium ΠœΠ΅Ρ…Π°Π½ΠΈΠΊ"` | +| `GET /api/v1/mechanic/healthz` (via mechanic.pptaxi.ru) | `{"status":"ok"}` | +| `GET /api/v1/mechanic/me` (no auth) | 401 | +| `GET /api/v1/mechanic/vehicles` (no auth) | 401 | +| `GET /icons/icon-192.png` | 200 image/png, 2326 bytes | +| `GET /sw.js` (service worker) | 200 text/javascript | +| `GET /vehicles/12345` (SPA route) | 200 text/html (index.html fallback) | +| `crm.pptaxi.ru/api/v1/mechanic/healthz` x5 | 5/5 ok (both blue+green serving) | + +**Remaining manual smoke (mobile, J3 step 8):** open `https://mechanic.pptaxi.ru` on Android Chrome / iOS Safari, login with test mechanic account, create inspection, snap photo, verify MinIO upload + thumbnail appears, verify "Add to Home Screen" works. *Not automated β€” you'll do that on a phone.* ## What is done