Releases: eeftychiou/presshub
Releases · eeftychiou/presshub
Release list
PressHub AI Co-Pilot v2.3.5
PressHub AI Co-Pilot v2.3.5
🔧 Enforce AI Provider Store Precedence & Fix Runtime Max Tokens Shadowing (Issue #122)
- Resolved Runtime Max Tokens Shadowing: Fixed an issue where legacy options (
presshub_ai_max_tokens_gemini,presshub_ai_temperature_*,presshub_ai_timeout_*) lingering inwp_optionsfrom prior versions shadowed and overrode tuning values configured in the Provider Store (wp_presshub_ai_providers). - Strict Resolution Precedence: Updated
PressHub_AI_API_Client::resolve_module_config()to prioritize:- Module-level option override (
presshub_ai_{module}_max_tokens) - Configured provider record from
PressHub_AI_Provider_Store($provider_record['max_tokens']) - Class default (
PressHub_AI_Provider_Defaults::default_max_tokens())
- Module-level option override (
- Constructor & Metadata Synchronization: Updated
PressHub_AI_API_Client::__construct()to copymax_tokens,temperature,timeout, anddefault_modelfrom the configured provider record, and updatedcurrent_request_meta()to read active provider tuning from the Provider Store. - Automated Idempotent Cleanup Migration: Added
presshub_ai_migrate_purge_legacy_provider_tuning()to automatically purge obsolete flat tuning options fromwp_optionson upgrade and migrate uncustomized16384store records to20000.
What's Changed
- fix(provider): purge legacy max_tokens option shadowing and enforce Provider Store precedence by @eeftychiou in #123
Full Changelog: v2.3.4...v2.3.5
PressHub AI Co-Pilot v2.3.4
PressHub AI Co-Pilot v2.3.4
🚀 News Curation Token Optimization & Prompt Deduplication (Issue #120)
- Resolved Duplicate Article Ingestion: Fixed an issue where harvested articles were being injected twice in news curation prompts (once via
{articles_context}in the system prompt template and a second time in the user prompt), generating redundant 554k character payloads and doubling prompt token consumption (~198,670 tokens). - Streamlined System Prompt: Removed
{articles_context}fromdefault_greek_briefing.txtso system instructions remain purely editorial (~1,343 characters). - Deduplication Guard: Added logic in
PressHub_AI_News_Curator::build_prompt()ensuring articles are sent in the user prompt by default, while gracefully handling custom templates that include{articles_context}by omitting duplicate user-prompt context. Payload size is cut in half (~278k chars / ~99k tokens).
⚙️ AI Provider Settings Clarification & Default Max Output Tokens (Issue #120)
- Setting Clarification: Renamed Max Tokens: to Max Output Tokens: with an explanatory tooltip clarifying that it specifies maximum output tokens generated in model responses (completion tokens) and does not limit input prompt tokens.
- Provider Card Tuning Display: Updated summary cards to display
Max Output: <tokens>. - Increased Default to 20,000:
- Increased
PressHub_AI_Provider_Defaults::DEFAULT_MAX_TOKENSto20,000. - Updated all provider templates (OpenAI, Anthropic, Gemini, Groq, Mistral, DeepSeek, Ollama, Custom) to default to
20,000max output tokens. - Expanded HTML input upper bound to
65,536.
- Increased
What's Changed
- fix(curation): deduplicate articles in prompt and clarify max output tokens by @eeftychiou in #121
Full Changelog: v2.3.3...v2.3.4
PressHub AI Co-Pilot v2.3.3
PressHub AI Co-Pilot v2.3.3
🎙️ Podcast Prompt Enhancements (Issue #118)
- Nameless Presenters (
Απαγόρευση Ονομάτων): Speakers in podcast script generation are strictly prohibited from referring to each other or themselves by personal names (neither Greek names nor invented names). They also never speak technical tags like[SPEAKER_1]or «παρουσιαστής». - Spoken Natural Dates for TTS (
Μορφοποίηση Ημερομηνιών για TTS): All calendar and news dates (e.g.03/05/2026) are converted and written out in natural spoken Greek words (e.g.3 Μαΐου 2026) to optimize TTS pronunciation.
📁 Externalized Prompt Defaults
- Default prompt templates are now organized as dedicated text asset files in
assets/prompts/(9 podcast dialogue styles/host count combinations + 1 news curation briefing template) rather than hardcoded in PHP code files. - Introduced
PressHub_AI_Prompt_Loaderwith Zero-Silent-Fallback, path traversal protection, and in-memory static caching.
⚙️ Prompt Studio Settings Persistence Bugfix
- Fixed an issue where operator edits in the "Podcast Dialogue Styles & Prompt Studio" settings tab were dropped upon save due to omission from the AJAX options whitelist.
- Wired
PressHub_AI_News_Curator::generate_briefing_story()to consultPressHub_AI_Settings_Storage::get_curation_prompt().
PressHub AI Co-Pilot v2.3.2
What's Changed
- fix(podcast): presenter persona alignment, SFX stitching isolation, 30-voice catalog & logging rationalization by @eeftychiou in #117
Full Changelog: v2.3.1...v2.3.2
PressHub AI Co-Pilot v2.3.1
PressHub AI v2.3.1 Release Notes
Summary
Release v2.3.1 fixes a critical model cascade precedence bug where legacy per-type options silently shadowed configured Provider Store default models on older/migrated instances. In addition, this release introduces comprehensive diagnostic resolution logging and provenance tracking across the entire briefing and podcast pipeline.
What's Changed
- fix(api): Inverted model cascade precedence in
PressHub_AI_API_Client::resolve_module_config()so that Provider Store records take precedence over legacy database options (presshub_ai_model_{type}andpresshub_ai_model). - feat(logger): Added resolution provenance tracking (
model_sourceandprovider_source) through all resolution branches. - feat(logger): Added structured
[API Client Resolution]log events topresshub-debug.log. - feat(curator): Added pre-dispatch resolution logging and attached provenance metadata to curation token logs.
- feat(podcast): Added pre-dispatch resolution logging and attached provenance metadata to podcast script token logs and script turn items.
- feat(debug): Enhanced prompt debug logs to output active resolution source tags in prompt config headers.
Pull Requests
PressHub AI Co-Pilot v2.3.0
What's Changed
🎙️ Speech AI & Voice Settings
- Clean English Voice Dropdown Labels: Stripped Greek transliteration suffixes (
/ <Greek>) from all Gemini voices acrossgemini-2.5andgemini-3.1catalogs. All voice dropdowns now cleanly display pure English names with descriptors (e.g.Kore (Warm, Crystal Clear & Articulate - Default),Fenrir (Bold, Strong & Authoritative - Default)). - Surfaced Voice Generation AI Model Field: Added the
Voice Generation AI Model(presshub_ai_briefing_tts_model) table row in Section 2 of the Daily Briefing Settings tab, allowing operators to directly configure and view their speech synthesis model override, or leave empty to inherit the Speech AI Provider's default.
🛡️ Elimination of Silent Hardcoded Fallbacks (Zero-Silent-Fallback Principle)
- Zero-Silent-Fallback in Speech Generation: Removed the hardcoded
$model = 'gemini-3.1-flash-tts-preview';fallback from API client model resolution and removed unconfigured multi-model retry cascades insynthesize_speech_via_gemini(). - Explicit Diagnostic Errors: When no valid TTS model is configured or if model is
'journey', the engine now immediately logs anERRORand returns a cleanWP_Error(missing_tts_model), alerting operators to configure a TTS model rather than executing unconfigured shadow models. - Modernized Provider Defaults: Updated default Gemini model in
PressHub_AI_Provider_Defaultsfrom deprecatedgemini-1.5-pro-latestto moderngemini-2.5-flash.
Full Changelog: v2.2.9...v2.3.0
What's Changed
- fix(tts): clean voice dropdown labels and eliminate hardcoded TTS model fallbacks (Fixes #113) by @eeftychiou in #114
Full Changelog: v2.2.9...v2.3.0
PressHub AI Co-Pilot v2.2.9
What's Changed
- fix(workflow): recognize [SPEAKER_N]: / [HOST_N]: tags in parse_script_turns() (Fixes #102) by @eeftychiou in #103
- docs(agents): update test count to 70, document remote branch retention, and clarify visual inspection scope (Fixes #104) by @eeftychiou in #105
- fix(settings): persist unchecked checkboxes in per-tab AJAX save by @eeftychiou in #110
- feat(settings): reconnect podcast style selector and implement prompt studio (Fixes #108) by @eeftychiou in #111
- feat(settings): surface orphaned TTS payload logging and voice pitch controls (Fixes #109) by @eeftychiou in #112
Full Changelog: v2.2.8...v2.2.9
PressHub AI Co-Pilot v2.2.8
What's Changed
- docs(agents): enforce Logging-First Investigation Protocol across all four log layers by @eeftychiou in #101
Full Changelog: v2.2.7...v2.2.8
PressHub AI Co-Pilot v2.2.7
What's Changed
- fix(editor): refresh bounded-box title preview after Re-generate Text Story (Fixes #88) by @eeftychiou in #96
- test(integration): reconcile Issue #67 URL assertion with post-#43 model-resolution cascade (Fixes #98) by @eeftychiou in #99
- feat(workflow): engine-aware TTS voice catalog with Gemini dynamic discovery (Fixes #89) by @eeftychiou in #97
Full Changelog: v2.2.6...v2.2.7
PressHub AI Co-Pilot v2.2.6
What's Changed
- feat(workflow): make podcast dialogue prompt style-selectable, drop host-name placeholders (Fixes #90) by @eeftychiou in #95
Full Changelog: v2.2.5...v2.2.6