Skip to content

fix: permissive mode perf, remove Pollinations, enforce policy#16

Merged
seanfromthepast merged 3 commits intomainfrom
fix/permissive-perf-and-enforcement
Mar 12, 2026
Merged

fix: permissive mode perf, remove Pollinations, enforce policy#16
seanfromthepast merged 3 commits intomainfrom
fix/permissive-perf-and-enforcement

Conversation

@realityinspector
Copy link
Collaborator

Summary

  • Dramatically reduce permissive mode latency (10min → ~2min): reorder model preferences (DeepSeek R1 last), batch dialog in permissive mode, skip critique loop, default max_tokens=2048
  • Remove Pollinations entirely: all image generation routes through OpenRouter (2-tier fallback: Google → OpenRouter)
  • Enforce permissive policy: reject proprietary models (OpenAI, Anthropic, Google Gemini) with 422 when model_policy="permissive", auto-select open-weight image models via registry

Test plan

  • model_policy=permissive generates in ~2min instead of timing out at 600s
  • Explicit proprietary model + permissive policy returns 422
  • Image generation works via OpenRouter when permissive
  • Non-permissive requests unaffected (Google fallback still works)
  • pytest -m fast passes

- Default max_tokens=2048 when model_policy=permissive and no preset
- Use batch dialog (1 LLM call) instead of sequential (7 calls)
- Skip critique loop in permissive mode (saves 1-8 calls)
- Block Google fallback in permissive mode (correctness: stay Google-free)
- Reorder model preference to prioritize fast non-thinking models
  (DeepSeek R1 moved to last resort — its 30-60s/call caused timeouts)
Remove Pollinations.ai as image provider. All image generation now
routes through OpenRouter or Google native. Permissive mode uses
OpenRouter for images (Google-free). Simplifies fallback chain from
3-tier (Google -> OpenRouter -> Pollinations) to 2-tier (Google ->
OpenRouter).
…weight image models

- Validate explicit text_model/image_model against PERMISSIVE_PREFIXES
  when model_policy=permissive. Returns 422 for proprietary models
  (OpenAI, Anthropic, Google Gemini).
- Add is_model_permissive() helper for reuse across validation and
  registry filtering.
- Add permissive_only param to get_best_image_model() and
  get_image_fallback_model() — skips Gemini/proprietary image models.
- Permissive image model selection now prefers open-weight models from
  the OpenRouter registry instead of defaulting to Gemini.
@seanfromthepast seanfromthepast merged commit aae2b9e into main Mar 12, 2026
1 of 3 checks passed
realityinspector pushed a commit that referenced this pull request Mar 15, 2026
…cement

fix: permissive mode perf, remove Pollinations, enforce policy
@realityinspector realityinspector deleted the fix/permissive-perf-and-enforcement branch March 15, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants