Skip to content

fast-agent 0.10.41: fix inline PDFs on Copilot Responses and Claude - #993

Merged
evalstate merged 1 commit into
mainfrom
fix/copilot-inline-documents-01041
Sep 29, 2026
Merged

evalstate merged 1 commit into
mainfrom
fix/copilot-inline-documents-01041

Conversation

@evalstate

Copy link
Copy Markdown
Owner

Summary

Prepare fast-agent 0.10.41, fixing locally rejected inline PDF attachments on Copilot Responses and Anthropic/Claude Messages.

  • Separate inline documents from unsupported provider Files APIs. Keep hosted file IDs and document URL references rejected, including nested tool results.
  • Normalize Responses bare base64 file bytes to MIME data URLs without changing history or routing images through the OpenAI Files API.
  • Allow Claude inline PDF/text/content sources without enabling Anthropic document uploads.
  • Cover user attachments, attach_media tool results, idempotence, shorthand message content, unchanged history, and preserved hosted-file restrictions.
  • Bump main version/lock and synchronize both ACP wrappers to 0.10.41. Document supported behavior.

Evidence and tests

  • Before the policy fix, all eight new positive document/parent-loop regressions failed.
  • Direct gateway synthetic PDF requests succeeded for GPT-6 Luna and Claude Sonnet 5.5: each read a code present only inside the PDF.
  • Adapter-level testing then found that Responses additionally requires MIME-prefixed data, rather than the bare base64 generated by our content converter. Fixed and regression-tested.
  • Final live readback passed through Responses SSE, Responses WebSocket, and Claude Messages SSE. Repeated successfully with the built wheel installed in an isolated environment. Original history unchanged.
  • uv run pytest tests/unit -n 4 -q --tb=short: 9,107 passed, 1 skipped (Python 3.13).
  • uv run scripts/format.py --check, scripts/lint.py, scripts/typecheck.py, scripts/cpd.py --check, and scripts/check_internal_resources.py: passed.
  • Built wheels and sdists for fast-agent-mcp, fast-agent-acp and hf-inference-acp. Artifact metadata/path checks and added-line credential-pattern scan passed.

Anthropic live coverage here means Claude through Copilot Messages, not a direct Anthropic account. Existing native Anthropic unit tests pass as part of the full suite.

Release notes

0.10.41 restores inline PDF support on Copilot GPT and Claude routes, including tool-produced PDFs, while preserving Files API restrictions. Responses works over SSE and WebSocket; original attachment/history data remains unchanged.

Release artifacts and notes prepared locally. No tag pushed or release/PyPI publication performed. No benchmark runs were restarted or replaced, and no credentials or benchmark logs are included.

Contributor question

You're given a calfskin wallet for your birthday. How would you feel about using it?

I would prefer a non-animal alternative.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying fast-agent with  Cloudflare Pages  Cloudflare Pages

Latest commit: c1dbc39
Status: ✅  Deploy successful!
Preview URL: https://27176cc4.fast-agent.pages.dev
Branch Preview URL: https://fix-copilot-inline-documents.fast-agent.pages.dev

View logs

@evalstate

Copy link
Copy Markdown
Owner Author

All PR CI checks are now green, including unit tests, all three integration groups, package checks, static checks and CodeQL. The isolated 0.10.41 wheel also passed live PDF readback through Copilot Responses SSE/WebSocket and Claude Messages SSE. Release artifacts are prepared locally; no merge, version tag or publication performed.

@evalstate
evalstate merged commit 61b1a32 into main Sep 29, 2026
14 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