@elyracode/laravel 0.9.23 → 0.9.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.25] - 2026-08-03
4
+
5
+ ### Changed
6
+ - Skill updated for Laravel 13 (June 2026): new "Laravel 13 Additions" section covering route metadata, `whenFilledEnum`, `Bus::bulk()`, non-retryable exceptions, queue attributes on traits, `schema:dump --without-migration-data`, `Cache::rememberWithState()`, notification `attachFromStorage`, Postgres pooler support, MariaDB vector indexes, and a warning that `php artisan dev` is long-running and must not be run by the agent. Also fixed the db-tools tool reference (`get_database_schema`)
7
+
8
+ ## [0.9.24] - 2026-07-24
9
+
3
10
  ## [0.9.23] - 2026-07-23
4
11
 
5
12
  ## [0.9.22] - 2026-07-23
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elyracode/laravel",
3
- "version": "0.9.23",
3
+ "version": "0.9.25",
4
4
  "description": "Deep Laravel project understanding for Elyra -- model relationships, route mapping, architecture analysis",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -29,7 +29,7 @@ Use Laravel tools when:
29
29
  If `@elyracode/db-tools` is installed, use BOTH for full understanding:
30
30
 
31
31
  1. `laravel_models` — shows PHP-side: relationships, fillable, casts, scopes, traits
32
- 2. `db_schema` or database tools — shows DB-side: actual columns, types, indexes, foreign keys
32
+ 2. `get_database_schema` — shows DB-side: actual columns, types, indexes, foreign keys
33
33
 
34
34
  Compare the two to find gaps:
35
35
  - Columns in DB but not in `$fillable` (may need adding)
@@ -92,7 +92,7 @@ Run `laravel_analyze` or `laravel_models` BEFORE generating Laravel code. Match
92
92
 
93
93
  ## Testing Conventions
94
94
 
95
- - Use Pest for new Laravel 11+ projects
95
+ - Use Pest for new Laravel projects (the default test framework since Laravel 11)
96
96
  - One test file per feature or model
97
97
  - Use factories for test data, never manual inserts
98
98
  - Name test methods descriptively: `it('creates a post with valid data')`
@@ -109,3 +109,25 @@ When adding a new feature, generate in this order:
109
109
  7. Routes
110
110
  8. Policy (authorization)
111
111
  9. Tests
112
+
113
+ ## Laravel 13 Additions (mid-2026)
114
+
115
+ Prefer these over older workarounds when the project is on Laravel 13:
116
+
117
+ | Feature | Use instead of |
118
+ |---------|----------------|
119
+ | `Route::metadata([...])` + `$request->route()->getMetadata('key')` | Stuffing route tags into route names or middleware parameters. Group metadata merges recursively into child routes; route-cache safe |
120
+ | `$request->whenFilledEnum('status', Status::class, fn (Status $s) => ...)` | Manual `whenFilled` + `tryFrom` + null guard |
121
+ | `Bus::bulk($jobs)` | Dispatching many jobs in a loop (one insert each) or a batch you don't need. Single bulk insert per queue/connection group |
122
+ | A `retry(): false` method on an exception class, or non-retryable exceptions via `withExceptions()` in `bootstrap/app.php` | try/catch + manual `$this->fail()` in every job |
123
+ | `#[Queue(...)]` on a shared trait | Duplicating queue attributes across job/event classes |
124
+ | `php artisan schema:dump --without-migration-data` | Hand-editing dumps to strip migration rows |
125
+ | `Cache::rememberWithState()` | Double cache checks when you need hit/miss info |
126
+ | `attachFromStorage()` / `attachFromStorageDisk()` on notification `MailMessage` | Reading file contents manually before attaching |
127
+ | Postgres pooler: `'pooled' => true` in the connection config; `::direct` suffix for DDL | Manual PgBouncer/RDS Proxy workarounds |
128
+ | MariaDB vector indexes via the schema builder | Raw SQL for vector indexes (Postgres already supported) |
129
+ | `Str::studly('CBOR', normalize: true)` | Manual lowercasing of ALL-CAPS segments |
130
+
131
+ Notes:
132
+ - `php artisan dev` replaces the `composer dev` script (server, queue, logs, Vite concurrently). It is long-running — do NOT run it as an agent; the user keeps it running.
133
+ - Scheduler `between()`/`unlessBetween()` are now timezone-order independent — no need to call `timezone()` first.