100 Commits
Author SHA1 Message Date
zhayujie d2a72a3cbf Merge pull request #3832 from c020627/fix-linkai-bounded-download
fix(linkai): cap the file download in the LinkAI sender
2026-10-25 10:44:27 +08:00
zhayujie 1f98478572 Merge pull request #3822 from rudycelekli/fix/claude-stream-error-event
fix(claude): surface mid-stream error events instead of ending the reply silently
2026-10-25 10:44:22 +08:00
zhayujie 2863e966f5 Merge pull request #3828 from c020627/fix-dingtalk-media-tmp-cleanup
fix(dingtalk): clean up outbound media temp files
2026-10-25 10:44:17 +08:00
zhayujie e1bb1276b7 Merge pull request #3815 from rudycelekli/voice-tmp-leak
fix(voice): stop leaking inbound voice recordings when wav conversion fails
2026-10-25 10:44:11 +08:00
zhayujie 536c76c9b7 Merge pull request #3812 from rudycelekli/fix/update-status-corrupt-worker-pid
fix(update): tolerate a corrupt worker_pid in the in-progress guard
2026-10-25 10:44:05 +08:00
zhayujie d188174934 Merge pull request #3808 from rudycelekli/fix/scheduler-run-output-identity-20261021
fix(scheduler): correlate delivered output with its exact run
2026-10-25 10:44:00 +08:00
zhayujie 41f2e111f8 Merge pull request #3809 from rudycelekli/fix/web-message-mutation-ack-20261021
fix(web): preserve chat history when deletion fails
2026-10-25 10:43:54 +08:00
zhayujie 968a68b5f5 Merge pull request #3805 from rudycelekli/fix/registered-workspace-preview-20261021
fix(web): serve artifacts from registered agent workspaces
2026-10-25 10:43:49 +08:00
zhayujie 8b8bb53008 Merge pull request #3827 from rudycelekli/fix/gemini-function-response-object
fix(gemini): send non-object tool results as an object in functionResponse
2026-10-25 10:43:43 +08:00
zhayujie ad42e1241c Merge pull request #3826 from rudycelekli/fix/dashscope-steer-text
fix(dashscope): keep steering text sent alongside tool results
2026-10-25 10:43:38 +08:00
zhayujie adc9668858 Merge pull request #3825 from rudycelekli/fix/zhipu-steer-text
fix(zhipuai): keep steering text sent alongside tool results
2026-10-25 10:43:33 +08:00
zhayujie 82a17af50b Merge pull request #3823 from c020627/fix-cloud-client-data-root
fix(cloud): save the cloud-pushed config to the data root
2026-10-25 10:43:28 +08:00
zhayujie 26be412aa4 Merge pull request #3810 from rudycelekli/fix/file-observations-by-conversation-20261021
fix(files): keep file-read observations within their conversation
2026-10-25 10:43:23 +08:00
zhayujie 5b95b3d1c6 Merge pull request #3806 from rudycelekli/fix/compressed-image-orientation-20261021
fix(images): preserve display orientation when compressing images
2026-10-25 10:43:18 +08:00
zhayujieandcowagent d921681b4f fix: copy files sent from outside the workspace so the web console can show them
The send tool now copies files outside the home dir and workspace (e.g. /tmp)
into <workspace>/tmp/ before delivering them. The web console only serves
files under those roots, and system temp dirs get purged, so such images
showed up broken both live and in history.

Images that still fail to load now render a short "image unavailable" note
with the file name instead of a broken icon.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-24 23:15:48 +08:00
zhayujieandcowagent 2b54d3e6a6 feat: allow disabling web search providers without clearing credentials
- Add tools.web_search.disabled_providers; disabled providers are skipped by
  auto selection, the fixed-provider picker and the tool's provider enum.
- Web console: each available provider chip gets an x to disable it; disabled
  ones stay as grey chips and re-enable on click. Saving a new key re-enables.
- Clearing a model vendor credential now also drops the copy mirrored into
  os.environ at startup, so the provider really disappears from search.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-24 23:15:48 +08:00
