Skip to content

feat(agents): give the Claude Code, Codex and Gemini images' Python the document libraries (FD-5825) - #676

Open
rc9575 wants to merge 2 commits into
mainfrom
ryanchoi/fd-5825-runner-doc-libs
Open

rc9575 wants to merge 2 commits into
mainfrom
ryanchoi/fd-5825-runner-doc-libs

Conversation

@rc9575

@rc9575 rc9575 commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Tasks often give the agent .xlsx, .pdf, .docx and .pptx files, but the model's scripts in the Claude Code, Codex and Gemini runners hit ModuleNotFoundError on openpyxl and pypdf, so runs fail for reasons unrelated to the model. Each image now installs openpyxl==3.1.5, pypdf==6.21.3, python-docx==1.2.0 and python-pptx==1.0.2 from a model-requirements.txt. These are the same pins as Harbor bundles (scaleapi/scaleapi#174778) and the Antigravity agent (scaleapi/synthetic-pipelines#1954). Claude Code already had that file (boto3 only). Codex and Gemini get one, and their Dockerfiles install it beside requirements.txt. Install mode (install.sh) is unchanged; that is FD-5825 Part 2, which needs a design OK first.

Validation: the agent unit suite passes (953 passed, 45 skipped) and the new contract checks fail without the change. All three images build for linux/amd64, and as user agent each imports the four libraries at the pinned versions with a clean pip check.

Rollout: runs get this only after a release and a re-put of claude-code-cli, codex-cli and gemini-cli from the new PyPI wheel. The prod re-put needs Mateusz's yes, between batches.

🤖 Generated with Claude Code

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge.

Summary

Adds pinned document libraries to the Claude Code, Codex, and Gemini images.

  • Model scripts can read task documents in all three agent images.

Reviews (1) · Last reviewed commit: "docs(agents): say what the model's docum..." · Reviewed by Greptile

…he document libraries (FD-5825)

CPX4 tasks hand the agent .xlsx, .pdf, .docx and .pptx files, and the model's
scripts hit ModuleNotFoundError on openpyxl and pypdf. Each image now installs
openpyxl 3.1.5, pypdf 6.21.3, python-docx 1.2.0 and python-pptx 1.0.2 from a
model-requirements.txt, the same pins as Harbor bundles (scaleapi#174778) and
the Antigravity agent (synthetic-pipelines#1954). Install mode is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@socket-security

socket-security Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedpypi/​pypdf@​6.21.38970100100100
Addedpypi/​python-pptx@​1.0.299100100100100
Addedpypi/​python-docx@​1.2.099100100100100
Addedpypi/​openpyxl@​3.1.5100100100100100

View full report

@socket-security

socket-security Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Priority Alert  (click "▶" to expand/collapse) Action
High priority
High CVE: pypi pypdf has possible infinite loop when hitting EOF in standard xref table during trailer search

CVE: GHSA-5849-834g-hvw5 pypdf has possible infinite loop when hitting EOF in standard xref table during trailer search (HIGH)

Affected versions: < 6.21.4

Patched version: 6.21.4

From: src/agent_env/agents/agents/claude-code/model-requirements.txt → pypi/pypdf@6.21.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore pypi/pypdf@6.21.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn
High priority
High CVE: pypi pypdf has possible large memory usage when parsing page tree

CVE: GHSA-cggf-277g-3q54 pypdf has possible large memory usage when parsing page tree (HIGH)

Affected versions: < 6.21.4

Patched version: 6.21.4

From: src/agent_env/agents/agents/claude-code/model-requirements.txt → pypi/pypdf@6.21.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore pypi/pypdf@6.21.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn
High priority
High CVE: pypi pypdf has possible infinite loop when cloning dictionaries

CVE: GHSA-mfr5-77xh-9j7h pypdf has possible infinite loop when cloning dictionaries (HIGH)

Affected versions: < 6.21.4

Patched version: 6.21.4

From: src/agent_env/agents/agents/claude-code/model-requirements.txt → pypi/pypdf@6.21.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore pypi/pypdf@6.21.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn

View full report

@rc9575
rc9575 marked this pull request as ready for review November 13, 2026 23:37
@rc9575
rc9575 requested a review from a team as a code owner November 13, 2026 23:37
…t they cost

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

This branch has not been deployed

No deployments
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.

2 participants