Releases: para1992/laravel-rick
Releases · para1992/laravel-rick
Release list
v0.4.2 — Premium README
Documentation and presentation release.
What's new
- Premium README top: hero image, badges (stars, license, last commit, PHP, Laravel, version), and an application-first narrative.
- New sections:
Why Rick?,Before Rick / With Rick,Core features,Design principles. - Added
assets/rick-hero.png(excluded from the package archive).
Accuracy
- Outbox delivery is documented as at-least-once, not exactly-once.
- The human-approval example uses
pendingInput()+submitInput(), notresume().
v0.4.1 — Documentation accuracy fixes
Documentation accuracy fixes.
Fixed
- Transactional outbox guarantee — the README previously claimed "exactly once" delivery; the correct guarantee is at least once (a worker can crash after the broker accepts a job or a listener handles an event, before the row is marked delivered). Workers must stay idempotent.
- Human-approval example — the README resolved an
awaitHumaninput gate withRun::resume(), which does not carry the human payload. The correct flow ispendingInput()+submitInput(..., ['approved' => true]).
v0.4.0 — Application-First / Laravel-Native
Application-First / Laravel-Native
This release turns Rick from an execution engine into a Laravel workflow package application developers prefer to write, read, test, and operate — while keeping the same durability guarantees.
What's new
- First-class
Workflowclasses — extendRick\Laravel\Workflow, declarename()/version()/build(), start withWorkflow::start([...]). - Plain PHP application steps —
->step(LoadClaim::class, as: 'load-claim')runs an ordinary invokable against aWorkflowState. No codec, strategy, orStepBaserequired by the consumer. - Laravel AI agent steps —
->agent(FlagRisk::class, as: 'risk')adapts aLaravel\Ai\Contracts\Agentinto exactly one audited provider call (tools, approvals, and multi-turn conversation are rejected loudly). WorkflowState— dot-notationget/put/has/forgetlayered over the existing artifact model.Runhandle —id,snapshot,metrics,timeline,delivery,progress,pendingInteraction,resume,retry.->output()— replacesoutputGlue()on the happy path;resolve()/context()/outputGlue()are no longer mandatory.- Stable step aliases (
as:) + labels (label:) +progress()— a safe{status, step_id, label, current, total}projection. Rick::fake()— high-level assertions (assertStepRan,assertAwaitingHuman,assertProviderAttempts,assertRunRecoveredFrom).make:rick-workflowgenerator.
Compatibility
- All existing
Rickmethods and builder methods remain;outputGlue()is a backward-compatible alias. - Persisted run/step payloads remain schema version 1;
application/agentare additive step types. - Supports Laravel AI
^0.9.1 || ^0.10.0(agent capability matrix documented in the changelog).
Full details: CHANGELOG.md
v0.3.0
What's new
- Automatic judge (
judge()) — one structured LLM invocation selects the best candidate and the run completes without a human review barrier. ReplacemanualJudge()withjudge()andoutputGlue('draft')keeps the selected result. await_humanstep — a schema-validated human approval barrier for workflows that need an explicit sign-off.rick.humanizerrecipe — language-neutral text humanization with pattern, taste, and fidelity audits plus factual grounding against the source. Optional voice-sample calibration viause_voice_sample.- Prompt-limit handling — prompt overflows now fail the step cleanly through
PromptLimitExceededException(aStepFailureBase). - Migration repair — invocation-diagnostic backfill rows skipped by the 0.1.0/0.2.0 migration are repaired by the new
000006migration; existing installs stay untouched.
Docs
- README now covers
judge()and the humanizer recipe under "Typical tasks". CHANGELOG.mdupdated with the[0.3.0]section.
Full changelog: https://github.com/para1992/laravel-rick/blob/main/CHANGELOG.md
v0.2.0
Added
StrictSchemafor consumer-defined portable strict structured-output schemas.- Configuration-time strict-schema validation with operation and property-level diagnostics.
- Documentation for nullable fields in strict structured output.
object() makes every declared property required and forbids additional properties. Use nullable() when a field must be present but may contain null.