Releases: link-assistant/agent
[js] 0.8.21
fix: make toModelMessage async for AI SDK 6.0 compatibility
The AI SDK 6.0 changed convertToModelMessages() from synchronous to asynchronous,
which caused "Spread syntax requires ...iterable[Symbol.iterator] to be a function"
errors when spreading the result.
Changes:
- Make MessageV2.toModelMessage async and await convertToModelMessages
- Update all callers in prompt.ts, compaction.ts, summary.ts to await
Fixes #155
Related Pull Request: #156
[js] 0.12.1
Fix explicit provider/model routing for Kilo provider
When users specify an explicit provider/model combination like kilo/glm-5-free, the system now correctly uses that provider instead of silently falling back to the default (opencode).
-
Add resolveShortModelName() to route short model names to providers
-
Add parseModelWithResolution() for model string parsing with resolution
-
Modify prompt.ts to throw error instead of falling back on explicit provider
-
Add getAlternativeProviders() for rate limit fallback on shared models
-
Document free model distribution between OpenCode and Kilo
-
ed7f9fc: fix: Time-based retry for rate limits at fetch level
Implement custom fetch wrapper to handle HTTP 429 (rate limit) responses at the HTTP layer,
ensuring the agent's time-based retry configuration is respected instead of the AI SDK's
fixed retry count (3 attempts).
Changes:
- Add RetryFetch wrapper that intercepts 429 responses before AI SDK's internal retry
- Parse retry-after and retry-after-ms headers from server responses
- Use exponential backoff when no header is present (up to 20 minutes per retry)
- Respect AGENT_RETRY_TIMEOUT (default: 7 weeks) as global timeout
- Add AGENT_MIN_RETRY_INTERVAL (default: 30 seconds) to prevent rapid retry attempts
- Retry network errors (socket/connection issues) with exponential backoff
- Compose with existing custom fetch functions (OAuth, timeout wrappers)
This fixes the issue where the AI SDK exhausted its 3 retry attempts before the agent's
retry logic could wait for the server's retry-after period (e.g., 64 minutes).
Fixes #167
Related Pull Request: #166
[js] 0.12.0
Add Kilo Gateway provider with free models support
- Add Kilo Gateway provider with 6 free models (GLM-5, GLM 4.7, Kimi K2.5, MiniMax M2.1, Giga Potato, Trinity Large Preview)
- GLM-5 is the flagship free model with 202K context window
- OpenAI-compatible API at https://api.kilo.ai/api/gateway
- No API key required for free models
- Add comprehensive documentation for Kilo Gateway usage
Related Pull Request: #160
[js] 0.11.0
Add --generate-title flag and enhanced retry logic with exponential backoff
- Add
--generate-titleCLI option (disabled by default) to save tokens on title generation - Implement retry with exponential backoff up to 20 minutes per retry, 7 days total timeout
- Add
--retry-timeoutoption to configure maximum retry duration (default: 7 days) - Respect retry-after headers from API responses
- Add jitter to prevent thundering herd on retries
- Track retry state per error type (different errors reset the timer)
Related Pull Request: #158
[js] 0.10.1
Release 0.10.1
[js] 0.10.0
Add Qwen Coder OAuth subscription support
- Add QwenPlugin and AlibabaPlugin to auth plugins with OAuth device flow
- Support Qwen Coder subscription via OAuth (device flow) with free tier
- Add token refresh support for automatic credential renewal
- Add custom provider loaders for qwen-coder and alibaba in provider.ts
- Both "Qwen Coder" and "Alibaba" menu items available in auth login
Patch Changes
- 7ffcf71: fix: display CLI help text on stdout instead of stderr
When running agent auth without a subcommand, the help text was displayed
on stderr, causing it to appear in red in many terminals. Help text is
informational and should go to stdout, following the industry standard
behavior of CLI tools like git, gh, and npm.
Related Pull Request: #25
[js] 0.8.20
Fix process name to show as 'agent' instead of 'bun' in top/ps using platform-specific system calls
The previous fix using process.title/process.argv0 did not work in Bun because Bun does not implement the process.title setter. This fix uses Bun's FFI to call prctl(PR_SET_NAME) on Linux and pthread_setname_np on macOS, which correctly sets the kernel-level process name visible in top, ps, and htop.
Related Pull Request: #151
[js] 0.8.19
Fix crash when providers return undefined usage data. Handle AI SDK TypeError for input_tokens gracefully and upgrade AI SDK to v6.0.1 which includes upstream fix. Also ensure unhandled rejections exit with code 1 instead of code 0.
Related Pull Request: #153
[js] 0.8.18
Improve ProviderModelNotFoundError with helpful suggestions for OpenRouter models when provider is not found
Related Pull Request: #137
[js] 0.8.17
Fix ZodError in session processor when tool execution fails
- Change tool error status from 'failed' to 'error' in processor.ts to match ToolStateError Zod schema
- Fix cleanup loop to use 'error' status consistently with the discriminated union definition
- Update event-handler.js to check for 'error' status instead of 'failed'
- Add case study analysis for issue #149 documenting root cause and fix
Related Pull Request: #150