ifURI docs

Autonomous Work unblock status - 2026-07-08

Kontekst

Problem z panelu /work: po kliknieciu Odblokuj system powinien pamietac decyzje dla danego typu zadania, ale w praktyce podobne tickety wracaja jako blocked i znowu wymagaja recznego odblokowania.

Zrzut z dashboardu pokazal m.in.:

Co faktycznie zostalo sprawdzone

Sprawdzone pliki i aktualny stan kodu:

Wniosek z kodu: obecny ledger pamieta odblokowanie po ticket_id, nie po typie zadania.

work_queue.py przy akcji unblock albo ready wywoluje record_unblock(tid, ...). gates.py sprawdza potem unblock_ledger.is_unblocked(ticket.get("id")). Watchdog robi to samo: sprawdza tylko ID ticketu. To oznacza, ze decyzja dziala dla tego konkretnego ticketu, ale nie przechodzi automatycznie na kolejny ticket o tym samym typie, akcji lub gate.

Co juz dziala

Co nadal nie dziala

Czego nie wykonalem jeszcze

Najbardziej prawdopodobna przyczyna obecnego bledu

Root cause jest w modelu klucza decyzyjnego:

obecnie:   unblock_key = ticket_id
potrzeba:  unblock_key = ticket_id albo stable_task_type_key

Dopoki Odblokuj zapisuje tylko IFURI-210, nastepny ticket IFURI-230 z tym samym wait-gate:waiting_node bedzie traktowany jako nowa, nieznana decyzja i znowu wyladuje w blocked.

Minimalny plan naprawy

1. Dodac funkcje wyliczania stabilnego typu decyzji, np. decision_key(ticket):

Status na teraz

Diagnoza jest potwierdzona w kodzie: obecny system pamieta decyzje per ticket, a oczekiwane zachowanie wymaga pamieci per typ zadania. Dlatego problem nadal wystepuje i samo klikanie Odblokuj nie naprawi go systemowo.

Resolution (verified 2026-07-08)

Naprawa wdrożona i działa.

Co wciąż może wymagać uwagi (poza tym mechanizmem):

Uruchom testy:

PYTHONPATH=urirun/adapters/python python -m pytest urirun-connector-work/tests/test_unblock_persist.py -q

Mechanizm "Odblokuj raz dla typu = trwałe dla podobnych ticketów" jest aktywny.