Skip to content

v0.4.2

Choose a tag to compare

@m3m0r7 m3m0r7 released this 19 Jun 12:52

Highlights

v0.4.2 makes raw PHP scalars the default for generated method arguments, so out of the box you can pass plain int/float/string without wrapping them in \Pnlx\Types\*. It also ships the in-repo agent skills documentation under .agents/.

use_php_scalars_in_params on by default

  • features.use_php_scalars_in_params now defaults to true: generated methods accept a raw PHP scalar argument directly, instead of requiring a \Pnlx\Types\* wrapper.
  • Applied consistently across every layer that resolves the flag:
    • Rust manifest serde default (#[serde(default = "default_true")]) and the PnlFeatures Default impl.
    • PHP Pnlx\Runtime::useScalarsInParams() falls back to true when the key is absent from pnl.json, so hand-written manifests that omit the field behave the same as generated ones.
    • JSON schema (schemas/pnl/2026-07-01/schema.json) now records "default": true.
  • To keep the stricter wrapper-only behavior, set features.use_php_scalars_in_params to false in pnl.json.

Removed the redundant install flag

  • Dropped pnl install --enable-use-php-scalars-in-params and its InstallOptions plumbing — the feature is on by default, so opting in is no longer needed. Opting out is done by editing pnl.json.

Agent skills documentation

  • Added .agents/skills/ guidance: pnl-usage, pnl-php-sdk, and pnlx-authoring SKILL.md files (surfaced to Claude Code via the .claude/skills symlink).

Documentation

  • Updated docs/en/configuration.md and docs/ja/configuration.md to describe true as the default for features.use_php_scalars_in_params.

Validation

  • Rust: cargo build, cargo clippy, cargo fmt --check, and cargo test (152 passed) all clean.
  • PHP: PHPUnit (61 tests, 276 assertions) and PHPStan level max pass.