Commit Graph

71 Commits (main)

Author SHA1 Message Date
PeninsulaInd c1b0ad73ca Fix job file creation: use t1_count for t2_count to avoid NoneType * int
Made-with: Cursor
2026-03-11 16:31:16 -05:00
PeninsulaInd 81cf55f2e7 Base T2 off of T1, some deletion of old stories 2026-03-11 12:13:52 -05:00
PeninsulaInd 785fc9c7ac Remove 5 dead test files referencing deleted/renamed modules
These tests import classes and functions that no longer exist:
- ContentGenerationService (renamed to ContentGenerator)
- ContentRuleEngine, ContentHTMLParser (rule_engine.py deprecated)
- ContentAugmenter (depends on dead rule_engine imports)
- get_domain_from_site (removed from site_page_generator)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 22:19:19 -06:00
PeninsulaInd 0c559654b4 Add --tier1-count flag to ingest-cora command
Allows overriding the default random 10-12 tier1 article count
when creating a job file during CORA ingestion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 22:07:44 -06:00
PeninsulaInd 6b0278afd4 Revert "Add --tier1-count flag to ingest-cora command"
This reverts commit fcacf06078.
2026-02-20 21:51:23 -06:00
PeninsulaInd 7753310afe Revert "Fix --tier1-count: pass parameter through to create_job_file_for_project"
This reverts commit c4c698978d.
2026-02-20 21:51:22 -06:00
PeninsulaInd c4c698978d Fix --tier1-count: pass parameter through to create_job_file_for_project
The previous commit referenced tier1_count inside
create_job_file_for_project without adding it as a parameter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:49:55 -06:00
PeninsulaInd fcacf06078 Add --tier1-count flag to ingest-cora command
Allows overriding the default random 10-12 T1 article count.
Usage: ingest-cora ... --tier1-count 5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:08:56 -06:00
PeninsulaInd ee03064716 add brands.json to repository 2026-01-21 16:24:16 -06:00
PeninsulaInd 4d3a78d255 added branded + anchor text with -bp flag 2026-01-21 16:23:29 -06:00
PeninsulaInd 3210dc5739 fixed branded anchor text import calculation logic 2026-01-17 14:28:53 -06:00
PeninsulaInd 6e2977c500 Add tier1 branded anchor text ratio flag to ingest-cora command
- Add --tier1-branded-ratio flag (default: 0.75) to ingest-cora command
- Prompt for branded anchor text when ratio is specified
- Generate explicit anchor_text_config in tier1 job with specified ratio
- Update documentation in CLI_COMMAND_REFERENCE.md, job-schema.md, and gui-planning.md
2026-01-16 15:53:07 -06:00
PeninsulaInd ba306b9e10 Bug fixes for S3 naming conventions. 2025-12-30 17:58:19 -06:00
PeninsulaInd 0748b29f7c Add S3 bucket discovery with auto-import and exclusion list support
- Add auto-import-all flag to discover_s3_buckets.py for bulk import
- Add bucket exclusion list (s3_bucket_exclusions.txt) to prevent re-importing manually added FQDN sites
- Add helper scripts for S3 site management (list, check, delete)
- Update README.md with comprehensive S3 bucket management documentation
- Add colinkri_processor.py for batch processing
- Various deployment and storage improvements
2025-12-30 16:57:51 -06:00
PeninsulaInd 3cd62e4135 Add CLI documentation, S3 scripts, and update deployment code 2025-12-29 12:51:59 -06:00
PeninsulaInd 56d7e4f642 Fix explicit anchor text to randomize term selection
Randomize anchor text list before trying terms so all explicit terms
are used across articles instead of always using the first term.
2025-12-20 10:01:38 -06:00
PeninsulaInd de21a22b72 Implement Story 8.1: Job-Level Anchor Text Control for T1 and T2+
- Add explicit anchor text mode support in AnchorTextConfig
- Support tier-specific anchor text terms at job-level (tier1, tier2, tier3, tier4_plus)
- Support tier-level explicit anchor text with 'terms' array
- Update content injection to prioritize explicit terms when mode is 'explicit'
- Add validation for explicit mode requiring term lists
- Update JOB_FIELD_REFERENCE.md with explicit mode documentation and examples
- Add comprehensive unit and integration tests for explicit anchor text

Includes multi-cloud storage migration script and related database changes.
2025-12-19 12:43:01 -06:00
PeninsulaInd a815cbcf3e Story 6.2: Implement AWS S3 Storage Client
- Add S3StorageClient class implementing StorageClient Protocol
- Support AWS S3 and S3-compatible services with custom endpoints
- Automatic bucket configuration for public read access only
- Content-type detection for uploaded files
- URL generation (default S3 URLs and custom domain support)
- Error handling for common S3 errors (403, 404, NoSuchBucket, etc.)
- Retry logic with exponential backoff (consistent with BunnyStorageClient)
- Update storage_factory to return S3StorageClient for 's3' and 's3_compatible'
- Add comprehensive unit tests with mocked boto3 calls (18 tests, all passing)

