Changelog
Unreleased
[0.2.5] - 2026-09-16
Security
{{secrets.*}}resolves only in HTTP Request and Send Webhook; other nodes leave the tag unresolved- Resolved secret plaintext is tracked and redacted from execution logs, dry-run output, and node output passed downstream (
[REDACTED_SECRET])
[0.2.4] - 2026-09-16
Changed
- AI library upsells are gated only by a package constant (
LibraryUpsellCatalog), notconfig/.env— host installs cannot re-enable cards that link to a missing product page
[0.2.3] - 2026-09-16
Changed
- Library AI upsell cards are off by default and no longer toggled via
VOODFLOW_LIBRARY_UPSELLS/VOODFLOW_AI_UPSELL_URL— host apps cannot enable broken product links; Voodflow re-enables them in a package release when the public page is live
[0.2.2] - 2026-09-16
Changed
- Remove in-repo work documentation (checklists, sales/developer stubs, internal notes); keep public README assets under
docs/images/(and product academy/manual where applicable)
v0.2.1 - 2026-09-11
Changed
- Registers the voodflow vault root via
RegistersPluginVault(replacing the old bootstrap helper) - Approval page layout hero media picker scopes to the voodflow vault album when vmedia is present
v0.2.0 - 2026-09-08
Distribution tag for host apps (composer require voodflow/voodflow:^0.2). Requires php artisan migrate (ops tables) and a running queue worker for waits/approvals.
Added
- Human-in-the-loop (HITL):
request_approvalnode pauses execution until Approve/Reject via signed email links and/or Filament Approvals inbox (notes, recipient match, scoped list for non–super_admin, admin bulk delete, filters/search/sort) - Waits & signals:
wait_for_signal,date_reached_node;WorkflowWait+Voodflow::signal()/resolveWait(); commandsvoodflow:process-waits,voodflow:date-reached-run,voodflow:signal - Secrets: encrypted
Secretmodel / Filament resource; tags{{secrets.key}} - Ops platform: workflow versioning (
WorkflowVersion), dry-run executions (is_dry_run), RunWorkflow actions, open failed node on canvas - Chat webhooks: built-in Slack / Discord / Teams / Telegram templates via
WebhookTemplateRegistry - Services / guards:
WorkflowWaitService,WorkflowVersionService,WorkflowFailureOps,UrlGuard,WebhookSignature,TriggerMatchFilter,MaxWorkflowsGate, feature flags /WorkflowGate - Config:
approvals.*,ops.*,limits.max_workflows,http.ssrf_protection,webhooks.verify_signatures,chat_webhook_templates,library.* - TagReplacer:
{{secrets.key}}; bare{{field}}from list envelopedata[0]; optional spaces ({{ name }}) - Tests: approvals visibility/notes, Request Approval tags, waits/signals, UrlGuard, TriggerMatchFilter, TagReplacer secrets, Filter/ForEach loop cases
Changed
- Composer package version 0.2.0
ExecutionResultwaiting state; executor pauses and resumes on wait outcomes- Filament nav order: Dashboard → Workflows → Approvals → Executions → Message Templates → Model Integrations → Credentials → Secrets → Settings
- Multi-trigger workflows: prefer matching trigger node /
_start_node_id - AI out of core:
ai_prompt/ai_agentand Agent Integrations moved to optionalvoodflow-ai/voodflow-ai-core; Flow Weaver remains optional (voodflow-ai-weaver) with soft coupling only
Fixed
- Request Approval / mail tags resolve against Manual Trigger list envelopes (
primaryRecordForTags+ TagReplacer envelope fallback) - Core no longer hard-typehints AiWeaver / AiCore classes
- Filter + For Each loop item evaluation / empty lists; Send Mail first-record tags; executor loop envelope handling
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.1.2...v0.2.0
v0.1.2 - 2026-07-23
Added
- System Notification node (v1.3.0): Filament channels for Database (bell) and Broadcast (realtime popup via Echo/Reverb)
- Workflow UX: Create & open flow; Save & close / Open flow on edit; clearer Flow vs Edit table actions
Fixed
- Duplicate broadcast toasts when both Filament Echo and Flow-editor replay paths fired — broadcast is handled only by Filament Echo
- Flow editor live node glow depends on reachable Reverb (document host port publish for Docker)
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.1.1...v0.1.2
v0.1.1 - 2026-07-13
Added
- AI workflow nodes:
ai_prompt_nodeandai_agent_nodewith Agent Integration registry, credential resolver, and Filament resource - Plugin node paths:
NodePathRegistryand deferreddynamicNodeBundlesscript data for marketplace nodes (e.g. Vtuts)
Changed
- Transform node: improved upstream field hints and UI
- HttpRequest node: credential auth helpers and expanded tests
Fixed
- Plugin workflow nodes stuck on “Loading …” when registered before Voodflow boot completes
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.1.0...v0.1.1
v0.1.0 - 2026-06-25
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.0.10...v0.1.0
[0.1.0] - 2026-06-25
Added
- Filament 5: official support alongside Filament 4 (
filament/filamentandfilament/spatie-laravel-settings-plugin^4.0|^5.0). - Tests: restored package test bootstrap (migrations, Spatie settings, users table) so the suite runs reliably in isolation.
Changed
- Flow editor:
@xyflow/reactupdated to12.11.1(rebuilt dist assets).
Fixed
- Tests: corrected
ModelUpdateNodeTestnamespace/import; removed reference to a non-existent migration stub inTestCase.
[0.0.10] - 2026-04-15
Added
- Workflows: bulk export selected workflows as a ZIP of JSON exports.
- Flow editor: single export now includes title, description and a stable fingerprint; import previews metadata and can optionally update workflow meta.
- Imports: fingerprint-based duplicate detection with clear, translatable warnings and optional overwrite.
Fixed
- Metadata: preserve workflow fingerprint when saving viewport and other editor metadata.
[0.0.9] - 2026-04-14
Added
- Node access control: nodes can now show a dedicated non-executable notice, with localized hints, when a node is disabled during execution for the current role.
- Flow editor: a persistent Save disabled badge is shown on the canvas when the workflow is read-only.
- CORE node: Workflow Author exposes workflow author details as
author.*with safe-by-default sanitization for admin-owned (“system”) workflows.
Changed
- Node access control UX: read-only behavior is now consistent across nodes via shared UI flags (
useNodeAccessUi) and shared notices. - Collapsed nodes: the Voodflow logo / “Connect data” placeholder is no longer shown when the node input is already connected.
- Settings: redesigned the Node access control matrix with grouping, sorting and a lighter “Shield-style” layout.
- Node generator CLI: newly generated nodes scaffold consistent access-control UX (read-only, delete gating, non-executable notice).
Fixed
- Read-only workflows: backend write actions are silently ignored when the workflow is read-only to avoid modal/notification spam.
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.0.8...v0.0.9
[0.0.8] - 2026-04-13
Added
- Flow editor / model introspection:
FlowWorkflowenriches field metadata with enum options when the attribute is cast to a PHPBackedEnum; if there is no enum cast but the column is treated as enum, distinct values are sampled from the database (up to 50) so the UI stays usable.
Fixed
- Credentials admin: Last used (
last_used_at) is now updated when Send Mail or HTTP Request nodes use a stored credential (they previously bypassedCredentialProxy). Failures callrecordError()on the credential for visibility. - Model Update node: empty string values are normalized to
nullfor attributes cast to backed enums, avoidingValueErrorfromEnum::from('').
Changed
- Node registry:
resources/js/nodeRegistry.jsgeneration timestamp refreshed.
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.0.7...v0.0.8
[0.0.7] - 2026-04-10
Added
- Model metadata:
EloquentRelationInspectorand registry enrichment add a stablekindper relation (e.g.belongs_to_manyvsbelongs_to) so nodes rely on metadata instead of naming conventions. - Model Update / events:
ModelRelationLoadereagerly loads relations fromHasVoodfloworModelRegistryafter persistence; tag context mergesWorkflowPayload::primaryRecordForTagsfor templates. - Flow editor:
WorkflowUpstreamFieldHintswalks upstream nodes through Merge so Update Model field suggestions match runtime payloads. - Filament: policies for credentials, executions, triggers, and message layouts;
FilamentShieldPageAccessintegrates Shield with dashboard and settings pages.
Fixed
- Merge: optional
waitForAllInputsdefers execution until every incoming branch has output when parallel fan-in would otherwise fire downstream multiple times.
Changed
- Update Model (UI): upstream field list prefers integration metadata then database columns; Merge panel exposes the wait-for-all-inputs toggle.
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.0.6...v0.0.7
[0.0.6] - 2026-04-09
Fixed
- Merge: Merge inputs use the live branch payload when available; for other branches the executor resolves the latest source output even when
workflow_node_iduses a suffix (id#…), so downstream nodes and tags keep data after a merge. - Expression:
0/'0'are no longer treated as an empty expression (PHPempty()); rows are considered configured explicitly. - Flow editor (React): fewer chained updates and duplicate Livewire listeners (
FlowEditor, global bridge,useUpstreamHash, standard node behavior); mitigates React error #185 after runs;DataVieweravoids feedback loops on derived columns.
Changed
- Merge node: requires at least one valid input (no longer two mandatory inputs).
- System notifications: tags merge full context with the first normalized record from the current payload (
WorkflowPayload::primaryRecordForTags), keeping aliases and scalar fields consistent with runtime.
Full Changelog: https://github.com/voodflow/voodflow/compare/v0.0.5...v0.0.6
[0.0.5] - 2026-04-08
Fixed
- Flow editor: sticky notes use a stable width and auto-grow in height; dimensions persist more reliably; header label NOTE.
- System notification: template context merges immediate upstream output (e.g. Aggregate aliases such as
list_name) so tags resolve in title/body. - Aggregate: Pluck values and Collect array (push) are implemented in PHP (previously UI-only).
- TagReplacer: lists of scalars (e.g. plucked names) render as comma-separated text instead of
[Array with N items].
Changed
- System notification “Available tags”: suggestions and clipboard copy use paths consistent with execution-time
TagReplacer(e.g.{{name}}vsdata.name).
[0.0.4] - 2026-04-08
Added
- Horizon-aware queue health in the admin widget (shows Horizon status, queue name, and supervisor details when available).
- A
voodflow:horizon-snapshot-loopcommand for environments without a scheduler to keep Horizon metrics up to date.
Changed
voodflow:work --horizonnow starts the scheduler (and Reverb if available) even when Horizon is already running.- Health widget layout is now dynamic (license stat is shown only when configured, and columns adapt accordingly).
Fixed
- Workflow broadcasting failures (e.g. Reverb offline) no longer fail executions; errors are logged and execution continues.
- Queue worker activity detection is more reliable via a generic heartbeat updated on job lifecycle events.
[0.0.3] - 2026-04-08
Fixed
- Scheduled workflows are now dispatched to the queue (and visible in Horizon) when
VOODFLOW_EXECUTE_SYNC=false.
[0.0.2] - 2026-04-04
Changed
- License dashboard cache: shorter TTL for license status (
portal.license_cache_ttl_minutes, default 15 minutes, envVOODFLOW_PORTAL_LICENSE_CACHE_MINUTES) so Anystack deactivation is reflected in the admin widget without waiting for the 24h version cache. - Health widget: manual “Check now” control on the Voodflow License stat clears the portal license cache and refreshes the stat; success notification when a Composer license key is present.
Added
- Localized strings for the license refresh control (
voodflow::voodflow.widgets.health.*).
[0.0.1] - 2026-04-02
Added
- First stable release: Voodflow — Filament plugin for visual workflows on Laravel.
- Visual workflow editor (React Flow), triggers, flow-control and data nodes, actions, queue-based execution, credentials, and model integrations.
php artisan voodflow:installfor config, published assets, and migrations.- Portal integration: version and license checks via
api.voodflow.com, Composer-sourced license key,VoodflowPortalClient, andconfig/voodflow.php→portal. - Webhooks, scheduling, whitelabel hooks, optional tenancy support.
- CLI:
voodflow:make-node,voodflow:build-node,voodflow:package-node, workers, and maintenance commands. - Distribution via private Composer (Anystack).
Notes
- Composer repository URL, licensing, and setup: docs.voodflow.com.