Skip to content

Releases: kianwoon/modelweaver

v0.3.73

15 Apr 04:29

Choose a tag to compare

What's New

🚀 Features & Improvements

  • Smart request routing — classify message content by complexity and route to the appropriate model tier automatically (#97)
  • Single-provider hedge skip — hedging disabled for single-provider chains, prevents rate-limit amplification (#231)
  • 408/504 retry with fresh pool — request timeout and server-unavailable now retry with a new connection pool (#231)
  • Transient error detection — detect and retry on transient errors in 400/413 response bodies (#230)
  • GET /v1/models endpoint — list available models from configured providers (#229)
  • Retry-After header support — respect provider rate-limit backoff for 429/503 responses (#228)
  • Streaming-only token speed — TTFB excluded from token-per-second calculations for accurate metrics (#227)
  • Per-model connection pools — each model gets its own HTTP/2 connection for TCP isolation (#186)
  • GOAWAY-aware retry — graceful HTTP/2 drain no longer marks pool as "failed" (#188)

🐛 Bug Fixes

  • Fix: correctly extract project names containing hyphens (#222)
  • Fix: include provider name in request logs and response headers (#221)
  • Fix: prevent launchd crash loop when dist/index.js is missing (#220)
  • Fix: suppress stdout log spam when daemon is already running (#219)

🔧 Dependency Updates

  • Bump undici from 8.0.0 to 8.0.2 (#226)
  • Bump hono from 4.12.10 to 4.12.12 (#212)
  • Bump @hono/node-server from 1.19.12 to 1.19.13 (#213)
  • Bump dotenv from 17.3.1 to 17.4.1 (#223)
  • Bump vitest from 4.1.2 to 4.1.4 (#225)
  • Bump @types/node from 25.5.0 to 25.5.2 (#224)

Full Changelog: v0.3.70...v0.3.73

v0.3.70

07 Apr 17:26

Choose a tag to compare

What's New

  • Zero-config first run — ModelWeaver auto-creates a default config at ~/.modelweaver/config.yaml on first run. Just set your API key and go — no wizard required
  • 30-Second Setup — README now shows a copy-paste quick start as the very first section
  • Better init wizard — success message now shows numbered next steps with env var commands
  • Startup hint — foreground mode prints the export commands needed to connect Claude Code
  • FAQ section — answers common first-run questions (API key, port conflict, verification)
  • GitHub repo polish — issue templates, PR template, CHANGELOG fixes, LICENSE copyright, branch cleanup

Installation

npm install -g @kianwoon/modelweaver
npx @kianwoon/modelweaver    # auto-creates config on first run
export ANTHROPIC_API_KEY=sk-ant-...
npx @kianwoon/modelweaver    # start the proxy

Full README

v0.3.69

07 Apr 11:07

Choose a tag to compare

What's New

Smart Request Routing (#97)

Classify request complexity by message content and automatically route to the appropriate model tier.

  • Keyword scoring classifier — regex patterns score request complexity, cumulative score >= threshold triggers tier override
  • Config-driven patterns — define your own classification rules per tier with custom scores
  • Graceful degradation — if classified tier has no providers, falls through to next tier down
  • Zero overhead when disabled — single boolean check, entire path skipped
  • Counter metrics — track tier1/tier2/passthrough counts in /api/metrics/summary
smartRouting:
  enabled: true
  escalationThreshold: 2
  patterns:
    "1":  # Best model for complex tasks
      - pattern: "architect|design system|from scratch"
        score: 3
    "2":  # Good model for moderate tasks
      - pattern: "explain|summarize|review"
        score: 2

Full Changelog: v0.3.67...v0.3.69

v0.3.67

07 Apr 00:27

Choose a tag to compare

Fixes

  • Session pool timer leakcloseAll() now clears the sweepTimer interval, preventing accumulated timers during hot-reload cycles (#194, #199)
  • Tauri GUI panic protection — replaced unsafe .unwrap() calls in setup with defensive if let + let _ =, preventing GUI crashes when the webview window isn't ready (#193, #200)
  • WS reconnect timer cleanup — clear stale reconnectTimer in WebSocket close handler to prevent dual polling (#195, #198)
  • Monitor exit handler — add defensive exit handler in SIGTERM/SIGINT to prevent double-signal crashes (#196, #197)

v0.3.66

06 Apr 09:33

Choose a tag to compare

Fixes

  • GOAWAY code 0 discrimination — graceful HTTP/2 drain no longer marks pool as "failed" (#188)
  • Configurable stale agent threshold — raised default from 10s → 30s, matching keepAliveTimeout to stop the evict→cold-start→slow-TTFB churn loop (#188)
  • TTFB retry cap — TTFB timeouts capped at 2 retries (vs 5 for socket errors), reducing worst-case from 360s to 180s per provider (#188)

v0.3.64

05 Apr 20:58

Choose a tag to compare

What's Changed

  • fix(proxy): respect configured ttfbTimeout as floor, not ceiling — adaptive TTFB was clamping user-configured timeouts down to observed p95, making ttfbTimeout effectively useless. Now the configured value is always respected as the minimum.