v0.3.0 — Smart Routing
Highlights
When AGENT_RUNTIME=both, the system now intelligently routes messages to Lambda or Fargate based on task characteristics.
Routing Rules
| Priority | Condition | Route | Reason |
|---|---|---|---|
| 1 | Fargate container Running | Fargate | Reuse (already paid for) |
| 2 | Message starts with /heavy or /fargate |
Fargate | User explicit request |
| 3 | Default | Lambda | Fast (1.35s), cheap ($0) |
| 4 | Lambda fails | Fargate (fallback) | Auto-retry with full runtime |
New Features
- Smart routing (
route-classifier.ts): Dynamic Lambda/Fargate selection based on task state and message hints - Fargate reuse: Running containers are reused instead of wasting them by routing to Lambda
- User hints:
/heavyand/fargatemessage prefixes explicitly request Fargate runtime - Lambda fallback: Automatic Fargate retry when Lambda invocation fails
Test Coverage
248 unit tests + 35 E2E tests = 283 total, all passing
🤖 Generated with Claude Code