Skip to main content
Deck follows Semantic Versioning. Subscribe to the RSS feed to be notified of new releases, or browse the full history on GitHub.
ChangedFixedAdded
3 August 2026
Added
  • A quality CI workflow now checks formatting with Pint on every push and pull request, and asserts that every release in the repository CHANGELOG.md has a matching entry on this page. Formatting was never checked in CI before, and the two changelogs could drift apart unnoticed.
  • The test workflow now runs composer test rather than calling Pest directly, so CI and the documented contributor command cannot diverge.
Changed
  • Deck::activate() now accepts string versions. 'v2', '2', and 2 are all valid, matching what Deck::get() has accepted since v0.4.2. Only get() was widened at the time, so Deck::activate('order-summary', 'v2') raised a TypeError despite the release notes describing both. Passing an integer continues to work unchanged.
Fixed
  • Unparseable versions now name the offending value. Both Deck::get() and Deck::activate() threw a message with the version missing entirely — Version for prompt [order-summary] does not exist. They now throw InvalidVersionException reading Invalid version [banana] for prompt [order-summary]. Use a positive number like [1] or [v1].
  • Corrected the prompt structure diagrams throughout the documentation and README. They omitted the version-level metadata.json introduced in v0.4.4, and the README showed a user.md that make:prompt does not create without --user alongside a second version that a single run does not create.
  • Corrected the README describing new versions as becoming active automatically. Creating a version has not changed the active version since v0.4.4.
  • Corrected the documented Deck::get() signature, which read ?int rather than string|int|null.
FixedAdded
3 August 2026
Fixed
  • Migrations now publish on case-sensitive filesystems. vendor:publish --tag=deck-migrations reported success without copying anything on Linux and case-sensitive macOS volumes. If your database/migrations directory came up empty after installing Deck, publish again after upgrading.
  • Creating a version no longer changes which version is live. make:prompt rewrote the prompt’s root metadata.json from scratch, discarding the active_version key, so scaffolding a draft silently promoted it to active. The file is now merged: active_version, your description, the original created_at, a populated variables list, and any keys you added by hand all survive.
  • Prompt metadata is now readable. make:prompt recorded the name, description, and roles in the prompt’s root metadata.json, but Deck only ever read the version-level v{n}/metadata.json. PromptTemplate::metadata() was always empty and the prompt:list description column was always blank. make:prompt now writes version-level metadata too, and reads merge the two files with version keys winning. See Metadata.
  • prompt:test --ver=v2 renders the version you asked for. The v prefix was discarded during parsing, so the command quietly rendered the active version while reporting the wrong number in its header. Both 2 and v2 now work, and an unparseable value fails with a clear message.
  • Corrected the PromptPHP\Deck\Database\Factories\ PSR-4 mapping, which pointed at a directory that does not exist.
  • Corrected the README downloads badge, which reported the deprecated veeqtoh/prompt-deck package, and the stale repository and licence links.
Added
  • make:prompt now tells you how to promote a new version when a different one is active:
Removed
  • Removed the PromptPHP\Deck\Database\Seeders\ autoload mapping, which pointed at a directory that does not exist.
Fixed
29 July 2026
Fixed
  • Widened the sebastian/diff constraint to allow v8 and v9, so Deck can be installed alongside Pest 5. #12
Fixed
27 May 2026
Fixed
  • Deck::get() and Deck::activate() now accept mixed version types, resolving versions through the shared ResolvesVersion trait.
Fixed
17 May 2026
Fixed
  • prompt:activate now accepts both 1 and v1 version formats.
BreakingChanged
17 May 2026
This release renamed the package and its namespace. See the upgrade guide before upgrading from v0.3.x.
Changed
  • Renamed the package from veeqtoh/prompt-deck to promptphp/deck.
  • Renamed the PHP namespace from Veeqtoh\PromptDeck to PromptPHP\Deck.
  • Renamed the public package identity from Prompt Deck to Deck by PromptPHP.
  • Updated installation, usage, README, badges, documentation links, and package metadata for the new PromptPHP organisation. #7
Removed
  • Removed the old Veeqtoh\PromptDeck public namespace.
  • Removed old Prompt Deck naming from the main public API.
AddedChangedFixed
17 May 2026
Added
  • Published this documentation site, built on Mintlify. #5
  • Added dedicated pages for installation, configuration, commands, prompt management, Laravel AI SDK integration, tracking, testing, and the API reference.
Changed
  • Reworked the documentation from flat markdown files into organised MDX pages. #6
Fixed
  • Fixed stale documentation links and navigation paths.
AddedChanged
28 March 2026
Added
  • Added a CHANGELOG to the repository.
  • Added a GitHub Actions workflow for automated testing.
  • Added a .gitattributes file to manage text handling and export-ignore rules.
Changed
  • Refined the Composer package keywords for discoverability.
Added
27 March 2026
Added
  • Added support for Laravel 13. #3
  • Added the scaffold_on_make_agent option to toggle auto-scaffolding of prompts when you run make:agent. See Configuration.
Added
4 March 2026
The first release. #1Added
  • Versioned prompt management with file-based storage in structured prompt directories.
  • Variable interpolation for prompt templates.
  • Artisan commands for creating, listing, testing, diffing, and activating prompts. See Commands.
  • Prompt execution tracking. See Tracking.
  • A/B testing through versioned prompt activation and tracking.
  • Optional Laravel AI SDK integration. See Laravel AI SDK.