)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"1ff4424f8f04e93fcae9e3472ac9a6ebe8f5f56f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f991ae46_febdfdac","updated":"2026-01-30 10:10:38.000000000","message":"Thanks for fixing this!\n\nI\u0027ve tested this for the graph kinds that watcher uses with multiple levels of complexity and parallelization, 50, 100 and 200 tasks with parallelization of 1 (worked well before), 2 and 5. All cases worked fine. I\u0027ve also tested it successfully with different depths and paralelization using the reproducer in https://bugs.launchpad.net/taskflow/+bug/2139228","commit_id":"85eed73f8caa19fce6633651fc88e8f07aebd47f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e807e7c691fd2d6cd0ca4f7cfa170930a3b0da0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e8f33a1b_9161edb0","updated":"2026-02-03 14:51:29.000000000","message":"i\u0027m going to update it","commit_id":"85eed73f8caa19fce6633651fc88e8f07aebd47f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"385a5036c254bd7e4dd605a2bbef67b28d01e6e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"24962198_67f93e4d","updated":"2026-02-04 17:00:10.000000000","message":"I don\u0027t know why Daniel didn\u0027t add +A but without no explicit reason to avoid it I\u0027ll merge this now.","commit_id":"6fc3a9b0f1868e3a6092007bb0fd8e79df6f5d95"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"05652ad5e3d283b456884fff019b482e23d58a9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"93de5f1f_bc6f3b46","updated":"2026-02-03 14:55:36.000000000","message":"Thanks !","commit_id":"6fc3a9b0f1868e3a6092007bb0fd8e79df6f5d95"}],"taskflow/engines/action_engine/traversal.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fde0186fc8d4d70a0708ce069cf6c92ee4b422a4","unresolved":true,"context_lines":[{"line_number":60,"context_line":"        through_flows\u003dthrough_flows, through_retries\u003dthrough_retries,"},{"line_number":61,"context_line":"        through_tasks\u003dthrough_tasks)"},{"line_number":62,"context_line":"    q \u003d collections.deque(initial_nodes_iter)"},{"line_number":63,"context_line":"    visited_atoms \u003d set()"},{"line_number":64,"context_line":"    while q:"},{"line_number":65,"context_line":"        node \u003d q.popleft()"},{"line_number":66,"context_line":"        if node in visited_atoms:"}],"source_content_type":"text/x-python","patch_set":3,"id":"8eed7e34_6203aeb0","line":63,"range":{"start_line":63,"start_character":4,"end_line":63,"end_character":17},"updated":"2026-02-03 14:49:40.000000000","message":"(nit) I wonder if we want to use \u0027node\u0027 rather than \u0027atom\u0027 consistency within this method.","commit_id":"85eed73f8caa19fce6633651fc88e8f07aebd47f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"39b0755c30e99122a5961034788f0dbc965227d6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        through_flows\u003dthrough_flows, through_retries\u003dthrough_retries,"},{"line_number":61,"context_line":"        through_tasks\u003dthrough_tasks)"},{"line_number":62,"context_line":"    q \u003d collections.deque(initial_nodes_iter)"},{"line_number":63,"context_line":"    visited_atoms \u003d set()"},{"line_number":64,"context_line":"    while q:"},{"line_number":65,"context_line":"        node \u003d q.popleft()"},{"line_number":66,"context_line":"        if node in visited_atoms:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bafdaa02_de936b75","line":63,"range":{"start_line":63,"start_character":4,"end_line":63,"end_character":17},"in_reply_to":"4b609bd4_3f10ad1f","updated":"2026-02-03 14:53:56.000000000","message":"Done","commit_id":"85eed73f8caa19fce6633651fc88e8f07aebd47f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e807e7c691fd2d6cd0ca4f7cfa170930a3b0da0e","unresolved":true,"context_lines":[{"line_number":60,"context_line":"        through_flows\u003dthrough_flows, through_retries\u003dthrough_retries,"},{"line_number":61,"context_line":"        through_tasks\u003dthrough_tasks)"},{"line_number":62,"context_line":"    q \u003d collections.deque(initial_nodes_iter)"},{"line_number":63,"context_line":"    visited_atoms \u003d set()"},{"line_number":64,"context_line":"    while q:"},{"line_number":65,"context_line":"        node \u003d q.popleft()"},{"line_number":66,"context_line":"        if node in visited_atoms:"}],"source_content_type":"text/x-python","patch_set":3,"id":"4b609bd4_3f10ad1f","line":63,"range":{"start_line":63,"start_character":4,"end_line":63,"end_character":17},"in_reply_to":"8eed7e34_6203aeb0","updated":"2026-02-03 14:51:29.000000000","message":"yeah you\u0027re probably right","commit_id":"85eed73f8caa19fce6633651fc88e8f07aebd47f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fde0186fc8d4d70a0708ce069cf6c92ee4b422a4","unresolved":true,"context_lines":[{"line_number":93,"context_line":"        through_flows\u003dthrough_flows, through_retries\u003dthrough_retries,"},{"line_number":94,"context_line":"        through_tasks\u003dthrough_tasks)"},{"line_number":95,"context_line":"    stack \u003d list(initial_nodes_iter)"},{"line_number":96,"context_line":"    visited_atoms \u003d set()"},{"line_number":97,"context_line":"    while stack:"},{"line_number":98,"context_line":"        node \u003d stack.pop()"},{"line_number":99,"context_line":"        if node in visited_atoms:"}],"source_content_type":"text/x-python","patch_set":3,"id":"f4fbde35_c347f5fe","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":17},"updated":"2026-02-03 14:49:40.000000000","message":"ditto","commit_id":"85eed73f8caa19fce6633651fc88e8f07aebd47f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"39b0755c30e99122a5961034788f0dbc965227d6","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        through_flows\u003dthrough_flows, through_retries\u003dthrough_retries,"},{"line_number":94,"context_line":"        through_tasks\u003dthrough_tasks)"},{"line_number":95,"context_line":"    stack \u003d list(initial_nodes_iter)"},{"line_number":96,"context_line":"    visited_atoms \u003d set()"},{"line_number":97,"context_line":"    while stack:"},{"line_number":98,"context_line":"        node \u003d stack.pop()"},{"line_number":99,"context_line":"        if node in visited_atoms:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3040bb93_b2b22bbf","line":96,"range":{"start_line":96,"start_character":4,"end_line":96,"end_character":17},"in_reply_to":"f4fbde35_c347f5fe","updated":"2026-02-03 14:53:56.000000000","message":"Done","commit_id":"85eed73f8caa19fce6633651fc88e8f07aebd47f"}]}
