QA Report · ClientsFlow Pipeline · PENDING REVIEW
Build under test: pipeline 17c5269+v111 (freebusy-skip merged) · Studio target: -rebuild · 2026-06-25 21:30 (post-compaction resume — Studio walk DRIVEN LIVE)
The session's core deliverable — the two-repo Studio integration — is now proven live end-to-end against the deployed pipeline (v111) and the live Studio -rebuild API, driven with a single ZZ sentinel, with the six real client deals untouched throughout.
main ahead of origin). Studio not promoted to -prod. Human gate intact (Studio send-to-client never fired). One ZZ fixture remains to sweep at session end.Each row driven through the real deployed endpoints; downstream state confirmed on the live Studio -rebuild instance.
| Row | What it covers | Verdict | Evidence |
|---|---|---|---|
| WJ-41 | booking(deferred)→save-URL→studio_create_and_kick | 🟢 PASS-API | ZZ qa/book created deal_edcd0c3de166 (studio_deferred=True); POST /dash/api/studio/save-website-url → studio_resume_on_url_save → studio_create_and_kick created a REAL Studio project on -rebuild: id=8e490d6b76354febb1973c0c62cd726a, crm_ref matches. Pipeline deal now carries studio_project_id + present/review URLs. |
| WJ-42 | Studio stage chip on the card | 🟢 PASS | Playwright element screenshot of the ZZ card (.tmp/qa-shots/zz-card-booked.png): chip '🎨 DIZÁJN KÉSZÜL' rendered (studio_stage_label from STUDIO_STAGE_MAP, stage=intake). |
| WJ-43 | Open-in-Studio link | 🟢 PASS | Same screenshot: 'Open in Studio' button rendered; deal studio_present_url=.../present/pJ2VL0Vf8lQl5ns0TZcJuw + studio_review_url=.../p/Z2dp60GHyeeokK1-IlQQUA. |
| WJ-44 | Send-to-client AI draft + human gate | 🟢 PASS-API | POST /dash/api/studio/draft-send → real HU AI draft + the -rebuild review URL prefilled (no send). Human gate: POST /dash/api/studio/send-to-client with empty message → {ok:false,'message_text is required — never auto-send (human gate)'}. Küldés never clicked. (The on-card send BUTTON shows at a sendable stage; the project is at intake because the -rebuild Lab generated no pages for example.com.) |
| WJ-45 | Lost → Studio archive (S10, archive-not-delete) | 🟢 PASS-API | POST /dash/api/move {stage:off} (hook-firing Move path) → _sync_stage('off') → trigger_lost → -rebuild project archived: lookup by crm_ref now 404 not_found (invisible), GET-by-id shows stage='archived' (still exists). Pipeline deal: stage=off, studio_stage=archived. |
| WJ-46 | Approval overlay (pulsing green) when Studio reports approved | 🟡 NOT_DRIVEN | Needs the -rebuild project approved=true (client approves in the Studio present/review UI — there is no approve API endpoint, by design). Seam unit-tested (tests/test_studio_dash_rows.py renders the overlay from studio_approved). Residual: Studio Lab generation + human client approval. |
| WJ-47 | won → live-URL reflection + no separate waiting_dev column | 🟡 PASS-partial | Soft-removal half PASS (no separate waiting_dev/Dev-handoff column in the board, prior pass). won→cloudflare_url half NOT_DRIVEN-live (needs a real won deal + Cloudflare deploy; seam unit-tested). |
Verified live (screenshots / DOM) on the deployed board.
| Row | Verdict | Evidence |
|---|---|---|
| WJ-05 | 🟢 PASS | Card render: name+company, website link, email copy-chip, plain-text last message, action row; pulse-red ring on unread top lead. |
| WJ-08 | 🟢 PASS | Every card has a MOVE TO combobox listing all 11 stages (re-confirmed on the ZZ card screenshot this pass). |
| WJ-board-sort(F2) | 🟢 PASS | Per-column sort toggles ('Legutóbb szerkesztett felül' / 'Legközelebbi határidő felül'). |
| WJ-34 | 🟢 PASS | Sign-FUP card three pills (next-call, AJÁNLAT ÉRVÉNYES, EMLÉKEZTETŐ 1/3 + Auto chase). |
| WJ-09 | 🟣 NOTE | Negative-Replies card shows a RICHER action set (Suggested-reply box + Send+Booking-FUP + Reply&Mark-Lost + Archive) than the older master's 'Log Call + Send Emails only'. Owner to confirm this newer panel is intended (it looks like the correct current design). |
Not re-driven this Studio-focused pass; covered by the 900-green pytest suite + prior live passes, or genuinely residual.
| Verdict | Rows & basis |
|---|---|
| 🟡 NOT_DRIVEN | Covered by the 900-green pytest suite + prior bnf live passes; not re-driven this Studio-focused pass. Drive next with ZZ sentinels (qa/book now freebusy-skipped, so the booking UI rows are unblocked). |
| 🔴 BLOCKED | Residual human/external infra — not drivable with a ZZ sentinel. |
| Invariant | State after this pass |
|---|---|
| Real deals | NONE — 6 real client deals (reorgbau/revotec/k-xconsulting/analit/szhvill/alovasember) verified present + untouched before and after every step. |
| Human gate | intact — Studio send-to-client never sent (empty-message gate verified); no lead/client sends performed. |
| AUTOSEND | not flipped |
| Owner-requested deletion | Friend's data (Kocsy/scatter9920) deleted on owner instruction: 14 store keys deleted (3 deals + 4 booking markers + 7 indexes) + 46 Notion pages ARCHIVED (3 CRM + 42 activity-log + 1 call recording, archive-not-delete). Board verified 0 friend cards remain. External remnants flagged to owner (Fireflies transcript, GHL contacts) — not auto-deleted. |
| ZZ cleanup | 1 ZZ fixture remains (matyas.sarudi00+zzstudiowalk@gmail.com, now off/archived) — sweep at session end via the ZZ-gated _delete path. |
| Option | |
|---|---|
| V1 | Accept & promote: I sweep the last ZZ fixture, then on your trigger push main + promote Studio to -prod. |
| V2 | Drive the remaining non-Studio journey rows live (booking UI / proposal / cancellation) now that qa/book is freebusy-skipped, for a full-journey green. |
| V3 | Live-sim WJ-46/47: progress the -rebuild project to approved/won (Studio UI) so the approval overlay + won live-URL render on the card. |