Phase 1 — akceptacja¶
Dokument akceptacyjny dla Phase 1 refaktora strukturalnego TASK-262 oraz pakietu dry-fix zamykającego błędy zidentyfikowane w audycie sesji marketplace z 2026-04-24.
Metadane¶
| Pole | Wartość |
|---|---|
| Identyfikator fazy | Phase 1 — support/ migration + dry-fix bundle |
| Zadania Backlog | TASK-262.24 (migracja), TASK-208, TASK-280, TASK-254, TASK-255, TASK-256, TASK-237, TASK-281 (dry-fix), TASK-279 (umbrella) |
| Data wdrożenia (dev) | 2026-04-26 |
| Data wdrożenia (prod) | 2026-04-27 |
| Okno wdrożeniowe (prod) | jednoczesne z Phase 2 i Phase 3 (TASK-262.33 cutover) |
| Klasa ryzyka | 🟢 niska (support/ rename) + 🟢 niska (dry-fix punktowy) |
| Plan referencyjny | backlog/docs/doc-083 (sekcja "Phase 1 — Dry-fix bundle to dev") |
Zakres¶
Refaktor support/ (dawne cs/ w 3 warstwach):
- Convex — 11 plików
cs_*.tsprzeniesione doconvex/convex/support/<nazwa>.ts. Identyfikatory tabel zachowane jakocs_*(brak migracji schematu). Dodanysupport/nodeCatalogjako single source of truth dla 18-węzłowego katalogu scenariuszy CS. - Dashboard —
routes/marketplace/support/przeniesione doroutes/support/.lib/cs/przeniesiony dolib/support/. Dodany 308-redirect z legacy ścieżek. - Windmill — całe poddrzewo
f/cs/przeniesione dof/support/. Dodatkowo zf/customer_service/rozdzielono trzy skrypty:classify_issues.py→f/support/classify.py,fetch_imap.py→f/support/imap_fetcher.py,refresh_gmail_labels.py.
Pakiet dry-fix (zamknięcie audytu marketplace 2026-04-24):
- TASK-208 — Temu (zamknięte: już naprawione w Phase 6 refaktora).
- TASK-280 — Allegro: synchronizacja inline_script z
account.extra.listing_config.responsibleProducer/Person(GPSR). - TASK-254 — Amazon: probe
seller_idw endpointziefees-estimate. - TASK-255 — Amazon:
clearStaleErrorFieldsna granicymarketplace/listings:upsert+:updateStatus. - TASK-256 — Amazon:
purchasable_offer.our_pricewe wszystkich trzech miejscach zapisu. - TASK-237 — Temu: 10 dostrojeń zamknięte (zweryfikowane po Phase 6).
- TASK-281 — Erli: mutacja
marketplace/listings:setMarketplaceIddo backfillu wierszy-sierot.
Decyzje zamknięte¶
- Identyfikatory tabel pozostają jako
cs_*—cs_issues,cs_messages,cs_email_accountsitd. Tylko ścieżki plików zmieniają się; brak migracji schematu, zero ryzyka utraty danych. - Per-MP fetchery zostają w
f/customer_service/na czas Phase 1 — przeniesione w Phase 3 (TASK-262.27) dof/marketplace/<mp>/fetchers/. - API routes pod
/api/cs/*nie zostały przeniesione — tylko ich zawartość zaktualizowana. Ścieżki klienckie zachowują wsteczną kompatybilność. support/nodeCatalog.ts(Q3 architecture) — ograniczone do struktury katalogowej; pełna migracja 18-węzłowego katalogu z dashboardu (1042 LOC wnode-schemas.ts) przeniesiona do TASK-274 jako osobne zadanie nie-strukturalne.
Zależności¶
Brak — Phase 1 jest pierwszą fazą migracji i nie zależy od wcześniejszych zadań TASK-262 poza fazą zerową (TASK-262.14 Windmill ergonomics + TASK-262.23 gitignore + lab cleanup).
Kryteria akceptacji¶
| # | Kryterium | Status | Dowód |
|---|---|---|---|
| 1 | Migracja Convex support/ zakończona — typecheck zielony |
✅ | TASK-262.24 — commit bfd8cce |
| 2 | Migracja Dashboard support/ zakończona — pnpm check 0 błędów, build zielony |
✅ | TASK-262.24 — commit bfd8cce; legacy redirect w hooks.server.ts |
| 3 | Migracja Windmill f/support/ zakończona — wmill sync push na dev (257 zmian) |
✅ | TASK-262.24 — commit bfd8cce; harmonogram f/support/dispatcher zarejestrowany |
| 4 | Trzy harmonogramy CS aktywne na dev: f/support/dispatcher, f/support/imap_fetcher_gmail, f/support/imap_fetcher_mailcow |
✅ | TASK-262.24 — final summary; runs w 268 ms / 237 ms |
| 5 | TASK-208 zamknięte (Temu już naprawione w Phase 6) | ✅ | TASK-208 — commit e381840 |
| 6 | TASK-280 — Allegro inline_script GPSR sync zaimplementowany | ✅ | TASK-280 — commit e381840 |
| 7 | TASK-254 — Amazon fees-estimate seller_id probe | ✅ | TASK-254 — commit a032764 |
| 8 | TASK-255 — Amazon clearStaleErrorFields w upsert + updateStatus | ✅ | TASK-255 — commit a032764 |
| 9 | TASK-256 — Amazon purchasable_offer.our_price w 3 miejscach zapisu | ✅ | TASK-256 — commit a032764 |
| 10 | TASK-237 — Temu 10 dostrojeń zamknięte | ✅ | TASK-237 — commit 2982867 |
| 11 | TASK-281 — Erli setMarketplaceId mutation | ✅ | TASK-281 — commit 2982867 |
| 12 | Walidacja techniczna: Convex typecheck + dashboard tsc + Windmill metadata | ✅ | TASK-279 implementation notes (Phase 1 complete 2026-04-27) |
Smoke-test produkcyjny¶
Phase 1 została wdrożona na produkcję w jednym wspólnym oknie z Phase 2 i Phase 3 dnia 2026-04-27 (TASK-262.33 cutover). Smoke-testy CS wykonane bezpośrednio po deployu:
| Test | Wynik | Dowód |
|---|---|---|
Logowanie do panelu (panel.aiofactory.pl/login) |
✅ 200, sesja aktywna | TASK-262.33 final summary |
f/support/dispatcher flow uruchamia się co minutę |
✅ runs success | TASK-262.33 — "drained 6 stale events post-flow-sync, 0 errors after" |
f/support/imap_fetcher (gmail + mailcow) |
✅ 6 kont przetworzonych, 0 błędów | TASK-262.33 final summary |
support/issues:list paginacja zwraca dane |
✅ | TASK-262.24 — final summary |
Strona /support/issues renderuje listę zgłoszeń |
✅ — operacyjna; pagination dodana w Sprint 1 (Forgejo #32) | doc-086 verification log |
Strona /support/scenarios renderuje builder |
✅ — operacyjna | TASK-262.24 final summary |
308-redirect /marketplace/support → /support |
✅ aktywny | TASK-262.24 final summary |
Stan obsługi klienta na produkcji (2026-05-01, post-cutover): 1046 zgłoszeń / 2327 wiadomości / 12 reguł przydziału / 12 kont email — moduł w pełnej eksploatacji.
Pakiet dry-fix — wdrożenie¶
Wszystkie siedem zadań pakietu dry-fix wdrożono na produkcję jednocześnie z migracją struktury (commit dla każdej grupy w jednej kolejności):
| Commit | Zakres | Zadania |
|---|---|---|
e381840 |
TASK-208 close + TASK-280 Allegro inline_script GPSR sync | TASK-208, TASK-280 |
a032764 |
Amazon trio | TASK-254, TASK-255, TASK-256 |
2982867 |
Erli backfill mutation + Temu close | TASK-281, TASK-237 |
d0eb449 |
Phase 1 completion note (Backlog) | TASK-279 |
Walidacja: npx convex typecheck ✅, pnpm check ✅, brak nowych błędów w plikach Windmill (tylko wcześniej obecne ostrzeżenia Deno + .ts-import).
Pozostałe pozycje (Phase 1)¶
Brak. Faza zamknięta w pełni.
Blok podpisu¶
Akceptuję wykonanie Phase 1 — support/ migration + dry-fix bundle.
Niżej podpisany potwierdza, że:
- Wszystkie kryteria akceptacji wymienione powyżej zostały spełnione.
- Smoke-testy produkcyjne wykonane w oknie cutoveru 2026-04-27 zakończyły się powodzeniem.
- Moduł obsługi klienta jest operacyjny w produkcji od 2026-04-27 (potwierdzenie: 1046 zgłoszeń przetworzonych do 2026-05-01).
- Pakiet dry-fix (7 zadań) został wdrożony i zwalidowany.
Imię i nazwisko właściciela: ___________
Data: ________
Podpis: ___________
Uwagi (opcjonalnie):