Skip to content

merge: dev → master (README restructure + security hardening)#233

Merged
jerry609 merged 14 commits into
masterfrom
merge/dev-to-master-readme
Mar 4, 2026
Merged

merge: dev → master (README restructure + security hardening)#233
jerry609 merged 14 commits into
masterfrom
merge/dev-to-master-readme

Conversation

@jerry609

@jerry609 jerry609 commented Mar 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • README 重构:从 505 行精简至 278 行,居中 hero + badges + 分类 Feature + 可折叠截图,参考 vLLM/Docling/PaperQA2 风格
  • 安全加固:CodeQL 路径注入修复(studio chat project_dir + runbook allowed-dir)
  • 代码审查修复:解决 AI review 发现的安全性和可靠性问题

Changes

File Change
README.md 全面重构(505 → 278 行),专业化呈现
Security fixes studio chat / runbook 路径验证加固

Test plan

  • README renders correctly on GitHub
  • No functional code changes, docs + security only

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Completely restructured README with modern, streamlined organization for improved readability
    • Reorganized content into dedicated sections: About, Features, Getting Started, Architecture, and more
    • Enhanced product feature descriptions and consolidated CLI usage instructions
    • Updated configuration examples and deployment guidance

jerry609 and others added 14 commits March 3, 2026 18:03
* feat(push): implement Epic #179 — daily push optimization

Multi-channel push infrastructure with structured digest cards:

- #187: Integrate HF upvotes into Judge scoring prompt
- #180: Add digest_card extraction (highlight/method/finding/tags)
  with new LLM prompt, email template rendering, markdown output
- #181: MinerU Cloud API client for PDF figure extraction
- #182: Apprise multi-channel push layer with YAML config
- #183-185: Channel formatters (Telegram MarkdownV2, Discord Rich
  Embed, WeCom markdown+news, Feishu/Lark interactive card)
- #186: RSS 2.0 + Atom feed endpoints (/api/feed/daily.xml, .atom)

Also creates follow-up issues #190 (Push Channel Settings UI)
and #191 (Dashboard Digest Card Enhancement).

56 new tests, all passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: integrate MinerU figure extraction into CLI and ARQ worker daily-paper workflow

Refs #179

