Przejdź do treści

Jak zgłosić problem

Zgłoszenia trafiają do Forgejo — wewnętrznego systemu issue trackera pod git.aiofactory.pl/aio/panel/issues. Można je tworzyć ręcznie przez stronę Forgejo albo automatycznie z poziomu panelu (panel sam przygotowuje issue z kontekstem i wkleja link).

Krótko

  • Manualnie: git.aiofactory.pl/aio/panel/issues/new — szablon pełen kontekstu wymaga ~3 min.
  • Z panelu (jednym klikiem): przyciski „Report a problem" i „Utwórz ticket" na stronie Marketplace → Historia → Logi. Panel dokleja screenshot, filtry, UUID joba.
  • Auto-file: błędy 5xx i awarie infra panel sam wnosi jako issue z prefiksem [auto] (bez Twojego udziału).
  • Eskalacja P0/P1: email na dev@aiofactory.pl z prefiksem [P0] lub [P1] w temacie. Forgejo nie służy do P0.

Trzy ścieżki zgłoszenia

1. Manualnie przez Forgejo (najbardziej elastyczna)

Otwórz git.aiofactory.pl/aio/panel/issues/new. Wymaga zalogowania (te same dane co panel — Mailcow OAuth).

Etykiety nadawane przez nas po triażu:

  • bug — odchylenie od dokumentacji → naprawa w fazie utrzymania.
  • feature-request — pomysł / nowa funkcja → akumuluje się, nie pracujemy w fazie utrzymania.
  • bez etykiety — pytanie / wyjaśnienie → odpowiedź w docs lub w komentarzu.

Nie musisz nadawać etykiety samemu — robimy to przy triage'u w piątek wieczór.

2. Z panelu — Marketplace → Historia → Logi

W panel.aiofactory.pl/marketplace/history są dwa przyciski:

  • „Report a problem" (prawy górny róg, ikona robaka 🐞) — globalne zgłoszenie do całej historii / sprintu. Wnosi kontekst: aktualne filtry, liczbę widocznych eventów, link do bieżącego URL.
  • „Utwórz ticket" (per-event, w rozwijanym wierszu logu) — zgłoszenie powiązane z konkretnym przebiegiem flowa. Wnosi: UUID joba Windmilla, ID eventu, log błędu, znacznik czasu.

Oba przyciski:

  1. Robią screenshot bieżącej strony (html2canvas) i dołączają go do issue jako załącznik.
  2. Tworzą issue z prefiksem [manual] (źródło zgłoszenia jest jawnie zaznaczone).
  3. Wracają z numerem issue'a wpisanym do logu — od tej chwili wiersz logu pokazuje „Ticket #N" i jest klikalny do Forgejo.

To zalecana ścieżka dla operatora — autorzy najczęściej zgubionym elementem w manualnym zgłoszeniu są: UUID joba i screen. Ten przycisk dokleja oba.

3. Automatycznie — fatal errors

Panel sam tworzy issue, gdy:

  • Flow Windmilla zwraca HTTP 5xx (vendor / infra failure) lub status 0 (network unreachable).
  • Plik flowa rzuca nieobsłużony wyjątek poza zakresem retry-policy.

Te issue'y mają prefiks [auto] w tytule i są domyślnie w stanie open z etykietą bug. Panel filtruje błędy 4xx (klient/payload) — te NIE są auto-filed (zazwyczaj to nasz bug w przygotowaniu requestu, naprawiamy po zauważeniu w logach).

Auto-filed issue'y są deduplicate'owane przez signature — jeśli ten sam fatal trafia 50× w godzinę, jest jedno issue z licznikiem wystąpień, nie 50 osobnych.


Jak napisać dobry bug-report

Cztery sekcje, każda jednolinijkowa wystarczy:

**Co miało się stać:**
Po kliknięciu „Wystaw" w *Marketplace → Oferty* dla rodziny BUZ-HSK powinno
powstać 7 wystawień (Allegro/Amazon/eBay/Erli/Joom/Temu/Woo).

**Co się stało:**
Powstały tylko 4 (Allegro, Amazon, Woo, Temu). eBay/Erli/Joom missing.
Modal zamknął się bez błędu w UI.

**Kroki odtworzenia:**
1. Logowanie jako anna@aiofactory.pl
2. Marketplace → Oferty → Filtr: Aktywne → SKU `BUZ-HSK-M-RED`
3. Kliknij „Wystaw" → modal → Zaznacz wszystkie platformy → Potwierdź

**Kiedy:** 2026-05-02 14:32

**UUID joba (jeśli wiadomo):**
panel.aiofactory.pl/marketplace/history → wiersz `marketplace/publish_group_*`
job UUID: `019dcdd4-3a8a-7e91-ab90-...`

UUID joba skraca debug do < 5 minut

Z UUID joba możemy lokalnie odtworzyć pełen kontekst: wmill job get <uuid> (input + output) i wmill job logs <uuid> (pełen log Pythona). Bez UUID musimy zgadywać po znacznikach czasu i nazwach flow — ten sam debug zajmuje ~30 min.


Co dołączyć — według klasy zgłoszenia

Klasa Wymagane Pomocne Zbędne
Bug UI (źle wyświetla, klik nie działa) URL strony · screen · krótki opis Konsola przeglądarki (F12) jeśli błąd JS Logi backendu — debugujemy z URL
Bug automatu (flow nie wystawił, fetcher nie pobrał) UUID joba lub znacznik czasu z dokładnością do 1 min Co miało się wystawić (SKU, family TAG) Screen UI — tu liczy się log Windmilla
Outage (P0) Adres panel.aiofactory.pl / mail.aiofactory.pl jest 5xx / nie odpowiada Beszel screenshot (czerwony status?) Logi — sami wyjmiemy z hosta
Feature request Co chciałbyś, żeby panel robił Przykład sytuacji biznesowej Specyfikacja techniczna — to nasza rola

Co panel pokazuje po zgłoszeniu

Po utworzeniu issue'a (ręcznym albo z panelu):

  1. W Forgejo — issue dostaje numer (#42) i jest widoczny w git.aiofactory.pl/aio/panel/issues.
  2. W panelu — sekcja Marketplace → Historia → Logi dla danego eventu pokazuje „Ticket #42" z klikalnym linkiem.
  3. Po naprawie — komentarz typu „naprawione" jest zapisywany przez właściciela, nie przez nas (konwencja od 2026-05; szczegóły w bug-fix mode SOP). My przesyłamy jeden sprint-summary email w niedzielę wieczór z listą zamkniętych spraw.

Załączniki — co działa, co nie

  • Screen z UI panelu (PNG / JPG do 5 MB) — zalecane, działa zarówno przez Forgejo „Drop files here" jak i przyciski w panelu.
  • PDF (np. komunikat z Allegro / OCR faktury) — Forgejo wspiera up to 10 MB.
  • ⚠️ Wideo (MP4) — działa, ale dla bug-raportów lepszy jest GIF (≤ 2 MB) lub krótka sekwencja screenów.
  • Pliki z hasłami — NIE wklejaj kluczy API ani haseł w treści issue'a; jeżeli musisz, zaszyfruj kanał (email PGP-owy lub Bitwarden share).

Powiązane