Commit Graph

25 Commits (6e2977c5002f3938cc3b7a4321565a19f8688ae7)

Author SHA1 Message Date
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 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 7e21482419 Add Epic 6: Multi-Cloud Storage Support planning and merge images branch changes 2025-12-10 11:37:56 -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 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 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 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 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 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
PeninsulaInd ee573fb948 Story 3.2 written 2025-10-21 10:34:11 -05:00
PeninsulaInd 7a9346635b Story 2.4 html formatting simple solution 2025-10-20 16:43:31 -05:00
PeninsulaInd 19e1c93358 Resolve merge conflicts - choose newer implementations 2025-10-20 11:43:33 -05:00
PeninsulaInd ef62ecf852 Passed initial test, generates an entire article 2025-10-20 11:35:02 -05:00
PeninsulaInd 0069e6efc3 Story 2.2 - rule engine finished 2025-10-18 20:52:53 -05:00
PeninsulaInd da797c21a1 Story 1.6 finished - added sync 2025-10-18 12:24:58 -05:00
PeninsulaInd 8641bcae45 Complete Epic 1 Stories 1.1-1.3: Foundation, Database, and Authentication
Story 1.1: Project Initialization & Configuration
- Set up monorepo structure with Python application
- Configured .env.example with all required environment variables
- Implemented JSON configuration file parsing (master.config.json)
- Initialized project dependencies in requirements.txt

Story 1.2: Database Setup & User Model
- Implemented SQLite database connection with SQLAlchemy
- Created User model with username, hashed_password, and role fields
- Implemented Repository Pattern for data access layer
- Created database initialization script (scripts/init_db.py)
- Added database session management
- User model supports Admin and User roles with is_admin() helper

Story 1.3: User Authentication System
- Implemented AuthService with secure password hashing (bcrypt)
- Added hash_password() and verify_password() methods
- Implemented authenticate_user() for credential validation
- System correctly identifies user roles (Admin/User)
- Authentication fails gracefully for invalid credentials
- Added comprehensive unit tests (10 tests)
- Added integration tests with database (5 tests)
- All 15 tests passing

Technical improvements:
- Database-agnostic design using Repository Pattern
- Secure password hashing with bcrypt
- Proper separation of concerns across layers
- Type hints throughout codebase
- Comprehensive test coverage
2025-10-18 00:20:07 -05:00