zhayujieandcowagent eb4bc3545a fix: stop tracking the local preview signing key
The key is generated per installation on first start and must stay local.
Removing it from the repository lets existing checkouts regenerate a fresh one.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-24 13:20:32 +08:00
zhayujieandcowagent 3129c2b56b fix: keep original file name when sending files on more channels
Use reply.file_name for file uploads on Feishu, DingTalk, WeCom bot and
WeChat KF; WeChat KF now also downloads remote file URLs before upload.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-23 18:37:05 +08:00
zhayujie fcab462e70 Merge pull request #3817 from 6vision/fix/weixin-file-name
fix(weixin): keep original file name and type when sending files
2026-10-23 18:15:56 +08:00
zhayujieandcowagent d50bfa7943 fix: improve weixin QR login reliability
- Stop QR login on terminal states instead of looping, and report the error
- Follow status redirects and refresh expired codes per the latest protocol
- Add optional weixin_proxy for QR login, falling back to direct on failure

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-22 20:36:07 +08:00
zhayujieandcowagent 90f8bb6307 fix: ignore node_modules symlinks as well as directories
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-22 20:04:02 +08:00
zhayujie c316874ab8 Merge pull request #3783 from rudycelekli/fix/local-delegation-timeout-20261017
fix(delegate): honor the configured local run deadline
2026-10-22 19:55:44 +08:00
zhayujieandcowagent a87edcf642 fix: skip rendering off-screen messages in desktop chat to keep typing smooth
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-22 19:40:06 +08:00
zhayujie 3279c6a13a Merge pull request #3804 from rudycelekli/fix/context-boundary-sequence-20261021
fix(memory): keep new messages beyond cleared context boundary
2026-10-22 19:18:43 +08:00
zhayujie 45a715d817 Merge pull request #3803 from rudycelekli/fix/manual-tts-message-binding-20261021
fix(voice): bind manual speech to the clicked message version
2026-10-22 19:18:37 +08:00
zhayujie 0dbf703d64 Merge pull request #3801 from rudycelekli/fix/workspace-concurrent-saves-20261020
fix(workspace): reject conflicting concurrent console saves
2026-10-22 19:18:31 +08:00
zhayujie 1a2fc4c174 Merge pull request #3800 from rudycelekli/fix/log-unwritable-data-fallback-20261020
fix(log): keep console fallback when data directory is unwritable
2026-10-22 19:18:24 +08:00
zhayujie bf182bbe7f Merge pull request #3799 from rudycelekli/fix/atomic-fallback-encoding
fix: preserve existing files when fallback encoding fails
2026-10-22 19:18:17 +08:00
zhayujie 247aacf45b Merge pull request #3794 from rudycelekli/fix/read-oversized-line-recovery
fix(read): recover oversized lines at the requested offset
2026-10-22 19:18:10 +08:00
zhayujie f893867eff Merge pull request #3787 from ningyixi/fix/docx-inline-content-controls
fix: preserve inline Word content control values
2026-10-22 19:18:04 +08:00
zhayujieandcowagent 1df569ca1e fix: make session title generation survive model failures and session switches
- Retry title generation on the configured chat fallback chain when the
  primary model fails, instead of falling back to the first user line.
- Web console requests the title once the first message is accepted, so a
  session left mid-reply still gets titled.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-22 19:14:28 +08:00
zhayujieandcowagent 906b918f26 fix: skip rendering off-screen chat messages to keep typing smooth in long sessions
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-22 12:32:14 +08:00
zhayujieandcowagent 0e8c541a61 fix: avoid no-op class writes that wake Tailwind runtime on typing and scrolling
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-22 11:53:24 +08:00
zhayujieandcowagent 20522e870b feat: add MiMo speech recognition and migrate chat models to V2.6
- Add mimo-v2.5-asr voice-to-text and list MiMo in the ASR card
- Switch defaults to mimo-v2.6-pro / mimo-v2.6-flash; retired ids are mapped automatically
- Update docs

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-21 20:52:48 +08:00
zhayujieandcowagent 07eecca33a feat: allow suggestion cards to send attachments
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-21 19:33:10 +08:00
zhayujieandcowagent ee2dc05217 fix: adapt multiline python -c spill to the merged rewrite
Keep the merged rewrite (chains, redirections and cd prefixes stay
supported) and fold in the improvements from this PR: CRT backslash
unescaping, a hex-encoded loader path, the <string> traceback filename
and CR-only line breaks. Also write the temp file without newline
translation so CRLF code is not doubled on Windows.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-21 17:21:45 +08:00
zhayujie 5e5680f617 Merge branch 'master' into fix/windows-multiline-python-20261021
# Conflicts:
#	agent/tools/bash/bash.py
2026-10-21 17:18:58 +08:00
zhayujieandcowagent 478603f23f feat: let a product name the built-in default agent
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-21 17:13:40 +08:00
zhayujie a40c7564e6 Merge branch 'fix/windows-bash-chcp-nonblocking' 2026-10-21 16:41:00 +08:00
zhayujieandcowagent 06ab32a151 fix: run multi-line python -c through a temp file on Windows
cmd.exe ends a command at the first line feed, so multi-line python -c
code was silently cut to its first line. Spill the code into a temp file
and load it back via exec() under -c, keeping sys.path[0] as the cwd.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-21 16:39:49 +08:00
zhayujie 1f5b3dd7d2 Merge branch 'master' of https://github.com/zhayujie/CowAgent 2026-10-21 16:33:01 +08:00
zhayujieandcowagent 78fdaffb45 feat: let a suggestion card send a message with a separate display text
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-21 16:20:32 +08:00
zhayujie c690a03194 Merge pull request #3792 from zkjqd/fix/web-chat-burst-render-freeze
fix: stop chat freezing when a reply arrives in one burst
2026-10-20 18:34:55 +08:00
zhayujieandcowagent af7c622302 fix: parse files and locale-wrapped body in Feishu post messages
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-20 10:07:57 +08:00
zhayujieandcowagent 49db276722 feat(desktop): add show-in-folder button to chat workspace preview
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-19 20:08:41 +08:00
zhayujieandcowagent cd6c04e855 feat(chat): align scroll-to-bottom button with composer and auto-load history
- Move the scroll-to-bottom button to the right, aligned with the composer
  card's right edge, and shrink it to 32px (web and desktop)
- Web: load earlier messages automatically when the reader scrolls near
  the top, replacing the "Load earlier messages" button

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-19 11:15:25 +08:00
zhayujie 39d53c4afb Merge branch 'master' into pr-3785 2026-10-19 10:44:12 +08:00
zhayujie b25001c3b0 Merge pull request #3786 from ningyixi/fix/docx-block-content-controls
fix: retain block content controls when reading Word documents
2026-10-19 10:09:41 +08:00
zhayujieandcowagent 987a61ca6f feat: make DeepSeek the default search provider with a base/key editor
- Put deepseek first in the web_search provider order; it is enabled
  automatically once deepseek_api_key is configured
- Search settings open a simple Base URL + API Key dialog for deepseek
  in both the web console and desktop app
- Drop the dedicated search key fallback and update docs/tests

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-18 17:57:45 +08:00
zhayujie 6e68a5be41 Merge pull request #3774 from anshlakhera048/feat/web-https-reverse-proxy
feat: support HTTPS domains and nginx reverse proxy for the web console
2026-10-18 17:25:10 +08:00
zhayujie 1e863fa41b Merge pull request #3776 from anshlakhera048/feat/deepseek-search-fetch
feat: add DeepSeek Search and Fetch API support
2026-10-18 17:24:51 +08:00
zhayujie 4bc020d51a Merge pull request #3709 from rudycelekli/fix/cow50-cli-daemon-detach-stdin-20261012
fix(cli): detach standard input when starting the background service
2026-10-18 17:24:33 +08:00
zhayujie a152644896 Merge pull request #3754 from rudycelekli/fix/cow-net-new-skill-config-save-errors-20261013
fix(skills): report failed enable/disable and restore the previous choice
2026-10-18 17:24:18 +08:00
zhayujie a031743199 Merge pull request #3784 from rudycelekli/fix/web-config-save-transaction-20261017
fix(web): preserve running settings when a config save fails
2026-10-18 17:23:42 +08:00
zhayujie 642d2a2cf7 Merge pull request #3769 from c020627/fix-chrome-launcher-pid-probe-timeout
fix(browser): give the win32 pid probe a timeout and an except
2026-10-18 16:52:48 +08:00
zhayujie 4addbbe563 Merge pull request #3748 from rudycelekli/fix/cow-net-new-workspace-agent-fallback-20261013
fix(web): keep system-file fallbacks in the requested agent workspace
2026-10-18 16:52:43 +08:00
zhayujie 217df8123f Merge pull request #3782 from rudycelekli/fix/cow-scheduler-operation-status-20261017
fix(scheduler): report rejected operations as failed calls
2026-10-18 16:52:38 +08:00
zhayujie 1990d263d6 Merge pull request #3781 from rudycelekli/fix/cow-mcp-transport-failure-status-20261017
fix: report MCP transport failures as failed tool calls
2026-10-18 16:52:35 +08:00
zhayujie f49531e7a1 Merge pull request #3780 from rudycelekli/fix/cow-logger-stdout-ownership-20261017
fix: preserve stdout ownership when resetting logger
2026-10-18 16:52:32 +08:00
zhayujie 66e74bb03e Merge pull request #3779 from rudycelekli/fix/cow-bash-line-truncation-log-20261017
fix: preserve complete Bash output after line truncation
2026-10-18 16:52:29 +08:00
zhayujie 690295e38e Merge pull request #3778 from rudycelekli/fix/cow-backup-file-modes-20261017
fix: preserve executable skill permissions on restore
2026-10-18 16:52:25 +08:00
zhayujie 7f856b3ee1 Merge pull request #3777 from rudycelekli/fix/cowagent-net-new-20261017
fix: read merged Word table cells once
2026-10-18 16:52:22 +08:00
zhayujie 41653aff17 Merge pull request #3773 from rudycelekli/fix/excel-used-range-20261016
fix: read XLSX cells beyond stale worksheet dimensions
2026-10-18 16:52:18 +08:00
zhayujie edb622fdad Merge pull request #3772 from rudycelekli/fix/cow-grep-path-filter-20261016
fix(search): honor directory filters without ripgrep
2026-10-18 16:52:14 +08:00
zhayujie ab17e24a27 Merge pull request #3770 from rudycelekli/fix/cow-fuzzy-leading-newline-20261016
fix(edit): preserve fuzzy block indentation after outer newlines
2026-10-18 16:52:10 +08:00
zhayujieandcowagent e518e552d3 fix: keep direct HTTPS only and move the deployment guide to the docs
Drop the forwarded-header middleware (nothing in the console reads the
rewritten scheme/host/IP) and web_external_url (mcp_oauth_redirect_base
already covers the OAuth callback). Skip HTTPS under the desktop shell,
which loads the console over plain http. Document nginx and direct HTTPS
in the en/zh/ja web channel pages, including the upload size limit.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-18 16:46:34 +08:00
zhayujieandcowagent 24c99e521c fix: keep existing search routing and respect deepseek_api_base
Append DeepSeek after the other keyed providers so users with another
search provider keep their routing, build the Search/Fetch endpoints from
deepseek_api_base, align the key lookup order, keep document URLs on the
local parser, and use the DeepSeek label in Chinese.

Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-18 16:43:26 +08:00
zhayujieandcowagent 8e3e1177eb fix: keep the channel list annotation compatible with Python 3.7
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-18 16:41:35 +08:00
zhayujieandcowagent 9f73ca9160 fix: simplify enabled-state rollback in set_skill_enabled
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-18 16:41:33 +08:00
zhayujieandcowagent fa376c1b16 fix: use a plain lock and trim comments in config save
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-18 16:41:30 +08:00
zhayujie 2c0c6c4e6f Merge remote-tracking branch 'origin/master' into pr-3709 2026-10-18 16:40:25 +08:00
zhayujieandcowagent d802eabaf6 fix: avoid duplicate web chat history when artifact indexing fails
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 17:17:26 +08:00
zhayujie 8b7c32681c Merge branch 'master' of https://github.com/zhayujie/CowAgent 2026-10-16 17:14:25 +08:00
zhayujie 60e2f27f3c Merge pull request #3724 from rudycelekli/fix/cow50-browser-snapshot-selector-20261012
fix(browser): scope snapshots to the requested selector
2026-10-16 17:12:15 +08:00
zhayujie 325b9b4c7e Merge pull request #3712 from rudycelekli/fix/cow50-vision-empty-completion-20261012
fix(vision): fall back after an empty completion
2026-10-16 17:12:08 +08:00
zhayujie dfaa53e8af Merge pull request #3714 from rudycelekli/fix/cow50-voice-identical-text-filenames-20261012
fix(voice): isolate output files for repeated identical speech
2026-10-16 17:12:00 +08:00
zhayujie a54eea60fb Merge pull request #3705 from rudycelekli/fix/cow50-search-anonymous-opt-in-20261012
fix(search): require explicit anonymous provider opt-in
2026-10-16 16:42:09 +08:00
zhayujie 84ca2d0169 Merge pull request #3710 from rudycelekli/fix/cow50-minimax-tts-partial-error-20261012
fix(voice): reject MiniMax audio streams that finish with an API error
2026-10-16 16:37:37 +08:00
zhayujie 7e53bf16cc Merge pull request #3690 from rudycelekli/fix/cow50-skill-metadata-booleans-20261012
fix(skills): normalize metadata boolean flags
2026-10-16 16:37:27 +08:00
zhayujie 2046e9a2da Merge pull request #3687 from rudycelekli/fix/cow50-cli-pid-permission-alive-20261012
fix(cli): retain process IDs when signal permission is denied
2026-10-16 16:36:58 +08:00
zhayujie c0d6e5bb37 Merge pull request #3702 from rudycelekli/fix/cow50-responses-failed-status
fix(openai): surface failed Responses objects as provider errors
2026-10-16 16:36:23 +08:00
zhayujie e4794f2e92 Merge pull request #3764 from rudycelekli/fix/discord-bound-inbound-attachment-size-20261014
fix(discord): refuse oversized inbound attachments before downloading
2026-10-16 16:35:32 +08:00
zhayujie f1ee381b9d Merge pull request #3753 from rudycelekli/fix/cow-net-new-skill-replacement-rollback-20261013
fix(skills): preserve installed skills during replacement failures
2026-10-16 16:35:09 +08:00
zhayujie 44c9accf54 Merge pull request #3760 from c020627/fix-skills-confirm-display-fields
fix(web): keep the registry's presentation fields on skill confirm
2026-10-16 16:32:18 +08:00
zhayujie ca1ee3ed39 Merge pull request #3738 from c020627/fix-team-mention-boundary
fix(team): treat sentence-ending punctuation as an @mention boundary
2026-10-16 16:31:17 +08:00
zhayujie 1967fb51d2 Merge pull request #3767 from xiao115255/fix/context-usage-survives-restart
fix: keep the context-usage chart after a restart
2026-10-16 16:31:05 +08:00
zhayujieandcowagent d8d2f66365 feat: raise default agent context to 200k tokens, 100 steps, 30 turns
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 16:20:08 +08:00
zhayujieandcowagent 9d4cfeb201 fix: share the anonymous search opt-in parsing between the tool and the console
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 16:02:34 +08:00
zhayujieandcowagent 80418d5da6 fix: report permission errors from cow stop instead of claiming success
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 16:01:40 +08:00
zhayujieandcowagent 0a4a83a620 fix: keep numeric skill metadata flags truthy as before
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 16:01:12 +08:00
zhayujieandcowagent f5871fbd4e fix: use unique tts output filenames for the remaining voice vendors
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 16:00:42 +08:00
zhayujieandcowagent 28870bc502 fix: keep minimax status_msg in the stream error log and drop the dead branch
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 15:59:35 +08:00
zhayujieandcowagent f9c1ad6489 fix: raise OpenAIHTTPError for failed Responses in the chat-completion helper
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 15:59:11 +08:00
zhayujieandcowagent 631c9dc0fd fix: mention snapshot scoping in the browser selector description
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 15:58:36 +08:00
zhayujieandcowagent 99f34d19f2 fix: keep list-shaped vision content from compatible gateways
Co-authored-by: cowagent <cow@cowagent.ai>
2026-10-16 15:58:36 +08:00
zhayujie bef38a7a04 Merge remote-tracking branch 'origin/master' into pr-3705 2026-10-16 15:56:57 +08:00
zhayujie 6db491fedf Merge remote-tracking branch 'origin/master' into pr-3690 2026-10-16 15:56:56 +08:00
zhayujie 7a9a57541c Merge remote-tracking branch 'origin/master' into pr-3687 2026-10-16 15:56:55 +08:00
zhayujie 40e09406f1 Merge remote-tracking branch 'origin/master' into pr-3724 2026-10-16 15:56:53 +08:00
zhayujie 62557a2270 Merge remote-tracking branch 'origin/master' into pr-3712 2026-10-16 15:56:52 +08:00