Depend on typed provider ports
Depend on typed provider ports instead of provider response shapes, making fallback replaceable at adapter boundaries.
User-controlled Chrome side-panel extension for drafting replies from pasted or selected LinkedIn posts, refining writing, and keeping every publish action manual.

Writing a useful LinkedIn reply or post requires understanding the visible conversation while preserving the author's own voice, intent, and control.
LinkedIn page content is untrusted and must be bounded before entering prompts.
OpenRouter, Gemini, and Groq keys are all required so the fixed free-only route can fall back without asking during a writing task.
Extension permissions, encrypted local storage, and retention/export behavior must remain understandable to the user.
LinkedIn content scripts plus manual pasted-post input; React side-panel workflows; typed drafting/source-research ports with free OpenRouter-first routing and Gemini/Groq fallback; encrypted browser storage, migrations, backup/export, and Manifest V3 permissions.
LinkedIn content scripts/extraction plus bounded manual pasted-post input.
React side-panel workflows.
Typed drafting/source-research ports with curated free OpenRouter models, bounded provider timeouts, and Gemini/Groq fallback.
Encrypted browser storage, migrations, backup/export, and Manifest V3 permissions.
Depend on typed provider ports instead of provider response shapes, making fallback replaceable at adapter boundaries.
Use a bounded, validated untrusted-content envelope to reduce prompt-injection/data-sprawl risk.
Ask for permissions when a capability needs them rather than upfront, trading workflow branching for user control.

Share your challenge, scope, and timeline to start a focused conversation.