feat: v0.2.1 — fix encryption, diverse multi-topic generation, UX fixes
- Rewrite encryption with "enc:" prefix to permanently eliminate the double-encryption bug on settings save - Add one-time migration to clear legacy non-prefixed encrypted values - Rewrite content analyzer prompts to request N distinct diverse topics across 5 categories (question, complaint, comparison, news, guide) - Pass target_count*2 from pipeline to analyzer for headroom - Add skip_dedup flag so manual Generate Now always produces content - Generate Now button now sends force=1 to clear stale locks - Rename OpenRouter provider files to PSR-4 convention (hyphenated) - Switch default models to google/gemini-2.5-flash-lite - Clean up reddit_debug log channel to standard 'reddit' - Bump version to 0.2.1 Cost: ~$0.003/article with Gemini 2.0 Flash, ~34s pipeline. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,22 @@ class PRAutoBlogger_Pipeline_Runner {
|
||||
*
|
||||
* @throws \RuntimeException If budget is exceeded or critical step fails.
|
||||
*/
|
||||
/** @var bool Whether to skip duplicate-topic detection (used for manual runs). */
|
||||
private bool $skip_dedup = false;
|
||||
|
||||
/**
|
||||
* Allow manual runs to skip the has_similar_post() check so "Generate Now"
|
||||
* always produces content even when a related article was recently published.
|
||||
*
|
||||
* @param bool $skip True to skip deduplication.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function set_skip_dedup( bool $skip ): self {
|
||||
$this->skip_dedup = $skip;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function run(): array {
|
||||
$cost_tracker = new PRAutoBlogger_Cost_Tracker();
|
||||
|
||||
@@ -49,12 +65,15 @@ class PRAutoBlogger_Pipeline_Runner {
|
||||
$collector->collect_from_all_sources();
|
||||
|
||||
// Step 2: Analyze collected data for patterns.
|
||||
// Pass a generous target so the LLM returns enough diverse ideas for
|
||||
// scoring to pick from — ask for 2× the daily target so dedup has room.
|
||||
$llm = new PRAutoBlogger_OpenRouter_Provider();
|
||||
$analyzer = new PRAutoBlogger_Content_Analyzer( $llm, $cost_tracker );
|
||||
$analysis = $analyzer->analyze_recent_data();
|
||||
$analysis = $analyzer->analyze_recent_data( max( $target_count * 2, 6 ) );
|
||||
|
||||
// Step 3: Score and deduplicate ideas.
|
||||
$scorer = new PRAutoBlogger_Idea_Scorer();
|
||||
$scorer->set_skip_dedup( $this->skip_dedup );
|
||||
$ideas = $scorer->score_and_rank( $analysis, $target_count );
|
||||
|
||||
if ( empty( $ideas ) ) {
|
||||
|
||||
Reference in New Issue
Block a user