* fix(daily-push): enable MinerU flags in ARQ cron payload (refs #181)

* feat(push): wire channel formatters into apprise digest delivery (refs #182 #183 #184 #185)

* feat(feed): add keyword RSS, feed cache, and figure enclosure support (refs #186)

* feat(mineru): add extraction result cache for daily push figure pipeline (refs #181)

* feat(push): add telegram bot command subscription endpoint (refs #191)

* fix(push): add retry/backoff for channel delivery failures (refs #191)

* feat(hf): add trending modes, cache, and arxiv identity dedupe (refs #193)

* feat(push): add idempotency and error-code mapping for channel delivery (refs #191)

* test(push): add mock channel e2e and failure-injection coverage (refs #191)

* docs(push): add audit script and ops runbook for acceptance closure (refs #192)

* docs: update README for AgentSwarm execution transition

* docs: archive stale docs and rename AgentSwarm todo

* docs: add AgentSwarm design proposal + web Playwright e2e setup

- Add docs/proposals/agentswarm-design.md covering multi-agent
  orchestration architecture, adapter pattern, session management,
  skills ecosystem, and OpenCode/OpenClaw/oMo integration (refs #197, #214)
- Add Playwright e2e test scaffolding for web dashboard (smoke,
  papers, research specs)
- Update web/.gitignore for Playwright artifacts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…LI chat errors (#223)

* fix(studio): fix context pack generation, duplicate import UX, and CLI chat errors

- 支持内联标题/摘要,以绕过 PaperInputRouter 获取 studio 论文 ID

- 使上下文包生成 SSE 流期间的数据库持久化操作不再致命

- 从库中导入重复论文时显示错误消息

- 将左侧文件面板宽度缩小至约 18%(默认宽度);移除默认模板文件

- 为 Claude CLI 添加 --verbose 标志,以兼容 stream-json 输出

Related to #222

* fix(studio): fix context pack generation, duplicate import UX, and CLI chat errors
- 修改Gemini AI review代码问题

* fix(studio): fix context pack generation, duplicate import UX, and CLI chat errors
- 修改Gemini AI review代码问题

---------

Co-authored-by: Jerry Zhang <1772030600@qq.com>
* fix(mineru): support v4 async task extraction flow

* refactor(mineru): standardize on v4 task API for daily push (#179)
- Add centered hero header with badges (CI, Roadmap, License, Python, Next.js)
- Replace verbose 18-row feature table with categorized bullet lists
- Move Roadmap Phase 1-6 content to pinned issue #232
- Move module maturity matrix to Roadmap #232
- Consolidate screenshots into collapsible sections
- Remove inline API endpoint table (40+ rows) and directory tree
- Add Contributing section with Roadmap link
- Streamline Getting Started with collapsible config details
- Add repo topics for GitHub discoverability

References: vLLM, Docling, PaperQA2, R2R README patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- docs(readme): restructure README for professional presentation
- fix(codeql): harden studio chat project_dir normalization
- fix(review): resolve security and reliability findings
- fix(security): harden runbook allowed-dir path validation
Copilot AI review requested due to automatic review settings March 4, 2026 10:53
@vercel

vercel Bot commented Mar 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
paper-bot Ready Ready Preview, Comment Mar 4, 2026 10:54am

@coderabbitai

coderabbitai Bot commented Mar 4, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

Rewrote README.md from Chinese-centric, ASCII diagram-heavy format to English-centric, web-friendly structure. Reorganized content into standard sections (About, Getting Started, Features, Knowledge Management, etc.), updated product descriptions, and replaced bulky diagrams with simplified narratives and structured lists.

Changes

Cohort / File(s) Summary
Documentation Restructuring
README.md
Complete README rewrite replacing ASCII architecture diagrams and Chinese-centric content with modern English structure. Reorganized into standard sections: About, Getting Started, Features, Knowledge Management, Reproduction & Studio, CLI Usage, Architecture, Module Status, Roadmap, Documentation, Contributing, and Acknowledgements. Updated product descriptions and deployment guidance.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

📖 ✨ A README reborn, from East to West so wide,
ASCII art retired, with web-friendly pride,
English prose blooming where diagrams once stood,
Simplified sections making all things good! 🐰

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title mentions 'README restructure' which aligns with the main change (README rewrite), but also claims 'security hardening' which is not evident in the provided file summary showing only README.md changes. Clarify whether security hardening changes are included in this PR. If present, verify they appear in the raw_summary; if not, revise title to focus solely on README restructure.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch merge/dev-to-master-readme

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.

@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request streamlines the project's public-facing documentation and enhances its security posture. The README.md has undergone a comprehensive overhaul to improve readability and professional presentation, making it more concise and visually appealing. Concurrently, critical security vulnerabilities, including path injection issues, have been patched based on findings from CodeQL and an AI-assisted code review, bolstering the application's robustness.

Highlights

  • README Restructuring: The README.md was significantly refactored, reducing its length from 505 to 278 lines. This included centralizing the hero section, adding badges, categorizing features, and implementing collapsible screenshots, drawing inspiration from projects like vLLM.
  • Security Hardening: Path injection vulnerabilities identified by CodeQL were addressed, specifically in the studio chat's project_dir handling and runbook's allowed directories.
  • AI Review Feedback: Security and reliability issues discovered during an AI-driven code review were resolved.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • README.md
    • Comprehensively refactored for professional presentation and conciseness.
  • Security fixes
    • Path validation was strengthened in the studio chat and runbook components to mitigate injection risks.
Activity
  • An AI-driven code review was conducted, leading to the identification and resolution of security and reliability issues.
  • The pull request represents a merge from the dev branch to master, indicating a release-ready state for documentation and security updates.
  • The test plan confirmed that the README.md renders correctly and that no functional code changes were introduced beyond documentation and security enhancements.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@jerry609
jerry609 merged commit cd05a6c into master Mar 4, 2026
11 of 12 checks passed

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

本次 PR 主要重构了 README.md 文件,将其从中文转换为英文,并显著改善了其结构和可读性。新的 README 文件更加专业和用户友好。此外,PR 描述中还提到了安全加固和其他修复,这些都是积极的改进。

我的主要反馈是关于新 README 中 CLI 命令示例的一个小不一致之处,具体请见我的评论。

Note: Security Review has been skipped due to the limited scope of the PR.

Comment thread README.md
Comment on lines +160 to +167
# Scholar tracking
python main.py track --summary

# Paper2Code
python main.py gen-code --title "..." --abstract "..." --output-dir ./output

# 主题检索
python -m paperbot.presentation.cli.main topic-search \
-q "ICL压缩" -q "KV Cache加速" \
--source papers_cool --source arxiv_api --source hf_daily --branch arxiv --branch venue

# DailyPaper(含 LLM + Judge + 推送)
python -m paperbot.presentation.cli.main daily-paper \
-q "ICL压缩" -q "KV Cache加速" \
--with-llm --llm-feature summary --llm-feature trends --llm-feature insight \
--with-judge --judge-runs 2 --judge-max-items 5 \
--save --notify --notify-channel email
```

## 目录结构

```text
PaperBot/
├── src/paperbot/
│ ├── agents/ # Agents(研究/代码/评审/验证/追踪)
│ ├── api/ # FastAPI 后端(SSE 流式)
│ │ ├── routes/ # 业务路由(track/analyze/paperscool/model_endpoints/...)
│ │ └── streaming.py # SSE 流式 envelope
│ ├── application/
│ │ ├── ports/ # 端口接口(PaperSearchPort/EnrichmentPort/FeedbackPort/...)
│ │ ├── services/ # 应用服务(LLM/PaperSearch/Enrichment/Identity/Provider)
│ │ └── workflows/
│ │ ├── unified_topic_search.py # 统一主题检索(多源聚合 + min_score)
│ │ ├── dailypaper.py # 日报生成、LLM 增强、Judge 评分
│ │ └── analysis/ # Judge / Trend / Summarizer / Relevance
│ ├── core/ # 核心抽象(pipeline/errors/DI)
│ ├── domain/ # 领域模型(Paper/Scholar/Track/Feedback/Enrichment/Identity)
│ ├── infrastructure/
│ │ ├── adapters/ # 搜索适配器(arXiv/S2/OpenAlex/papers.cool/HF Daily)
│ │ ├── connectors/ # 数据源连接器(arXiv/OpenAlex/HF/Reddit/X/Zotero/papers.cool)
│ │ ├── harvesters/ # 批量收割器(arXiv/OpenAlex/S2)
│ │ ├── crawling/ # HTTP 下载器、请求层、解析器
│ │ ├── llm/ # ModelRouter(多提供商路由)
│ │ ├── stores/ # SQLAlchemy 存储(Paper/Research/ModelEndpoint/LLMUsage/Keychain/...)
│ │ └── queue/ # ARQ Worker(定时任务 + DailyPaper Cron)
│ ├── memory/ # 记忆中间件(导入/抽取/检索)
│ ├── context_engine/ # Context Engine(Track Router / 推荐)
│ ├── presentation/ # CLI 入口与 Markdown 报告渲染
│ ├── utils/ # 工具(secret 加密、文本处理)
│ └── repro/ # Paper2Code(Blueprint/CodeMemory/RAG/Debugger)
├── web/ # Next.js Web Dashboard
├── cli/ # Ink/React Terminal UI
├── alembic/ # DB 迁移脚本
├── docs/ # 项目文档
├── config/ # 配置(models/venues/subscriptions)
├── tests/ # 测试
├── asset/ # 截图 + 架构图(drawio / excalidraw)
├── pyproject.toml # Python 项目配置
└── env.example # 环境变量模板
# Deep review
python main.py review --title "..." --abstract "..."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

为了保持 CLI 命令的一致性,建议将 python main.py ... 的调用方式统一为 python -m paperbot.presentation.cli.main ...。这与文件中前面的 daily-papertopic-search 命令的调用方式一致,可以为用户提供更统一的体验。

这可能需要将旧的 main.py 中的命令逻辑迁移到 src/paperbot/presentation/cli/main.py 中,并将其作为唯一的 CLI 入口点。

Suggested change
# Scholar tracking
python main.py track --summary
# Paper2Code
python main.py gen-code --title "..." --abstract "..." --output-dir ./output
# 主题检索
python -m paperbot.presentation.cli.main topic-search \
-q "ICL压缩" -q "KV Cache加速" \
--source papers_cool --source arxiv_api --source hf_daily --branch arxiv --branch venue
# DailyPaper(含 LLM + Judge + 推送)
python -m paperbot.presentation.cli.main daily-paper \
-q "ICL压缩" -q "KV Cache加速" \
--with-llm --llm-feature summary --llm-feature trends --llm-feature insight \
--with-judge --judge-runs 2 --judge-max-items 5 \
--save --notify --notify-channel email
```
## 目录结构
```text
PaperBot/
├── src/paperbot/
│ ├── agents/ # Agents(研究/代码/评审/验证/追踪)
│ ├── api/ # FastAPI 后端(SSE 流式)
│ │ ├── routes/ # 业务路由(track/analyze/paperscool/model_endpoints/...)
│ │ └── streaming.py # SSE 流式 envelope
│ ├── application/
│ │ ├── ports/ # 端口接口(PaperSearchPort/EnrichmentPort/FeedbackPort/...)
│ │ ├── services/ # 应用服务(LLM/PaperSearch/Enrichment/Identity/Provider)
│ │ └── workflows/
│ │ ├── unified_topic_search.py # 统一主题检索(多源聚合 + min_score)
│ │ ├── dailypaper.py # 日报生成、LLM 增强、Judge 评分
│ │ └── analysis/ # Judge / Trend / Summarizer / Relevance
│ ├── core/ # 核心抽象(pipeline/errors/DI)
│ ├── domain/ # 领域模型(Paper/Scholar/Track/Feedback/Enrichment/Identity)
│ ├── infrastructure/
│ │ ├── adapters/ # 搜索适配器(arXiv/S2/OpenAlex/papers.cool/HF Daily)
│ │ ├── connectors/ # 数据源连接器(arXiv/OpenAlex/HF/Reddit/X/Zotero/papers.cool)
│ │ ├── harvesters/ # 批量收割器(arXiv/OpenAlex/S2)
│ │ ├── crawling/ # HTTP 下载器、请求层、解析器
│ │ ├── llm/ # ModelRouter(多提供商路由)
│ │ ├── stores/ # SQLAlchemy 存储(Paper/Research/ModelEndpoint/LLMUsage/Keychain/...)
│ │ └── queue/ # ARQ Worker(定时任务 + DailyPaper Cron)
│ ├── memory/ # 记忆中间件(导入/抽取/检索)
│ ├── context_engine/ # Context Engine(Track Router / 推荐)
│ ├── presentation/ # CLI 入口与 Markdown 报告渲染
│ ├── utils/ # 工具(secret 加密、文本处理)
│ └── repro/ # Paper2Code(Blueprint/CodeMemory/RAG/Debugger)
├── web/ # Next.js Web Dashboard
├── cli/ # Ink/React Terminal UI
├── alembic/ # DB 迁移脚本
├── docs/ # 项目文档
├── config/ # 配置(models/venues/subscriptions)
├── tests/ # 测试
├── asset/ # 截图 + 架构图(drawio / excalidraw)
├── pyproject.toml # Python 项目配置
└── env.example # 环境变量模板
# Deep review
python main.py review --title "..." --abstract "..."
# Scholar tracking
python -m paperbot.presentation.cli.main track --summary
# Paper2Code
python -m paperbot.presentation.cli.main gen-code --title "..." --abstract "..." --output-dir ./output
# Deep review
python -m paperbot.presentation.cli.main review --title "..." --abstract "..."

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s top-level documentation to present PaperBot more clearly (hero + badges + structured feature list + collapsible screenshots) and streamlines the onboarding/contributing sections.

Changes:

  • Major README restructure (shorter, more scannable layout with sections for Features, Getting Started, Architecture, Roadmap).
  • Updated CLI examples and configuration snippets (LLM routing + push notifications).
  • Added/updated contribution guidance and documentation links.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread README.md
Comment on lines +118 to 128
**Environment variables:**
```bash
# 总开关
PAPERBOT_NOTIFY_ENABLED=true # 是否启用推送(必须为 true 才能发送)
PAPERBOT_NOTIFY_CHANNELS=email,slack # 启用的推送渠道(逗号分隔)

# Email (SMTP) — 必须配置才能发送邮件
PAPERBOT_NOTIFY_SMTP_HOST=smtp.qq.com # SMTP 服务器地址
PAPERBOT_NOTIFY_SMTP_PORT=587 # SMTP 端口(587=STARTTLS, 465=SSL)
PAPERBOT_NOTIFY_SMTP_USERNAME=your@qq.com # SMTP 登录用户名
PAPERBOT_NOTIFY_SMTP_PASSWORD=your-auth-code # SMTP 密码或授权码
PAPERBOT_NOTIFY_SMTP_USE_TLS=true # 是否使用 STARTTLS(端口 587 时为 true)
PAPERBOT_NOTIFY_SMTP_USE_SSL=false # 是否使用 SSL(端口 465 时为 true)
PAPERBOT_NOTIFY_EMAIL_FROM=your@qq.com # 发件人地址
PAPERBOT_NOTIFY_EMAIL_TO=recipient@example.com # 默认收件人(可被 UI 覆盖)

# Slack
PAPERBOT_NOTIFY_SLACK_WEBHOOK_URL=https://hooks.slack.com/...

# 钉钉(支持签名验证)
PAPERBOT_NOTIFY_DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=...
PAPERBOT_NOTIFY_DINGTALK_SECRET=SEC...

# DailyPaper 定时任务(ARQ Worker)
PAPERBOT_DAILYPAPER_ENABLED=true
PAPERBOT_DAILYPAPER_CRON_HOUR=8
PAPERBOT_DAILYPAPER_CRON_MINUTE=30
PAPERBOT_DAILYPAPER_NOTIFY_ENABLED=true
PAPERBOT_DAILYPAPER_NOTIFY_CHANNELS=email,slack
PAPERBOT_NOTIFY_ENABLED=true
PAPERBOT_NOTIFY_CHANNELS=email,slack
PAPERBOT_NOTIFY_SMTP_HOST=smtp.qq.com
PAPERBOT_NOTIFY_SMTP_PORT=587
PAPERBOT_NOTIFY_SMTP_USERNAME=your@qq.com
PAPERBOT_NOTIFY_SMTP_PASSWORD=your-auth-code
PAPERBOT_NOTIFY_EMAIL_FROM=your@qq.com
PAPERBOT_NOTIFY_EMAIL_TO=recipient@example.com
```

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The push notification env var snippet omits several supported settings that DailyPushService.from_env() reads (e.g., PAPERBOT_NOTIFY_SMTP_USE_TLS, PAPERBOT_NOTIFY_SMTP_USE_SSL, PAPERBOT_NOTIFY_SLACK_WEBHOOK_URL, PAPERBOT_NOTIFY_DINGTALK_*). Since the README suggests configuring push via env vars, this example is likely incomplete/misleading. Consider adding the missing variables (or explicitly stating they’re optional and what defaults are used).

Copilot uses AI. Check for mistakes.
Comment thread README.md
Comment on lines 250 to 256
```bash
# Run tests
pytest -q

# Format
python -m black . && python -m isort .
```

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The contributing section shows running pytest, black, and isort, but the earlier install instructions don’t mention installing dev tools (e.g., pip install -e ".[dev]"). As written, contributors following the README may not have these commands available. Please add a short note on installing dev dependencies before running tests/formatters.

Copilot uses AI. Check for mistakes.
Comment thread README.md

```bash
python -m venv .venv && source .venv/bin/activate
pip install -e .

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The install instructions use pip install -e ., but the package metadata in pyproject.toml does not include core runtime deps like fastapi/uvicorn (they’re only in requirements.txt). Following these steps will fail at python -m uvicorn ... due to missing dependencies. Please either (a) change the README to install from requirements.txt (or pip install -r requirements.txt after the editable install), or (b) add the missing runtime dependencies to pyproject.toml so pip install -e . is sufficient.

Suggested change
pip install -e .
pip install -e .
pip install -r requirements.txt

Copilot uses AI. Check for mistakes.
Comment thread README.md
Comment on lines +13 to +14
<img src="https://img.shields.io/badge/python-3.10%2B-blue" alt="Python 3.10+">
<img src="https://img.shields.io/badge/Next.js-16-black" alt="Next.js 16">

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README badge advertises Python 3.10+, but pyproject.toml currently declares requires-python = ">=3.8". Please align the README with the actual supported Python version (either update the badge/text or update the project’s declared minimum version) to avoid confusing users.

Copilot uses AI. Check for mistakes.
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.

3 participants