Releases

Keep up with regular Scramble releases.
Latest versions:
Scramble: v0.13.22
Scramble PRO: v0.9.1
April 2026
Apr 27, 2026
v0.9.1 PRO

What’s Changed

  • Bump Scramble to 0.13.22
Apr 27, 2026
v0.13.22

What’s Changed

  • Support custom field for confirmed rule by @cappuc in #1128
  • Add support for $this in rule expressions and improve rules evaluation safety by @romalytvynenko in #1145

Security: addresses a potential code execution issue under specific conditions.

New Contributors

  • @cappuc made their first contribution in #1128
Apr 26, 2026
v0.9.0 PRO

Changes to the generated query parameters JSON schema

Parameter handling is aligned with JSON:API serialization rules and expressed using proper OpenAPI schema. Instead of documenting parameters like include as string with described values, they are now defined as arrays with enumerated items. With explode: false, these arrays are serialized as comma-separated values (e.g. include=foo,bar) while remaining arrays in the schema.

{
    "name": "fields[appointments]",
    "in": "query",
    "schema": {
        "type": "array",
        "items": {
            "type": "string",
            "enum": [
                "title",
                "description",
                "status",
                "created_at"
            ]
        }
    },
    "explode": false
}

Fallback to previous behavior is available via configuration. If you prefer the old approach where JSON:API array parameters are documented as string, you can switch the serialization strategy:

use Dedoc\Scramble\Scramble;
use Dedoc\Scramble\Enums\JsonApiArraySerialization;

Scramble::configure()
    ->jsonApi(
        arraySerialization: JsonApiArraySerialization::String,
    );

What’s changed

  • Improved type inference for query builder instances. The model type is now inferred for the query builder generic, allowing Scramble to correctly document types from expressions like QueryBuilder::from(SomeModel::class)->get()->toResourceCollection().
  • When documenting Query Builder parameters, Scramble now respects the jsonApi arraySerialization configuration when handling query array enum parameters (such as include, fields[*], sort), documenting them as arrays of specific enum values instead of listing available values in the description.
  • Added compatibility with Laravel’s native JSON:API implementation: Query Builder parameters take precedence when present.
  • When allowedFields is used, Scramble documents the fields query parameter as fields[${model table name here}] instead of fields, better aligning with the JSON:API specification.
  • Improved relationship include documentation for AllowedInclude::relationship(...) in Laravel Query Builder 7.0+: Scramble no longer documents redundant include values like postsCount and postsExists when only posts should be available.
Apr 26, 2026
v0.13.21

What’s Changed

  • Fix relationship resource guessing when not explicitly provided and recognize JSON:API parameters when resource is transformed to response by @romalytvynenko in #1143
Apr 16, 2026
v0.13.20

What’s Changed

  • Add toResourceCollection support on paginators by @romalytvynenko in #1142
Apr 16, 2026
v0.13.19

What’s Changed

  • Add JSON:API resources support by @romalytvynenko in #1136
  • Add model’s toResource and toResourceCollection methods support by @romalytvynenko in #1138
  • Add attributes support on FormRequest (e.g. #[*Parameter], #[SchemaName]) by @romalytvynenko in #1141
  • Fix variadic placeholder request inference error by @romalytvynenko in #1139
Apr 10, 2026
v0.13.18

What’s Changed

  • Fix memory leak in long-running processes (prevent extensions priority duplication) by @romalytvynenko in #1132
March 2026
Mar 27, 2026
v0.8.13 PRO

What’s Changed

  • Fixed documenting of explicitly included (or not included) properties of nullable lazy properties
Mar 27, 2026
v0.13.17

What’s Changed

  • Improved type templates inference by @romalytvynenko in #1112
  • Improve type inference so when (from Conditional trait) is supported by @romalytvynenko in #1113
  • Soft delete methods support by @romalytvynenko in #1117
  • Fix #[SchemaName] attribute not reflected in response description by @dbrekelmans in #1118
  • Fix required rule on arrays not setting minItems: 1 by @dbrekelmans in #1120
  • Fix enum placed on array instead of items in OpenAPI spec by @dbrekelmans in #1119

New Contributors

  • @dbrekelmans made their first contribution in #1118
Mar 17, 2026
v0.8.12 PRO

What’s Changed

  • Improved support of lazy properties on data collections
Mar 17, 2026
v0.13.16

What’s Changed

  • Smarter inference for paginate calls on models and query builders by @romalytvynenko in #1109
  • Support more string types by @Neol3108 in #1110
  • Add @phpstan-self-out support and improve closure param inference from call-site context by @romalytvynenko in #1111
Mar 16, 2026
v0.8.11 PRO

What’s Changed

  • Improve support of lazy data collection properties
Mar 15, 2026
v0.8.10 PRO

What’s Changed

  • Improve lazy properties
  • Added ability to hide data properties only from a documentation using Scramble’s Hidden attribute by @romalytvynenko in #94
  • Add Laravel 13.x support by @romalytvynenko in #95
  • Add compatibility with Laravel Query Builder 7.0
Mar 15, 2026
v0.13.15

What’s Changed

  • Improve rules evaluation by @romalytvynenko in #1097
  • Laravel 13.x Compatibility by @laravel-shift in #1099
  • Added @hidden annotation and attribute by @romalytvynenko in #1106
  • Fix nullable literal unions missing null in enum property by @romalytvynenko in #1107
  • Fix #[QueryParameter] with nested brackets (and other parameters attributes) generates incorrect parameter name by @romalytvynenko in #1108
February 2026
Feb 20, 2026
v0.8.9 PRO

What’s Changed

  • Fixed array annotated properties breaking in input context
Feb 16, 2026
v0.8.8 PRO

What’s Changed

  • Fix documenting properties with array-kind annotations
Feb 16, 2026
v0.13.14

What’s Changed

  • Fixed evaluation of class const fetch expression when name is 'class' by @romalytvynenko in #1090
  • Fixed model properties with datetime:Y-m-d cast being documented as date-time format (now correctly documented as date) by @romalytvynenko in #1091
  • Improve @deprecated annotation support on arrays by @romalytvynenko in #1093
  • Fixed keyed array types being properly unpacked when are parts of union by @romalytvynenko in #1094
  • Constants as openapi const by @apasquini95 in #1086
Feb 12, 2026
v0.8.7 PRO

What’s Changed

  • Added Laravel Actions support
Feb 12, 2026
v0.13.13

What’s Changed

  • Added ability to configure classes ignored by form request params extractor by @romalytvynenko in #1081
  • Updated unions to schema transformation when union consists of literals with null by @romalytvynenko in #1083
  • Ensure request body extension takes into account manually configured flatten_deep_query_parameters by @romalytvynenko in #1084
  • Handle @deprecated in API resources by @devfrey in #1080
  • Handle null value for ui.title in docs view. by @IsmailBourbie in #1087

New Contributors

  • @devfrey made their first contribution in #1080
  • @IsmailBourbie made their first contribution in #1087
January 2026
Jan 28, 2026
v0.8.6 PRO

What’s Changed

  • Added abstract Laravel Data classes support
Scramble PRO
Comprehensive API documentation generation for Spatie’s Laravel Data, Laravel Query Builder, and other packages.