Przejdź do treści

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_*.ts przeniesione do convex/convex/support/<nazwa>.ts. Identyfikatory tabel zachowane jako cs_* (brak migracji schematu). Dodany support/nodeCatalog jako single source of truth dla 18-węzłowego katalogu scenariuszy CS.
  • Dashboardroutes/marketplace/support/ przeniesione do routes/support/. lib/cs/ przeniesiony do lib/support/. Dodany 308-redirect z legacy ścieżek.
  • Windmill — całe poddrzewo f/cs/ przeniesione do f/support/. Dodatkowo z f/customer_service/ rozdzielono trzy skrypty: classify_issues.pyf/support/classify.py, fetch_imap.pyf/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_id w endpointzie fees-estimate.
  • TASK-255 — Amazon: clearStaleErrorFields na granicy marketplace/listings:upsert + :updateStatus.
  • TASK-256 — Amazon: purchasable_offer.our_price we wszystkich trzech miejscach zapisu.
  • TASK-237 — Temu: 10 dostrojeń zamknięte (zweryfikowane po Phase 6).
  • TASK-281 — Erli: mutacja marketplace/listings:setMarketplaceId do backfillu wierszy-sierot.

Decyzje zamknięte

  1. Identyfikatory tabel pozostają jako cs_*cs_issues, cs_messages, cs_email_accounts itd. Tylko ścieżki plików zmieniają się; brak migracji schematu, zero ryzyka utraty danych.
  2. Per-MP fetchery zostają w f/customer_service/ na czas Phase 1 — przeniesione w Phase 3 (TASK-262.27) do f/marketplace/<mp>/fetchers/.
  3. API routes pod /api/cs/* nie zostały przeniesione — tylko ich zawartość zaktualizowana. Ścieżki klienckie zachowują wsteczną kompatybilność.
  4. support/nodeCatalog.ts (Q3 architecture) — ograniczone do struktury katalogowej; pełna migracja 18-węzłowego katalogu z dashboardu (1042 LOC w node-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:

  1. Wszystkie kryteria akceptacji wymienione powyżej zostały spełnione.
  2. Smoke-testy produkcyjne wykonane w oknie cutoveru 2026-04-27 zakończyły się powodzeniem.
  3. Moduł obsługi klienta jest operacyjny w produkcji od 2026-04-27 (potwierdzenie: 1046 zgłoszeń przetworzonych do 2026-05-01).
  4. Pakiet dry-fix (7 zadań) został wdrożony i zwalidowany.

Imię i nazwisko właściciela: ___________

Data: ________

Podpis: ___________

Uwagi (opcjonalnie):