Skip to content

feat(python): fresh agent list in advance_dag, background DAG scan; bump cnats 3.9.3→3.12.0#475

Merged
mvillmow merged 1 commit into
mainfrom
m10-python-cnats
Apr 26, 2026
Merged

feat(python): fresh agent list in advance_dag, background DAG scan; bump cnats 3.9.3→3.12.0#475
mvillmow merged 1 commit into
mainfrom
m10-python-cnats

Conversation

@mvillmow
Copy link
Copy Markdown
Collaborator

Summary

Note: Issues #196 and #98 (Python DAGWalker enhancements) may become moot once issue #432 (Python layer deletion) lands, but that issue is blocked on cross-repo work and is deferred. Implementing now as directed.

Files changed

Test plan

  • python -m pytest tests/test_dag_walker.py -v — 43 tests pass
  • All existing DAGWalker tests pass unchanged (no behaviour regression)
  • TestAdvanceDagFreshAgents — fresh-agent path, no-client path, missing-method fallback, exception fallback, None-return fallback
  • TestBackgroundScan — happy path, exception survival, immediate-stop exit, task reference stored

Closes #98
Closes #179
Closes #196

🤖 Generated with Claude Code

Comment thread tests/test_dag_walker.py
task = walker.start_background_scan(stop_event)
assert isinstance(task, asyncio.Task)
stop_event.set()
await task
Comment thread tests/test_dag_walker.py
scan_task = walker.start_background_scan(stop_event)
await asyncio.sleep(0.07) # allow ~3 intervals to fire
stop_event.set()
await scan_task
Comment thread tests/test_dag_walker.py
scan_task = walker.start_background_scan(stop_event)
await asyncio.sleep(0.07)
stop_event.set()
await scan_task
Comment thread tests/test_dag_walker.py
stop_event = asyncio.Event()
stop_event.set() # pre-set before starting
scan_task = walker.start_background_scan(stop_event)
await scan_task
Comment thread tests/test_dag_walker.py
task = walker.start_background_scan(stop_event)
assert walker._scan_task is task
stop_event.set()
await task
)
# stop_event was set — exit cleanly.
break
except asyncio.TimeoutError:
@github-actions
Copy link
Copy Markdown

✅ Dependency Audit

Severity Count
Critical 0
High 0
Medium 0
Low 0

See the Security tab for detailed findings.


Workflow: Dependency Audit

)
# stop_event was set — exit cleanly.
break
except asyncio.TimeoutError:
Comment thread tests/test_dag_walker.py
task = walker.start_background_scan(stop_event)
assert isinstance(task, asyncio.Task)
stop_event.set()
await task
Comment thread tests/test_dag_walker.py
scan_task = walker.start_background_scan(stop_event)
await asyncio.sleep(0.07) # allow ~3 intervals to fire
stop_event.set()
await scan_task
Comment thread tests/test_dag_walker.py
scan_task = walker.start_background_scan(stop_event)
await asyncio.sleep(0.07)
stop_event.set()
await scan_task
Comment thread tests/test_dag_walker.py
stop_event = asyncio.Event()
stop_event.set() # pre-set before starting
scan_task = walker.start_background_scan(stop_event)
await scan_task
Comment thread tests/test_dag_walker.py
task = walker.start_background_scan(stop_event)
assert walker._scan_task is task
stop_event.set()
await task
@github-actions
Copy link
Copy Markdown

Security Scan Results

  • ❌ Secret Scanning: Potential secrets found
  • ✅ SAST: Completed (check Security tab for details)
  • ✅ Dependency Scanning: Completed
  • ✅ C++ Static Analysis: Completed
  • ✅ Docker Image Scanning: 0 high, 22 medium vulnerabilities (acceptable)

Recommendations

  • Review findings in the GitHub Security tab
  • Check artifact uploads for detailed reports
  • Address critical Docker vulnerabilities immediately

Workflow: Security Scanning

…hore(deps): bump cnats 3.9.3→3.12.0

Closes #98
Closes #179
Closes #196

Note: Python layer (#196, #98) may be removed by #432 once that cross-repo work resolves.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mvillmow mvillmow merged commit 71961c3 into main Apr 26, 2026
7 of 9 checks passed
@mvillmow mvillmow deleted the m10-python-cnats branch April 26, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants