The Wire · Showcase
PRECOGNITION GETS FULL TYPE SAFETY ACROSS ALL FORM METHODS
By RepoJournal · Filed · About Laravel
Every form field-name method now enforces the same strict path typing that validate() uses, eliminating the type mismatches that let developers write valid() calls that validate() would reject.
Precognition's type system just got complete. PrecognitionPath, introduced to give validate() autocompletion for nested and wildcard paths, was only wired into that single method [1]. The other field accessors - touched(), valid(), invalid(), errors(), setErrors(), forgetError(), reset() - still accepted plain strings, which meant you could validate('profile.name') but valid('profile.name') would fail type checking [2]. That inconsistency is gone. The update also expands what paths you can target: indexed arrays (users.0.name) and Records with string or number keys now work alongside wildcards, giving you the precision to track specific form elements in dynamic lists [2]. MCP keeps expanding its reach across the Laravel ecosystem. The web client now supports arbitrary headers via withHeaders(), which opens access to servers that need custom Authorization schemes or tenant identifiers instead of bearer tokens [3]. Resources support landed too, letting you list and read a server's resources through the same client surface as tools and prompts [4]. Meanwhile, MCP's model exception handling now converts findOrFail() errors into proper error messages instead of generic failures [5]. LSP has four fixes queued across Neovim glob patterns, link definitions, relative paths, and Windows drive-letter handling [6] [7] [8] [9], with v0.0.22 preparing to ship [10]. Framework got targeted fixes for scheduled command quoting when running as another user [11] [12], enum support for broadcastAs on the 13.x branch [13], and type cleanup across helpers and event dispatching [14] [15].
Action items
- → Review Precognition update if you're using dynamic forms with indexed arrays or Records laravel/precognition [plan]
- → Test MCP clients against custom-header servers if withHeaders() is on your roadmap laravel/mcp [plan]
- → Cherry-pick the scheduled command quoting fix if you run tasks as different users laravel/framework [monitor]
References
- [1] Type every form field-name method with PrecognitionPath (+ indexed & record paths) ↗ laravel/precognition
- [2] Type every form field-name method with PrecognitionPath (+ indexed & record paths) (#156) laravel/precognition
- [3] Add withHeaders() to the MCP web client ↗ laravel/mcp
- [4] Add resources support to the MCP client ↗ laravel/mcp
- [5] feat: automatically convert model not found exceptions to proper error messages ↗ laravel/mcp
- [6] Fix invalid routes watcher glob for Neovim laravel/lsp
- [7] Link Definition fix laravel/lsp
- [8] relative paths fix laravel/lsp
- [9] Fix Windows drive-letter paths in FileUri laravel/lsp
- [10] v0.0.22 ↗ laravel/lsp
- [11] Fix shell quoting when scheduled commands run as another user (#60469) laravel/framework
- [12] [13.x] Fix shell quoting when scheduled commands run as another user ↗ laravel/framework
- [13] [13.x] Support enum for broadcastAs (#60483) laravel/framework
- [14] Fix case of StdClass to stdClass in SupportHelpersTest (#60479) laravel/framework
- [15] Add generic to HasEvents::dispatchesEvents() return type (#60463) laravel/framework
FAQ
- What changed in Laravel on June 11, 2026?
- Every form field-name method now enforces the same strict path typing that validate() uses, eliminating the type mismatches that let developers write valid() calls that validate() would reject.
- What should Laravel teams do about it?
- Review Precognition update if you're using dynamic forms with indexed arrays or Records • Test MCP clients against custom-header servers if withHeaders() is on your roadmap • Cherry-pick the scheduled command quoting fix if you run tasks as different users
- Which Laravel repositories shipped on June 11, 2026?
- laravel/precognition, laravel/mcp, laravel/lsp, laravel/framework