Claude Code errors when setting config options to "auto". Strip "auto"
values from config options returned to frontend and skip set requests
with "auto" value for Claude Code agent.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add split button with dropdown in commit dialog supporting both
"Commit" and "Commit and Push" actions
- Pass folderId through gitCommit/gitPush API calls so backend emits
events that the folder window can receive for toast notifications
- Update Tauri git_commit and git_push commands to accept folder_id
parameter with window label fallback for cross-window compatibility
- Wrap commit page with GitCredentialProvider for push authentication
- Keep commit window open when push fails so user can see the error
- Add i18n translations for all 10 locales
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move PTY spawn from context layer to view layer so event subscription
happens before spawn, preventing loss of initial terminal output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Generate QR code server-side when iLink API returns SPA page URL
(added qrcode + image crates for PNG generation)
- Strip bot_token from frontend response (new WeixinQrcodeStatusPublic type)
- Add request timeouts and shared HTTP client for QR code endpoints
- Fix TOCTOU race on reply_context double-lock (single lock scope)
- Extract do_send() helper to deduplicate sendmessage logic; resend now
checks ret field for context expiry instead of HTTP status only
- Cap pending_messages buffer at 50 to prevent unbounded memory growth
- Generate stable X-WECHAT-UIN per backend instance instead of per request
- Extract ILINK_CHANNEL_VERSION constant (was hardcoded in 4 places)
- Add 5-minute client-side QR expiry timeout in frontend dialog
- Track consecutive polling errors and show warning after 3 failures
- Stabilise onAuthSuccess/onClose callback refs to prevent polling restarts
- Replace dead i18n key weixinOpenQrcode with weixinPollError
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Filter messages by message_type=1 to skip bot echo and prevent loops
- Add voice message support (type=3) with voice-to-text extraction
- Check resend results and re-buffer failed messages to prevent loss
- Handle session expiry (ret=-14) with 30s pause in polling loop
- Use exponential backoff (5s–30s) for network errors instead of fixed 5s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Display specific file paths, commands, and patterns in tool call messages
instead of generic titles (e.g. ">> Read: src/main.rs")
- Show tool call details only on completion to ensure raw_input availability
- Enrich permission request messages with tool details from rawInput
- Localize stop_reason in turn_complete messages for all 10 languages
- Fix UTF-8 byte-slice panic in format_completion for multi-byte content
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>