Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 152a7d0e19
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| f'echo "Paper2Any input: {input_type} ($INPUT_PATH)"', | ||
| ] | ||
| if input_kind == "markdown": | ||
| lines.append('PAPER2ANY_INPUT="$(cat "$INPUT_PATH")"') |
There was a problem hiding this comment.
Avoid inlining markdown into a single CLI argument
When input_kind == "markdown", the generated runner reads the entire paper.md into PAPER2ANY_INPUT and passes it as one --input argument. For large markdown files this exceeds the OS ARG_MAX limit and the script fails before Paper2Any starts (e.g., Argument list too long), so valid large papers cannot be processed. Please switch the markdown path to a file-based handoff (or another streaming mechanism) instead of embedding full content in argv.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in bb07f70. Markdown handoff no longer reads paper.md into a shell variable or passes it through exec argv; the generated runner now reads the file inside a Python wrapper and runs the upstream Paper2Any module in-process, while preserving passthrough args such as --api-key. Added a regression smoke with a fake Paper2Any checkout.
|
这个 Paper2Any issue 已经在新的干净实现里重新处理:#92。 #92 不再沿用这个 PR 的 handoff-bundle 方案,而是改成轻量 MCP sidecar + 外部 OpenDCAI/Paper2Any runtime extension:
因此这个旧 PR 先关闭,后续请看 #92。 |
Summary
scholaraio paper2any setup,status,capabilities,serve, andpreparedata/runtime/extensions/paper2any/Paper2Any, with local overrides inconfig.local.yamlpreparegenerate runnable bundles underworkspace/_system/paper2any/, stage outputs inside the Paper2Any checkout when upstream requires it, then copy real artifacts back to the bundlefigure,ppt,ppt-classic,pdf2ppt,image2ppt,ppt2polish,poster, andvideopaper2any capabilitiesandpaper2any serve, including DrawIO, rebuttal, citation, image playground, mindmap, file, and KB routesReal Paper2Any Smoke
paper2any statuspasses against the real OpenDCAI/Paper2Any checkout atdata/runtime/extensions/paper2any/Paper2Anypaper2any capabilitieslists bothpreparetasks and API-only workflowspaper2any serve --port 9998starts the real upstream FastAPI backend;/healthreturns{"status":"ok"}figure: ran the real upstream figure CLI on a ScholarAIO paper and produced PNG/SVG route-diagram artifactsppt: ran the real upstream frontend editable PPT CLI and producedfrontend_slides.json,frontend_theme.json,frontend_summary.json, andpaper2ppt_frontend_editable.pptxpdf2ppt: ran the real upstream PDF-to-PPT path with OCR and produced a 30-slide editable PPTX with source-page images plus OCR text boxesimage2ppt: ran the real upstream image-to-PPT CLI from a--source-filebundle and producedpdf2ppt_qwenvl_output.pptx; inspected it withscholaraio document inspectand viewed the embedded slide imageppt-classicandposter: runnable bundles are generated; direct DeepSeek smoke exposed upstream model-name/image-model assumptions, so these paths require an upstream-supported model configuration for full artifact generationVerification
python -m ruff check scholaraio testspython -m ruff format --check scholaraio testsmypy scholaraio/python -m pytest -q -p no:cacheprovider-> 1343 passed, 3 skippedpython -m mkdocs build --strictgit diff --checkPAPER2ANY_ROOT=/home/lzmo/repos/personal/scholaraio/data/runtime/extensions/paper2any/Paper2Any python -m scholaraio.cli paper2any statusSCHOLARAIO_CONFIG=/home/lzmo/repos/personal/scholaraio/config.yaml PAPER2ANY_ROOT=/home/lzmo/repos/personal/scholaraio/data/runtime/extensions/paper2any/Paper2Any python -m scholaraio.cli setup checkcurl -fsS http://127.0.0.1:9998/healthduringpaper2any servesmokeCloses #64