$ the-wire · showcase
Sail pins NodeSource again, mcp forward-ports OAuth client metadata
By RepoJournal · Filed · About Laravel · Composed from the cited sources · methodology
Laravel Sail reverted its NodeSource change so old Node versions build again, and laravel/mcp forward-ported optional OAuth client logo_uri and client_uri support from 0.x to main.
laravel/sail reverted its earlier move away from the NodeSource install scripts, because NodeJS was not pinned to the NodeSource APT repository. When the distro held a newer version it was installed instead: v18 on Noble, v22 on Resolute. Ubuntu's nodejs package doesn't contain bin/npm because it lives in a separate package, so builds with a sufficiently old $NODE_VERSION failed with "bash: /usr/bin/npm: No such file or directory" [1]. The commit restores the NodeSource install scripts to keep nodejs pinned correctly [2]. Sail also now forwards COLORTERM to container commands [3].
laravel/mcp ported the OAuth client logo and URI changes from 0.x to main [4]. Registration accepts optional `logo_uri` and `client_uri` per RFC 7591, values are stored and echoed only when the `oauth_clients` table has matching columns, and the published `authorize` view renders the logo and client link when present [4]. The same change landed on 0.x as v0.9.5 via #337 [5]. Separately, the structured-content change that wrapped indexed arrays in an object was reverted [6][7][8].
laravel/ai fixed cumulative usage reporting during Anthropic streaming [9]. When using provider tools like web fetch, web search, or code execution while streaming, `HandlesTextStreaming` took initial input and cache token counts from `message_start` and only updated `output_tokens` from `message_delta`; provider tools can have several server-side iterations, so cumulative input usage increases. The fix reads the cumulative totals from `message_delta` instead [9].
laravel/roster added Nub package manager support [10]. It detects `nub.lock` as `JsPackageManager::Nub` and scans its pnpm v9 format with the existing pnpm parser, including dependency discovery and cache invalidation while preserving existing lockfile precedence [10]. laravel/vet continued Windows fixes across CI and CLI, including a CLI fix to run on Windows, a CI fix for a missing extension, and a cache fix on the logo [11][12][13].
Action items
- → Upgrade laravel/sail to pick up the NodeSource pin so Docker images build with old Node versions laravel/sail [plan]
- → Pull laravel/mcp main to get OAuth client logo_uri and client_uri forward-ported from 0.x laravel/mcp [plan]
- → Update laravel/ai if you stream Anthropic responses with provider tools and rely on cumulative usage laravel/ai [monitor]
References
- [1] [1.x] Correctly pin NodeSource APT repo ↗ laravel/sail
- [2] Use the NodeSource install scripts again to make sure `nodejs` is pinned correctly (#898) ↗ laravel/sail
- [3] Forward COLORTERM to Sail container commands (#897) ↗ laravel/sail
- [4] Port OAuth client logo and uri to 1.0 ↗ laravel/mcp
- [5] Add oauth client logo and uri (#337) (#342) ↗ laravel/mcp
- [6] Updated HasStructuredContent so structured content always gets returned correctly. ↗ laravel/mcp
- [7] Revert "Updated HasStructuredContent so structured content always gets returned correctly." ↗ laravel/mcp
- [8] Revert "Updated structured content to also return a object when a indexed arr…" (#340) ↗ laravel/mcp
- [9] Read the cumulative usage reported on Anthropic message_delta ↗ laravel/ai
- [10] [1.x] Add Nub package manager support ↗ laravel/roster
- [11] fix(cli): run on windows ↗ laravel/vet
- [12] ci: fix windows missing extension ↗ laravel/vet
- [13] fix: cache on logo ↗ laravel/vet