zeroclaw/src
Argenis 84470a2dd2
fix(agent): strip vision markers from history for non-vision providers (#3734)
* fix(agent): strip vision markers from history for non-vision providers

When a user sends an image via Telegram to a non-vision provider, the
`[IMAGE:/path]` marker gets stored in the JSONL session file. Previously,
the rollback only removed it from in-memory history, not from the JSONL
file. On restart, the marker was reloaded and permanently broke the
conversation.

Two fixes:
1. `rollback_orphan_user_turn` now also calls `remove_last` on the
   session store so the poisoned entry is removed from disk.
2. When building history for a non-vision provider, `[IMAGE:]` markers
   are stripped from older history messages (and empty turns are dropped).

Fixes #3674

* fix(agent): only strip vision markers from older history, not current message

The initial fix stripped [IMAGE:] markers from all prior_turns including
the current message, which caused the vision check to never fire. Now
only strip from turns before the last one (the current request), so
fresh image sends still get a proper vision capability error.
2026-03-16 16:25:45 -04:00
..
agent feat(cache): wire two-tier response cache, multi-provider token tracking, and cache analytics 2026-03-16 12:44:48 -04:00
approval fix(security): enforce approval policy for channel-driven runs 2026-03-15 15:56:57 -04:00
auth feat: stabilize codex oauth and add provider model connectivity workflow 2026-02-24 16:03:01 +08:00
channels fix(agent): strip vision markers from history for non-vision providers (#3734) 2026-03-16 16:25:45 -04:00
config fix(config): add serde default for cli field in ChannelsConfig (#3720) 2026-03-16 14:21:51 -04:00
cost fix(agent): parse MiniMax tool call formats for execution 2026-02-21 12:36:28 +08:00
cron fix(lint): Box::pin crate::agent::run calls to satisfy large_futures (#3675) 2026-03-16 00:54:27 -04:00
daemon fix(daemon): ignore SIGHUP to survive terminal/SSH disconnect (#3721) 2026-03-16 14:21:59 -04:00
doctor feat: stabilize codex oauth and add provider model connectivity workflow 2026-02-24 16:03:01 +08:00
gateway feat(tools): add project delivery intelligence tool (#3656) 2026-03-16 02:10:14 -04:00
hands feat(hands): add autonomous knowledge-accumulating agent packages (#3603) 2026-03-15 16:06:14 -04:00
hardware Addressed clippy lint issues 2026-03-10 01:48:19 -04:00
health refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
heartbeat feat(heartbeat): add health metrics, adaptive intervals, and task history 2026-03-16 12:08:32 -04:00
hooks feat(hooks): add webhook-audit builtin hook (#3212) 2026-03-11 23:34:17 -04:00
integrations feat(install): branded one-click installer with secure pairing flow (#3471) 2026-03-14 07:33:14 -04:00
memory feat(cache): wire two-tier response cache, multi-provider token tracking, and cache analytics 2026-03-16 12:44:48 -04:00
nodes feat(nodes): add secure HMAC-SHA256 node transport layer (#3654) 2026-03-16 01:53:47 -04:00
observability feat(cache): wire two-tier response cache, multi-provider token tracking, and cache analytics 2026-03-16 12:44:48 -04:00
onboard feat(cache): wire two-tier response cache, multi-provider token tracking, and cache analytics 2026-03-16 12:44:48 -04:00
peripherals fix(build): unblock strict 32-bit no-default-features builds (#3375) 2026-03-13 15:45:03 -04:00
providers feat(providers): close AiHubMix, SiliconFlow, and Codex OAuth provider gaps (#3730) 2026-03-16 15:48:27 -04:00
rag chore(lint): extend low-risk clippy cleanup batch 2026-02-17 16:40:58 +08:00
runtime feat(tools): add Windows support for shell tool_call execution (#3442) 2026-03-13 17:12:16 -04:00
security feat(security): add MCSS security operations tool (#3657) 2026-03-16 02:28:54 -04:00
service fix(service): headless browser works in service mode (systemd/OpenRC) (#3645) 2026-03-15 19:16:36 -04:00
skillforge chore: Remove blocking read strings 2026-02-19 14:52:29 +08:00
skills Addressed clippy lint issues 2026-03-10 01:48:19 -04:00
sop fix(web): call doctor endpoint with authenticated POST 2026-02-24 16:02:59 +08:00
tools fix(security): validate command before rate-limiting in cron once (#3699) (#3719) 2026-03-16 14:21:45 -04:00
tunnel feat(tunnel): add OpenVPN tunnel provider (#3648) 2026-03-16 00:34:34 -04:00
identity.rs test: cover deterministic HashMap ordering paths 2026-02-18 21:55:40 +08:00
lib.rs feat(nodes): add secure HMAC-SHA256 node transport layer (#3654) 2026-03-16 01:53:47 -04:00
main.rs feat(tools): add project delivery intelligence tool (#3656) 2026-03-16 02:10:14 -04:00
migration.rs readd tests, remove markdown files 2026-02-18 14:42:39 +08:00
multimodal.rs fix(agent): strip vision markers from history for non-vision providers (#3734) 2026-03-16 16:25:45 -04:00
util.rs fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00