The Wire · Showcase
ANTHROPIC ATTACHMENT BUG FIXED, OPENROUTER GAINS WEB FETCH, BOOST PATCHES CONFIG TRAP
By RepoJournal · Filed · About Laravel
Laravel/ai shipped a critical fix for Anthropic file attachments that were failing on media type alone, while OpenRouter gained web fetch support and Boost plugged a config hole that breaks MCP initialization.
The Anthropic gateway was sending CSV and Markdown files with their correct MIME types to a document source that only accepts `text/plain`, causing API rejections before the model touched the content [1]. That's fixed now [2]. On the same desk, OpenRouter's `openrouter:web_fetch` server tool is now mapped and reachable, matching what Anthropic and Gemini already support [3] [4]. Over in Boost, a blank `BOOST_PHP_EXECUTABLE_PATH=` in `.env` was treated as a valid path instead of unset, causing `boost:install` to write malformed `.mcp.json` and break every artisan invocation in the generated Claude config [5] [6]. The OpenAI-compatible gateway also now strips markdown code fences from structured output, since local backends like vLLM and llama.cpp often wrap JSON without honoring the schema format spec [7]. MCP itself gained OAuth challenge exposure for authenticated routes [8] [9], and v0.9.4 shipped with searchable tool catalogs [10]. Boost documentation also corrected its retry example to include an idempotency key, preventing double-charges when Stripe connection errors occur [11] [12].
One email a day. Unsubscribe in one click.
Keep up with Laravel in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Upgrade laravel/ai to pick up the Anthropic media type and OpenRouter web fetch fixes laravel/ai [immediate]
- → If you use Boost with a blank BOOST_PHP_EXECUTABLE_PATH, reinstall now laravel/boost [immediate]
- → Review OpenAI-compatible backend integrations for structured output handling laravel/ai [plan]
References
- [1] Send text/plain for all text document sources on Anthropic ↗ laravel/ai
- [2] Send text/plain for all text document sources on Anthropic (#886) laravel/ai
- [3] Add support for the OpenRouter web fetch server tool ↗ laravel/ai
- [4] Add support for the OpenRouter web fetch server tool (#889) laravel/ai
- [5] Treat blank executable path config values as unset ↗ laravel/boost
- [6] Treat blank executable path config values as unset (#937) laravel/boost
- [7] Strip markdown code fences from OpenAI-compatible structured output ↗ laravel/ai
- [8] Expose OAuth challenges on authenticated MCP routes ↗ laravel/mcp
- [9] Expose OAuth challenges on authenticated MCP routes (#322) laravel/mcp
- [10] v0.9.4 ↗ laravel/mcp
- [11] Send an idempotency key in the retried charge example ↗ laravel/boost
- [12] Send an idempotency key in the retried charge example (#938) laravel/boost