Skip to content

fix(dispatch): keep notebook tasks owned and coverage warnings actionable - #53

Merged
krafczyk merged 2 commits into
mainfrom
fix/notebook-dispatch-lifecycle
Oct 2, 2026
Merged

krafczyk merged 2 commits into
mainfrom
fix/notebook-dispatch-lifecycle

Conversation

@krafczyk

@krafczyk krafczyk commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Keep unresolved-only static coverage visible in dispatch.explain() without warning on successful notebook dispatch by default; add explicit warn and strict policies.
  • Reject captured live asyncio tasks and event loops before transport can traverse kernel-owned resources.
  • Cancel interrupted pending/running dispatch before cleanup and test repeated real-kernel publication and liveness.

Fixes #49 to our knowledge. If the warning or kernel-task symptom remains reproducible after merging, reopen the issue with a fresh traceback. The historically observed Store/query stall is not claimed fixed by this change.

Verification

  • The branch commit records focused verification and a passing good-enough representative suite.
  • CI includes a dedicated real-notebook dispatch regression job.

Post-Deploy Monitoring & Validation

Keep unresolved-only probe uncertainty visible in explain without warning on accepted calls; expose explicit warn and strict policies while retaining warnings for analysis limits. Reject captured live asyncio resources at core and generic transport boundaries, and cancel pending work before attempting running cancellation on an interrupted blocking dispatch.

Add repeated real-kernel publication, query, task-ownership, and interrupt-liveness regression coverage with a dedicated notebook CI job. Verified with focused suites and the good-enough representative suite. The historical indefinite Store/query stall remains unassigned without its interrupt traceback.
Wait for a worker-start marker so the real-kernel check does not signal before the dispatched call begins. Accept ipykernel's delivered KeyboardInterrupt or normal completion when it signals its loop thread, and require matching publication counts and surviving kernel tasks in either case.\n\nVerification: focused real-kernel notebook test and targeted lint passed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Suppress spurious ipykernel task and coverage warnings during notebook dispatch

1 participant