Implements Story 6.2 from Epic 6: Multi-Cloud Storage Support
2025-12-10 14:57:44 -06:00
PeninsulaInd 7e21482419 Add Epic 6: Multi-Cloud Storage Support planning and merge images branch changes 2025-12-10 11:37:56 -06:00
PeninsulaInd 62074cd995 Fix: Assign sites before generating images
- Move site assignment to occur immediately after article creation
- Generate images after site assignment so they can be uploaded
- Add assign_site_to_single_article() helper function
- Fixes issue where images were generated with site_deployment_id=None
2025-11-20 21:47:28 -06:00
PeninsulaInd be03594fc7 Implement PIL text overlay for hero images
- Add Pillow dependency for image processing
- Remove text instructions from fal.ai prompts (generate clean images)
- Add semi-transparent dark background box behind text for readability
- Overlay full title text with white text and black outline
- Add proper line spacing between text lines
- Fix FAL_KEY environment variable setup
- Add image URL logging to console output during batch processing
- Remove unused h2-prompts file
2025-11-19 17:28:26 -06:00
PeninsulaInd 8379313f51 Add image generation using fal.ai API
- Implement ImageGenerator class with hero and content image generation
- Add image theme prompt generation and caching
- Integrate with fal.ai flux-1/schnell API
- Add image upload to storage (Bunny CDN)
- Add image injection into HTML content
- Add test script for image generation
- Update database models and repositories for image fields
- Fix API usage: use arguments parameter and image_size object format
2025-11-19 17:09:20 -06:00
PeninsulaInd 01db5cc1c6 Add Epic 7 and Story 7.1: AI-powered image generation 2025-11-19 15:18:53 -06:00
PeninsulaInd d5c501f004 Remove job files from git tracking and update commands/prompts 2025-11-17 11:07:25 -06:00
PeninsulaInd 4710677614 Update outline generation prompt and remove test file 2025-11-12 10:22:17 -06:00
PeninsulaInd 04f10d6d26 Adds ability to quickly import without CORA- version 1.2 2025-11-03 10:07:35 -06:00
PeninsulaInd b0901b7dc7 Fixed- Adds the cannoical for real now - version 1.1.4 2025-11-03 08:20:59 -06:00
PeninsulaInd 14df158a7a Fixed checking for incomplete error from openrouter - version 1.1.3 2025-10-31 11:49:45 -05:00
PeninsulaInd de6b97dbc1 Pre-fix for checking for incomplete from openrouter - version 1.1.2 2025-10-31 11:11:28 -05:00
PeninsulaInd 5eef4fe507 Fixed concurrency and model changes at job level - version 1.1.0 2025-10-27 14:37:47 -05:00
PeninsulaInd d919ea25e1 Fix concurrent generation threading issues
- Fix SessionLocal import error by using db_manager.get_session()
- Create thread-local ContentGenerator instances for each worker
- Ensure each thread uses its own database session
- Prevents database session conflicts in concurrent article generation
2025-10-27 13:58:18 -05:00
PeninsulaInd 3ebef04ef0 modify word count to get in range for prompt - version 1.0.1 2025-10-27 13:12:30 -05:00
PeninsulaInd 25a83a5252 WORKING version 1.0.0 2025-10-24 12:50:24 -05:00
PeninsulaInd b29a3f3249 Fixed & Tested - Creates titles in batched of 25 for more diversity of ideas. 2025-10-24 11:24:27 -05:00
PeninsulaInd 083a8cacdd Fixed NOT TESTED: now actually listens to # of links. Also makes See Also smaller. 2025-10-23 15:37:31 -05:00
PeninsulaInd b168d33e2d Fixed: auto asks for money_site_url on script run if not provided 2025-10-23 13:27:12 -05:00
PeninsulaInd 26b6e75448 Fixed: throws error early on no money_site_rul set. 2025-10-23 12:53:06 -05:00
PeninsulaInd 3649e88f44 Fixed: Now listens to model selection in job.json file 2025-10-22 16:03:44 -05:00
PeninsulaInd a8393cdd96 Fixed: Now listens to model selection in job.json file 2025-10-22 15:34:36 -05:00
PeninsulaInd 90b56cf7bf Story 4.5 coded and tested 2025-10-22 14:19:59 -05:00
PeninsulaInd 77356c4191 Story 4.4 - simple check works 2025-10-22 13:46:14 -05:00
PeninsulaInd b3e35b0b4d Story 4.1-3 coded and real-world tested. Working 2025-10-22 13:04:03 -05:00
PeninsulaInd 8a382a1db4 Story 4.1 coded - pre real testing 2025-10-22 12:19:25 -05:00
PeninsulaInd a17ec02deb Story 3.4 writen and qa 2025-10-21 19:15:02 -05:00
PeninsulaInd f466cf5f3f Story 3.4 generated with corrected logic and data storage 2025-10-21 18:59:26 -05:00
PeninsulaInd de9c015afd Story 3.4 generated by scrum manager 2025-10-21 14:58:11 -05:00
PeninsulaInd ee66d9e894 Story 3.3: QA fixed cli integration 2025-10-21 14:28:18 -05:00
PeninsulaInd b7405d377e Story 3.3: QA says all of epic 3 isnt in batch_processor.py, pre fix 2025-10-21 13:51:38 -05:00
PeninsulaInd 787b05ee3a Story 3.2: QA passed: Link tier strategy implemented 2025-10-21 11:06:08 -05:00
PeninsulaInd 87bf317207 Story 3.2: Link tier strategy implemented 2025-10-21 10:56:35 -05:00