A small maintance release before a huge one.
v4.17.1 is v4.17.0 made compatible with Psalm 7.0.0-rc10, which it now requires. No new features. Upgrade Psalm and the plugin together:
composer update psalm/plugin-laravel:^4.17.1 -W --devExpect more taint findings after the upgrade, whichever plugin version you run. Psalm rc10 follows taint through more steps, so sources the plugin already declared (decrypt(), Session::pull(), HTTP client responses) now reach sinks that beta23 never connected.
Fixes
- Require
vimeo/psalm ^7.0.0-rc10andpsalm/psalm-plugin-api ^0.4.1 - Fix two
InvalidDocblockissues that Psalm rc reports from the plugin's ownIndexDefinitionandApplicationstubs in every project.Application::getProviders()is now typedarray<class-string<ServiceProvider>, ServiceProvider>(#1868) - Keep
blank(),filled(),transform(),throw_if()andthrow_unless()precise on Psalm rc6+, which removes falseRedundantConditionGivenDocblockTypereports such asif (blank($search))(#1965)
$search = str($search)->trim();
if (blank($search)) { /* ... */ }
-// RedundantConditionGivenDocblockType: Operand of type true is always truthy- Keep paginator
getCollection()aSupport\Collectionfor non-model values on Psalm rc6+ (#1966) - Stop hiding genuine taint findings on named arguments. Psalm rc1 attributes named-argument taint by the declared parameter, so the workaround now only strips a named argument bound to a variadic (#1773)
- Adapt factory, relation, and taint inference to Psalm 7.0.0-rc6 (#1964) and rc2 (#1798)
- Declare
StreamableAgentResponse::$citations, added in recent laravel/ai 0.11.x releases