Skip to content

Rad/paperflow#109

Merged
RadeenXALNW merged 10 commits into
mainfrom
rad/paperflow
Dec 15, 2025
Merged

Rad/paperflow#109
RadeenXALNW merged 10 commits into
mainfrom
rad/paperflow

Conversation

@RadeenXALNW
Copy link
Copy Markdown
Collaborator

@RadeenXALNW RadeenXALNW commented Dec 15, 2025

connecting with runagent pulse and test an example of paperflow

Summary by CodeRabbit

  • New Features

    • RunAgent Pulse integration for orchestrating and scheduling deployments.
    • PaperFlow example: An ArXiv paper monitoring agent with AI-based relevance filtering, persistent caching, and email notifications.
  • Improvements

    • Enhanced port management for improved address allocation.
  • Chores

    • Added test scripts and configuration files for new example deployments.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Dec 15, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR introduces a comprehensive PaperFlow example—an ArXiv paper monitoring agent with OpenAI-based relevance filtering, persistent caching, and email notifications. It also updates the PortManager utility to use an absolute end port (65535) instead of a relative offset, modifies a template config agent ID, and adds client test scripts demonstrating synchronous, asynchronous, and streaming usage patterns.

Changes

Cohort / File(s) Summary
PaperFlow example agent
examples/paper-flow-aritra/agent.py
New ArxivAgent class with ArXiv querying, async OpenAI filtering, result caching, and email notifications. Exposes four entrypoints: check_papers (sync), check_papers_async (async), check_papers_stream (streaming), and check_papers_custom_topics (custom topics).
PaperFlow tests and config
examples/paper-flow-aritra/test_agent.py, examples/paper-flow-aritra/runagent.config.json, examples/paper-flow-aritra/requirements.txt, examples/paper-flow-aritra/README.md
Test harness with basic, SDK simulation, email config, OpenAI, and cache validation tests; agent configuration with SMTP and OpenAI environment variables; dependency manifest (feedparser, requests, openai); and documentation of features and deployment workflow.
Port utility update
runagent/utils/port.py
Changed PortManager from using relative MAX_PORT_ATTEMPTS offset to absolute DEFAULT_END_PORT constant (65535); adjusts port range logic and error messages in find_available_port and allocate_unique_address.
Root documentation
README.md
Adds centered News block announcing RunAgent Pulse publication and integrations; introduces "What is RunAgent-Pulse?" section with GitHub reference and usage guidance.
Template configuration update
templates/agno/default/runagent.config.json
Updates agent_id from ae29bd73-b3d3-99c8-a98f-5d7aec7ee919 to ae29bd73-b3d3-99c8-a98f-5d7aec7ee911.
Client test scripts
test_scripts/python/client_test_agno.py, test_scripts/python/client_test_paperflow.py, test_scripts/python/client_test_paperflow_stream.py
Updates agno test to use new agent_id and port parameter; adds PaperFlow usage examples in sync and async modes; introduces streaming test with result/progress/error handling.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45–75 minutes

Areas requiring extra attention:

  • agent.py: Async concurrency control with parallel LLM filtering, SMTP error handling, cache persistence logic, and environment configuration validation.
  • Port utility changes: Ensure backward compatibility; verify port range iteration logic and error messaging in both sync and async allocation paths.
  • Configuration integration: Validate SMTP/OpenAI environment variable handling and defaults across test entrypoints.
  • Client test scripts: Confirm streaming/async entrypoint invocation patterns and error fallback behavior.

Possibly related PRs

Suggested reviewers

  • sawradip

Poem

🐰 A PaperFlow hops through ArXiv's rows,
AI whispers which papers to know,
Cache persists and emails flow,
Async threads make the agent glow—
Scheduling pulses, results in tow! 📬✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rad/paperflow

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 83e17fa and d0d0bfc.

📒 Files selected for processing (11)
  • README.md (1 hunks)
  • examples/paper-flow-aritra/README.md (1 hunks)
  • examples/paper-flow-aritra/agent.py (1 hunks)
  • examples/paper-flow-aritra/requirements.txt (1 hunks)
  • examples/paper-flow-aritra/runagent.config.json (1 hunks)
  • examples/paper-flow-aritra/test_agent.py (1 hunks)
  • runagent/utils/port.py (4 hunks)
  • templates/agno/default/runagent.config.json (1 hunks)
  • test_scripts/python/client_test_agno.py (1 hunks)
  • test_scripts/python/client_test_paperflow.py (1 hunks)
  • test_scripts/python/client_test_paperflow_stream.py (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@RadeenXALNW RadeenXALNW merged commit 5e16e03 into main Dec 15, 2025
1 of 2 checks 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.

1 participant