dropthejase puts all of Louis's AI on a single AWS pipeline

The fork rips out bring-your-own-key and bets the whole stack on Amazon's managed AI service.

infrastructureintegration

dropthejase has torn out Louis's old arrangement - which split AI traffic between two different model providers - and rebuilt it to run entirely through Amazon Bedrock, AWS's managed service for hosting large language models. Everything now flows down one path, with no fallback to anything else.

The most visible change is for the people using it: the account page no longer asks anyone to paste in their own API keys. That section is gone, replaced by a plain model picker offering two review options. The models themselves run in AWS's EU region, and the team has switched on caching to trim cost and lag on repeat work.

So what Anyone weighing Louis for their own shop should note it's now an AWS-only deployment - you'll need Bedrock access in Europe to run it at all.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

11 commits from dropthejase/louis, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
7141961f feat(backend): add bedrock.ts - Converse API streaming adapter with tool use Jason Lee 2026-05-06 ↗ GitHub
b8759cb4 feat(backend): models.ts - Bedrock model IDs, drop Gemini refs Jason Lee 2026-05-06 ↗ GitHub
7a89da2a feat(backend): llm router - all calls through Bedrock, drop Gemini path Jason Lee 2026-05-06 ↗ GitHub
c945aa8d chore(backend): types.ts - remove Gemini provider, simplify UserApiKeys Jason Lee 2026-05-06 ↗ GitHub
3e4f3da9 feat(frontend): model selector - Claude only, 3 tiers, no API key gating Jason Lee 2026-05-06 ↗ GitHub
commit body
Replace Gemini/Claude dual-provider model list with 3 Claude-only Bedrock
models. Remove API key gating from ModelToggle (apiKeys prop now a no-op).
Simplify modelAvailability.ts to getModelLabel + always-true shims.
Remove API Keys section from account/models page. Fix Amplify Storage
credential provider config (Auth.credentialsProvider not Storage.S3).
Fix streamChat/streamProjectChat signatures to match existing call sites
in useAssistantChat.ts (keep chat_id, map to chatId in payload).

a63265b8 Restore tabular model preference (Bedrock model list) Jason Lee 2026-05-08 ↗ GitHub
Users can select Sonnet or Haiku for tabular review in account settings.
Stored in user_profiles.tabular_model, read per-request in tabular routes.
Gemini options replaced with Bedrock-only models.
310bb912 chore: remove dead code (claude.ts, gemini.ts, R2 storage.ts) Jason Lee 2026-05-08 ↗ GitHub
claude.ts and gemini.ts are unused - all LLM calls route through
bedrock.ts. frontend/src/lib/storage.ts is the old Cloudflare R2
client, replaced by frontend/src/lib/aws/storage.ts.
f9fa4f4c feat(agents): enable prompt caching on Bedrock model Jason Lee 2026-05-11 ↗ GitHub
70bff1e3 fix: use correct EU cross-region inference profile IDs for Claude opus and sonnet Jason Lee 2026-05-11 ↗ GitHub
792e54ef fix(iam): use wildcard foundation-model ARN for Bedrock invoke permissions Jason Lee 2026-05-11 ↗ GitHub
11fd6b2d fix(iam): add bedrock:CountTokens to Bedrock policy statements Jason Lee 2026-05-15 ↗ GitHub

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-329.md from inside the repo you want the changes in.

⬇ Download capture-thread-329.md