1.16.0 (2026-03-24)
Features
- add build pipeline for npm publishing, remove runtime Bun dependency (4f62897)
- add proxyOverheadMs metric to telemetry (5c573b1)
- add proxyOverheadMs metric to telemetry (049063e), closes #104
- add request debug logging for tool loop visibility (0051d60)
- add session resume support for conversation continuity (c40ff63)
- add telemetry dashboard with request performance tracking (def290f)
- add telemetry dashboard with request performance tracking (79c04a2), closes #81
- Claude Max proxy for OpenCode (b9df612)
- clear error messages for auth failures and SDK crashes (4e21e9a)
- concurrency control, auto-restart supervisor, error handling (318ca75)
- Docker support and README install options (cfb8396)
- Docker support and README install options (d61670e), closes #15
- enable 1M context window for Opus models (e23afba)
- enable concurrent requests for subagent support (Phase 3) (34452a3)
- error classification, health endpoint, and startup auth check (43a80f1)
- export TypeScript declarations from dist (cd06761)
- forward tool_use blocks to clients (Phase 1) (6042cd7)
- fuzzy match agent names for reliable subagent delegation (fec9516)
- fuzzy match agent names to fix invalid subagent_type values (5364124)
- multimodal content support (images, documents, files) (0e6fc7a)
- multimodal content support (images, documents, files) (bc072cb)
- passthrough mode for multi-model agent delegation (4836a48)
- passthrough mode for multi-model agent delegation (a74ced9), closes #21
- per-terminal proxy launcher and shared session store (836102c)
- per-terminal proxy launcher and shared session store (d2ace88)
- PreToolUse hook for reliable subagent delegation (01df852)
- register OpenCode tools as MCP tools in passthrough mode (e683539)
- register SDK agent definitions from OpenCode's Task tool (afa480f)
- remove internal MCP tools, use maxTurns: 1 (Phase 2) (a740574)
- restore MCP tool federation for multi-turn agent sessions (099a830)
- session resume support for conversation continuity (1e98be0)
- transparent API proxy with full tool execution and subagent support (96be81c)
- true concurrent SDK sessions (no serialization) (6dd5aa0)
- use PreToolUse hook for agent name correction (replaces stream hacks) (7cb37b6)
- validate passthrough architecture concept (deed3db)
Bug Fixes
- add NPM_TOKEN to publish workflow (8339bb0)
- add SSE heartbeat to prevent connection resets (194fd51)
- add SSE heartbeat to prevent connection resets (ec7120d), closes #1
- add workingDirectory to fingerprint hash for cross-project isolation (69cfa1a), closes #111
- allow configuring MCP tool working directory via env var (b4d7d74)
- block all Claude Code-only tools in passthrough mode (92fbe7b), closes #35
- block Claude Code-only tools in passthrough mode (c06d1ea), closes #35
- block CLAUDE_CODE_ONLY_TOOLS in normal (non-passthrough) mode (54839b2)
- block CLAUDE_CODE_ONLY_TOOLS in normal (non-passthrough) mode (46be89a)
- block SDK built-in tools, enforce MCP-only tool execution (ca1f8e1)
- block SDK tools with schema-incompatible OpenCode equivalents (5bfd10f)
- concurrent requests with auto-restart supervisor (1a8f695)
- deduplicate message_start/stop events in multi-turn streaming (23a0044), closes #20
- deduplicate streaming events for cleaner multi-turn responses (b98b2dd)
- deduplicate tool_use blocks in streaming passthrough mode (f8238b9)
- deduplicate tool_use blocks in streaming passthrough mode (0007887), closes #69
- deny Task tool retries via canUseTool callback (8b1a8b0)
- detect conversation divergence (undo/edit) via lineage hashing (ced5819)
- detect conversation divergence (undo/edit) via lineage hashing (a09558a), closes #86
- deterministically normalize agent names in task tool_use blocks (64133e1)
- disable all tools in Claude Code sessions (7fab74c)
- Docker auth persistence and non-root user (afa18f7)
- Docker auth persistence and non-root user (c4f58a6), closes #15
- export TypeScript declaration files from distFix/types export (3a50c93)
- filter MCP tool events from stream, forward only client-facing tools (18a0280)
- include mcpTools.ts in published package files (10d8ee8)
- include mcpTools.ts in published package files (5039707)
- include src/plugin/ in published package files (799e29e)
- include system prompt context in proxy requests (948b8fb)
- increase session TTL to 24 hours, verified end-to-end (181a5fe)
- inject agent type hints to prevent capitalization errors (172dca1)
- make tsconfig.json optional in Docker COPY to prevent build failure (9526f54)
- make tsconfig.json optional in Docker COPY to prevent build failure (fe61ebf), closes #70
- mock Date.now in pruning test to prevent CI failure (5ca8653)
- mock Date.now in pruning test to prevent flaky CI failure (ea56c74)
- move npm publish into release-please workflow (82db07c)
- move npm publish into release-please workflow (f7c4b2c)
- npm publish with automation token (230b185)
- only block tools with no OpenCode equivalent (cc73e9e), closes #35
- only send new messages on resume, not full history (b1e101b)
- only send new messages on resume, not full history (5dcbae3), closes #49
- optimize docker-compose with lightweight init and dedup config (a737190)
- optimize Dockerfile with multi-stage build and node:22-slim runtime (679ceef)
- pass OpenCode system prompt via SDK appendSystemPrompt (1375a7e)
- pass OpenCode system prompt via SDK appendSystemPrompt (9ff630c), closes #74
- pass system prompt via appendSystemPrompt instead of merging into prompt (2b55399)
- pass systemContext to storeSession for consistent fingerprinting (055b025)
- pass systemContext to storeSession for consistent fingerprinting (617530d)
- pass working directory to SDK for correct system prompt (c0a3120)
- pass working directory to SDK query for correct system prompt (d7bfc42), closes #18
- prevent cross-project session contamination in fingerprint cache (93ef050)
- prevent empty/failed streaming responses in OpenCode proxy (da170e7)
- prevent env var loop and MCP server transport reuse with SDK >=0.2.81 (b20dfee)
- prevent env var loop and MCP server transport reuse with SDK >=0.2.81 (b3f3ad6)
- proxy: add LRU eviction to bound session cache growth (661f007)
- proxy: add LRU eviction to bound session cache growth (93d7959)
- proxy: convert blocking execSync calls to async (fb79545)
- proxy: convert blocking execSync calls to async (e59637f)
- queue concurrent streaming requests to avoid ~60s delay (fb30a48)
- queue concurrent streaming requests to avoid ~60s delay (054dd2c)
- remove bun install from publish job (966b2ea)
- remove bun install from publish job (cd36411)
- remove duplicate cleanup timer and stop re-throwing in error event handler (ae7404a)
- remove Hono type leak from public API and fix exports (1764596)
- remove mock.module leak that breaks session store tests (576bbe2)
- remove mock.module leak that breaks session store tests (795fade)
- replace time-based session TTL with durable count-bounded storage (121e82d)
- replace time-based session TTL with durable count-bounded storage (71b2cc7), closes #99
- replace ubuntu base image with multi-stage node:22 build to fix Docker build failures (1702a15)
- resolve Claude executable path and enable true SSE streaming (d95bacb)
- resolve UID mismatch between claude user and docker-compose init volume (b8da7b4)
- resolve UID mismatch between claude user and docker-compose init volume (7e353ad)
- restore concurrency queue, idle timeout, and Docker crash recovery (7270b47)
- restore MCP tools with bypassPermissions for correct tool execution (d25e45d)
- revert to Bun.serve, document known concurrent crash (ecbaec2)
- run MCP tools in the caller project directory (25767ea)
- session-store: add file locking and error logging (b996a81)
- session-store: add file locking for concurrent access safety (10c9a3c)
- show friendly error message when port is already in use (7b9d96a), closes #16
- skip system context and assistant messages on resume (1698713)
- stabilize fingerprint resume by removing volatile systemContext and normalizing content format (3256aac)
- stabilize fingerprint resume by removing volatile systemContext and normalizing content format (be88868), closes #111
- trigger npm publish with token (c603363)
- update runCli test mock to match ProxyInstance shape (29429f2)
- update SDK and fix streaming to filter tool_use blocks (ae4d7ea)