- Removed stray </p> tag that was corrupting the system prompt
- Restored full HTML template (was abstractly described before, AI had to guess)
- Kept strict no-chat rules: no greetings, no filler, data only
- System prompt rewritten: strict no-chat rules, immediate search
- Leads search moved to its own block outside SEO if-scope (fixes TS)
- Status shows "Finding leads..." instead of "Searching for SEO context"
- Search context instructs AI to extract leads and output [PREVIEW:leads:html]
Major changes:
- Plan-first workflow: AI generates structured plan before code, with
plan review card (Modify Plan / Start Coding / Skip to Code)
- Post-coding UX: Preview + Request Modifications buttons after code gen
- OpenRouter integration: 4th AI provider with 20+ model support
- Enhanced prompt engine: 9 strategies, 11+ intent patterns, modular
- PLAN MODE system prompt block in all 4 services
- Fixed stale React closure in approveAndGenerate with isApproval flag
- Fixed canvas auto-opening during plan phase with wasIdle gate
- Updated README, CHANGELOG, .env.example, version bump to 1.3.0