Releases: procyon-creative/wp-dario-provider
Release list
v0.2.3
What's Changed
- fix(http): Safe-request filters now whitelist the host and port from
DARIO_BASE_URL(when overridden), not just the sidecar settings. Without this, pointing the AI Client at a remote Dario instance viaDARIO_BASE_URLwould surface "A valid URL was not provided" becausewp_safe_remote_requestblocked the request. (WPD-27)
Full Changelog: v0.2.2...v0.2.3
v0.2.2
Important: This release bumps the minimum PHP version from 7.4 to 8.0 to match what the code already required (the OpenAI-compat parser uses match, a PHP 8.0+ feature). Anyone running 0.2.x on PHP 7.4 was already crashing at runtime; this just makes the requirement honest.
What changed since 0.2.1
- Admin notice now also fires when the Dario sidecar is down, not just when Claude OAuth is missing. Consumers were failing silently with "connection refused" until you went to the settings page (WPD-20).
- Requires PHP bumped 7.4 → 8.0 (WPD-17). The plugin was always 8.0+ in practice.
- PHPStan static analysis at level 5 added to CI, with WP stubs. Fixed a handful of dead defensive checks and one missed type narrowing it surfaced (WPD-17).
- Pre-commit hook now also lints staged
.mjsand.ymlfiles (WPD-19). - MigrationShim extracted to its own class with full unit-test coverage (WPD-18).
- Test coverage added for the sidecar start-command construction, connector-key sync, and the secret-preservation rule on empty form submit (WPD-21, WPD-22).
No changes to end-user behavior beyond the new admin notice case and the PHP requirement bump.
v0.2.1
Maintenance + CI hardening release. Existing 0.2.x installs will auto-update via PUC.
What's in this release
- WPD-9 — Bump GitHub Actions to Node 24 before the September 2026 Node 20 removal
- WPD-10 — CI runs the same
npm run checkdevelopers run locally; drop bespoke verification steps - WPD-11 — Single CI job (no setup duplication across parallel jobs)
- WPD-12 — Refresh composer.lock content-hash to silence the lock-out-of-date warning
- WPD-13 — README Development + Releases section catch-up
- WPD-14 — Branch protection on main requires CI green before merge
- WPD-15 — PCP gate fails on warnings too; rename last unprefixed global
No code changes affecting end-user behavior. The plugin's runtime is identical to v0.2.0.
v0.2.0
Breaking change: plugin slug, namespace, options, and provider ID renamed to use the procyon vendor prefix. Plus a major UX overhaul to make Claude auth state impossible to miss.
Upgrading from 0.1.x
The directory rename means WordPress sees this as a different plugin. To upgrade:
- Auto-update or manually install 0.2.0. The new plugin appears alongside the old.
- Deactivate
wp-dario-provider(the old version). - Activate
procyon-dario-provider(the new version). The activation hook copies your existing settings, sidecar PID, and connector API key to the new option names automatically. - Optionally delete the old
wp-dario-provider/plugin directory.
Your ~/.dario/credentials.json and OpenAI backend files at ~/.dario/backends/*.json are unaffected.
What changed
Vendor-prefix rename (WPD-7)
Every plugin-owned identifier now carries a procyon prefix. Strings owned by WP core or by upstream Dario stay as they are.
| Surface | Before | After |
|---|---|---|
| Directory + main file | wp-dario-provider/ + wp-dario-provider.php |
procyon-dario-provider/ + procyon-dario-provider.php |
| Text Domain | wp-dario-provider |
procyon-dario-provider |
| PHP namespace | Dario\ |
Procyon\Dario\ |
| Composer package | procyon-creative/wp-dario-provider |
procyon-creative/procyon-dario-provider |
| Provider ID (AI Client) | dario |
procyon_dario |
| Connector API key option | connectors_ai_dario_api_key |
connectors_ai_procyon_dario_api_key |
| Plugin options/transients | dario_provider_* / dario_oauth_* |
procyon_dario_* |
The repo URL stays at procyon-creative/wp-dario-provider (intentional).
UX overhaul (WPD-8)
- Site-wide admin notice when Claude is not authenticated, with a one-click link to the settings page. Cached in a 60s transient so admin loads stay fast.
- Settings page reordered: Status → Claude Authentication → Sidecar Settings → OpenAI Backend. Claude auth at position 2 because nothing works without it.
- Status row severity styling: red text + warning icon when not authenticated, orange when credentials present but invalid.
- Secret fields render
placeholder="*****"when a value is stored. Drops the trailing<code>last4</code>mask that leaked the last 4 chars.
Plugin Check (PCP) compliance (WPD-1, WPD-4)
- All filesystem ops moved to
WP_Filesystemvia the newWithFilesystemtrait. - Permanent exceptions for
fsockopen(port liveness) and FIFO ops (noWP_Filesystemequivalent) are inlinephpcs:ignore. - CI gate runs PCP on every PR. Only the 3 deferred
plugin_updater_detectederrors remain (intentional — wp.org would reject the auto-updater, but we distribute via GitHub releases).
Lando dev environment (WPD-2, WPD-3)
- Single
lando rebuild -yproduces a fully working install: dry WordPress (no Akismet, no Hello Dolly),twentytwentyfivetheme,procyon-dario-provider,aiconsumer plugin, andplugin-check— all installed and active automatically. - CI workflow boots the same Lando environment and runs the same tests.
Other
- Repo transferred to
procyon-creativeorg (WPD-6). Oldnicolasgalvez/wp-dario-providerURL has GitHub's automatic redirect. - Distribution decision: stay off wp.org for now, keep PUC for GitHub-releases-driven updates (WPD-5).
See docs/plugin-check.md for the deferred PCP exceptions and rationale.
v0.1.5
New: Settings → Dario AI Connector admin page
Non-SSH WordPress admins can now configure the sidecar, write OpenAI-compatible backend credentials, and complete Claude OAuth without a shell.
Highlights
- Settings → Dario AI Connector admin page surfaces sidecar status / restart / proxy + backend config.
- Writes OpenAI-compatible backends to
~/.dario/backends/<name>.json(mode 0600), byte-compatible with Dario's ownsaveBackend(). - Drives Dario's manual Claude OAuth flow from PHP via
proc_open+ a FIFO so admins can paste back the authorization code from another browser tab. - Paste-
credentials.jsonfallback for installs where running the in-browser flow isn't practical. - Constant/env overrides honoured for every setting.
Bug fixes found during integration testing with the WordPress.org ai consumer plugin
- Auto-fill
connectors_ai_dario_api_keyso the WP AI Client binds an auth interface to the provider (default valuedario, kept in sync with the proxy_api_key setting). - Scoped
http_request_host_is_externalandhttp_allowed_safe_portsfilters sowp_safe_remote_requestcan reach the loopback proxy on port 3456. - Fixed FIFO open ordering bug in OAuth orchestration (
0<>instead of<so the spawning shell doesn't block waiting for a writer peer).
Verified
End-to-end Title Generation ability through the wp.org ai plugin routes Consumer → AI Client → DarioProvider → sidecar → Anthropic and returns real generated text.
See PR #1 for the full diff and test plan.
v0.1.4
Start a bundled Dario Node sidecar on plugin activation when Node.js is available.
v0.1.3
Include Composer vendor files in the GitHub release zip.
v0.1.2
Fix GitHub Actions release asset upload permissions.
v0.1.1
Fix compatibility with the WordPress 7.0 RC4 AI Client model metadata directory interface.