Skip to content

fix(kanban): treat archived parent tasks as terminal for dependency resolution#23325

Closed
Ninso112 wants to merge 3 commits into
NousResearch:mainfrom
Ninso112:fix/kanban-archived-parent-deadlock
Closed

fix(kanban): treat archived parent tasks as terminal for dependency resolution#23325
Ninso112 wants to merge 3 commits into
NousResearch:mainfrom
Ninso112:fix/kanban-archived-parent-deadlock

Conversation

@Ninso112

Copy link
Copy Markdown
Contributor

Summary

  • Fixes silent deadlock where child tasks stay stuck in todo forever when their parent task is archived
  • recompute_ready and claim_task now treat archived as a terminal status alongside done, allowing children to proceed when their parent is archived
  • Two-line change: updated the parent status check in both functions from == 'done' / != 'done' to IN ('done', 'archived') / NOT IN ('done', 'archived')

Why

When a parent task is archived, its dependent children should be allowed to proceed — the parent is no longer going to complete, so waiting for it would strand the children indefinitely. This is the simplest fix that preserves the existing dependency resolution semantics without adding interactive prompts.

Fixes #23180.

Ninso112 added 3 commits May 10, 2026 18:43
… platforms

Gateway auto-title generation is fire-and-forget housekeeping. When it
fails (e.g. auxiliary provider HTTP 401/402), the error was surfaced as
a user-visible chat message via _emit_auxiliary_failure. Failures are
already logged at WARNING level in generate_title() and visible in
gateway.log, so operators can still diagnose issues.

Fixes NousResearch#23246.
…rompt_toolkit 3.0.52+

prompt_toolkit 3.0.52+ changed run_in_terminal() to return an
Awaitable. Four call sites in cli.py invoke it fire-and-forget because
the callback is scheduled on the already-running event loop and executes
correctly. Without awaiting, Python 3.10+ emits a RuntimeWarning that
gets caught by the process_loop error handler and logged as noise.

Suppress the warning at each call site with warnings.catch_warnings()
since the callback semantics are unchanged — the function still runs
on the event loop thread.

Fixes NousResearch#23297.
…esolution

When a parent task is archived, dependent child tasks were stuck in
todo forever because recompute_ready and claim_task only checked for
status == 'done'. Now both functions also treat 'archived' as a
terminal status, allowing children to proceed when their parent is
archived.

Fixes NousResearch#23180.
@kshitijk4poor

Copy link
Copy Markdown
Collaborator

Merged via salvage PR #23791. Your commits were cherry-picked onto current main with your authorship preserved in git log. Thanks for the fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: archiving a parent task silently deadlocks dependent children in todo

3 participants