Run phpcbf --standard=WordPress-Core across includes/, prautoblogger.php,
and uninstall.php. Fixed 1,362 formatting violations in 75 files:
- Short array syntax: [] → array()
- Line breaking for long function calls
- Consistent indentation
- Function call parameter alignment
No logic changes; purely mechanical formatting.
Wires out the Cloudflare Workers AI image provider across the plugin:
- class-image-pipeline.php: drop 'cloudflare' dispatch branch; Runware
becomes the unrecognised-provider fallback
- class-image-model-registry.php: remove flux-1-schnell/cloudflare row;
update provider-enum docblocks (runware|openrouter only)
- class-settings-fields-extended.php: remove three CF fields
(cloudflare_ai_token, cloudflare_account_id, cf_image_via_gateway);
drop Cloudflare mention from model-picker + NSFW retry descriptions
- class-admin-page.php: remove prautoblogger_cloudflare_ai_token from
the encrypted-options list
- interface-image-provider.php: retarget preamble @see at Runware +
OpenRouter; update get_provider_name() example
- class-image-nsfw-blocked.php: generalise preamble (Runware +
OpenRouter can raise this)
Also cleans stale CF Workers AI mentions in:
class-ajax-handlers.php, interface-model-registry.php,
class-image-nsfw-retry.php, class-open-router-image-pricing.php,
prautoblogger.php.
The Cloudflare AI Gateway path (in class-open-router-config.php,
class-settings-fields.php 'prautoblogger_ai_gateway_base_url',
class-open-router-request-builder.php cache headers) is intentionally
untouched — it fronts OpenRouter and is unrelated to the CF Workers AI
image provider.
Don't silently swap to a different model when the user's selection is
unknown. Pass whatever the user configured to OpenRouter and let the
API error clearly. Fallback chain: caller hint → saved option →
PRAUTOBLOGGER_DEFAULT_IMAGE_MODEL constant. Cost estimation for
unknown models logs a warning and uses a conservative $0.05 estimate.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three issues found in activity logs:
1. Image model IDs stale — FLUX and Seedream removed from OpenRouter.
Updated to current models: Gemini 2.5/3.1 Flash Image, Gemini 3 Pro
Image, GPT-5 Image/Mini. Default changed to gemini-2.5-flash-image.
2. openrouter/free router wraps upstream 429 errors in HTTP 200 body
with error object. Both text and image response parsers now detect
this pattern and surface a proper RuntimeException.
3. Image request used modalities: ["image"] but Gemini needs
["image", "text"]. Updated to include both.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The autoloader splits CamelCase on lowercase→uppercase transitions, so
PRAutoBlogger_OpenRouter_Image_Provider maps to class-open-router-image-provider.php.
Files were named class-openrouter-* (missing hyphen), causing a PHP fatal
error when the pipeline tried to instantiate the provider — which killed
the process before any logging could fire.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>