Commit Graph

53 Commits

Author SHA1 Message Date
Peter Steinberger
77d9ac30bb refactor: reuse shared coercion helpers (#86419)
* refactor: share talk event metric extraction

* refactor: reuse shared coercion helpers

* refactor: reuse shared primitive guards

* refactor: reuse shared record guard

* refactor: reuse shared primitive helpers

* refactor: reuse shared string guards

* refactor: reuse shared non-empty string guard

* refactor: share plugin primitive coercion helpers

* refactor: reuse plugin coercion helpers

* refactor: reuse plugin coercion helpers in more plugins

* refactor: reuse channel coercion helpers

* refactor: reuse monitor coercion helpers

* refactor: reuse provider coercion helpers

* refactor: reuse core coercion helpers

* refactor: reuse runtime coercion helpers

* refactor: reuse helper coercion in codex paths

* refactor: reuse helper coercion in runtime paths

* refactor: reuse codex app-server coercion helpers

* refactor: reuse codex record helpers

* refactor: reuse migration and qa record helpers

* refactor: reuse feishu and core helper guards

* refactor: reuse browser and policy coercion helpers

* refactor: reuse memory wiki record helper

* refactor: share boolean coercion helpers

* refactor: reuse finite number coercion

* refactor: reuse trimmed string list helpers

* refactor: reuse string list normalization

* refactor: reuse remaining string list helpers

* refactor: reuse string entry normalizer

* refactor: share sorted string helpers

* refactor: share string list normalization

* test: preserve command registry browser imports

* refactor: reuse trimmed list helpers

* refactor: reuse string dedupe helpers

* refactor: reuse local dedupe helpers

* refactor: reuse more string dedupe helpers

* refactor: reuse command string dedupe helpers

* refactor: dedupe memory path lists with helper

* refactor: expose string dedupe helpers to plugins

* refactor: reuse core string dedupe helpers

* refactor: reuse shared unique value helpers

* refactor: reuse unique helpers in agent utilities

* refactor: reuse unique helpers in config plumbing

* refactor: reuse unique helpers in extensions

* refactor: reuse unique helpers in core utilities

* refactor: reuse unique helpers in qa plugins

* refactor: reuse unique helpers in memory plugins

* refactor: reuse unique helpers in channel plugins

* refactor: reuse unique helpers in core tails

* refactor: reuse unique helper in comfy workflow

* refactor: reuse unique helpers in test utilities

* refactor: expose unique value helper to plugins

* refactor: reuse unique helpers for numeric lists

* refactor: replace index dedupe filters

* refactor: reuse string entry normalization

* refactor: reuse string normalization in plugin helpers

* refactor: reuse string normalization in extension helpers

* refactor: reuse string normalization in channel parsers

* refactor: reuse string normalization in memory search

* refactor: reuse string normalization in provider parsers

* refactor: reuse string normalization in qa helpers

* refactor: reuse string normalization in infra parsers

* refactor: reuse string normalization in messaging parsers

* refactor: reuse string normalization in core parsers

* refactor: reuse string normalization in extension parsers

* refactor: reuse string normalization in remaining parsers

* refactor: reuse string normalization in final parser spots

* refactor: reuse string normalization in qa media helpers

* refactor: reuse normalization in provider and media lists

* refactor: reuse normalization for remaining set filters

* refactor: reuse normalization in policy allowlists

* refactor: reuse normalization in session and owner lists

* refactor: centralize primitive string lists

* refactor: reuse lowercase entry helpers

* refactor: reuse sorted string helpers

* refactor: reuse unique trimmed helpers

* refactor: reuse string normalization helpers

* refactor: reuse catalog string helpers

* refactor: reuse remaining string helpers

* refactor: simplify remaining list normalization

* refactor: reuse codex auth order normalization

* chore: refresh plugin sdk api baseline

* fix: make shared string sorting deterministic

* chore: refresh plugin sdk api baseline

* fix: align host env security ordering
2026-05-25 21:20:41 +01:00
zhang-guiping
63545693a0 fix(message-tool): normalize send body aliases (#84102) 2026-05-22 20:38:08 +01:00
Neerav Makwana
0a95e53602 fix(messages): strip unsupported citation markers (#85204) (thanks @neeravmakwana)
Co-authored-by: Neerav Makwana <261249544+neeravmakwana@users.noreply.github.com>
2026-05-22 12:33:03 +01:00
Peter Steinberger
8ac30279b3 fix: strip delivery function response leaks
Strip adjacent plural function-call/function-response XML on delivery paths while preserving prose examples.
2026-05-15 17:47:27 +01:00
Peter Steinberger
cf79689ca1 fix: strip attributed final tags
Fix Gemini/Gemma attributed and self-closing <final> tag leaks across sanitizer, reasoning cleanup, and embedded Pi streaming enforcement.\n\nProof posted in PR body: focused Vitest, formatting, diff check, real Google Gemini/OpenRouter/local Gemma live output.
2026-05-15 17:18:24 +01:00
Peter Steinberger
29b5563ccd fix: strip adjacent function response scaffolding (#82155)
Summary:
- Strip adjacent function_response workflow output after stripped XML tool-call scaffolding.
- Cover multiline, compact, dangling, chained, prose-like, and same-line-tail response forms.
- Add regression coverage for the production sanitizeUserFacingText path and the shared assistant-visible-text sanitizer.

Verification:
- node scripts/run-vitest.mjs src/shared/text/assistant-visible-text.test.ts src/agents/pi-embedded-helpers.sanitizeuserfacingtext.test.ts -- --reporter=verbose
- git diff --check origin/main...HEAD
- /Users/steipete/Projects/agent-scripts/skills/codex-review/scripts/codex-review --mode branch --base origin/main --full-access --output /tmp/codex-review-82155-rerun.txt --parallel-tests "node scripts/run-vitest.mjs src/shared/text/assistant-visible-text.test.ts src/agents/pi-embedded-helpers.sanitizeuserfacingtext.test.ts -- --reporter=verbose"
- GitHub Real behavior proof: https://github.com/openclaw/openclaw/actions/runs/25926897171
2026-05-15 16:48:33 +01:00
Peter Steinberger
b180b8ae48 fix: strip workflow function responses from replies 2026-05-15 09:57:44 +01:00
Peter Steinberger
7822c35339 test: align plain tool block stripping expectations 2026-05-09 04:41:45 -04:00
Peter Steinberger
9180173f9a fix: preserve exec event routing and sanitize tool XML 2026-05-02 09:16:11 +01:00
Peter Steinberger
b8a991a665 fix: strip heartbeat tool marker replies 2026-05-02 02:51:42 +01:00
Peter Steinberger
0ecda680c8 fix: strip legacy tool-call text from replies 2026-05-02 02:38:26 +01:00
Peter Steinberger
42d73fd955 refactor: remove dead private helpers 2026-05-01 06:55:26 +01:00
Peter Steinberger
34ec184dcb refactor: reuse shared dedupe helpers 2026-04-29 12:14:59 +01:00
Rubén Cuevas
652f34103a fix(whatsapp): sanitize tool XML and hide configured error text (#71830)
Merged via squash.

Prepared head SHA: 184d4a25e4
Co-authored-by: rubencu <4742789+rubencu@users.noreply.github.com>
Co-authored-by: mcaxtr <7562095+mcaxtr@users.noreply.github.com>
Reviewed-by: @mcaxtr
2026-04-29 01:43:25 -03:00
Peter Steinberger
c0ea89cfd2 fix(agents): recover unclosed reasoning-only replies 2026-04-27 12:45:11 +01:00
Peter Steinberger
8e14f5c749 fix(agents): drop malformed reasoning before orphan close tags 2026-04-27 12:06:37 +01:00
Peter Steinberger
f9181835e8 fix(agents): warn on fake local tool calls 2026-04-27 09:14:59 +01:00
Peter Steinberger
da55212c6e fix(lmstudio): promote bracketed tool calls 2026-04-27 08:38:53 +01:00
OfflynAI
78df859e15 fix: strip standalone <function> tool call tags from visible text (#67318) (thanks @joelnishanth)
* fix: strip standalone <function> tool call tags from visible text (#67093)

Models like Gemma emit tool calls as standalone <function> blocks with
nested <parameter> XML instead of wrapping them in <tool_call>. The
existing stripToolCallXmlTags only recognized tool_call, tool_result,
function_call, function_calls, and tool_calls — so bare <function> and
</function> tags leaked through to the user as raw syntax on Discord
and other channels.

Add "function" to TOOL_CALL_TAG_NAMES and extend the payload detection
for <function> tags to check XML payloads (not just JSON), matching the
same behavior already applied to <tool_call>. Other tag types keep the
more conservative JSON-only check to avoid stripping prose examples.

Made-with: Cursor

* Text: harden standalone <function> stripping

* fix: strip standalone <function> tool call tags from visible text (#67318) (thanks @joelnishanth)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-16 09:53:35 +05:30
Peter Steinberger
f6ed276f51 style: apply updated formatter output 2026-04-10 19:17:39 +01:00
MoerAI
a2fb063370 fix(text): strip Qwen-style XML tool call payloads from visible text (#63999) 2026-04-10 15:36:25 +01:00
Peter Steinberger
182d41d678 refactor: dedupe command config lowercase helpers 2026-04-07 20:57:03 +01:00
Peter Steinberger
80c8567f9d fix: resolve merge conflicts and preserve runtime test fixes 2026-04-06 22:46:33 +01:00
Peter Steinberger
2fef1ccbe7 fix: avoid leading spaces when stripping model tokens 2026-04-06 17:02:10 +01:00
Peter Steinberger
c63a4f0f13 refactor: share assistant visible text sanitizer profiles 2026-04-06 14:52:52 +01:00
Peter Steinberger
712479eea1 fix: unify assistant visible text sanitizers (#61729) 2026-04-06 14:44:09 +01:00
openperf
980439b9e6 fix(Gateway ): strip tool_call and tool_result XML blocks from assistant visible text 2026-04-06 14:44:09 +01:00
oliviareid-svg
7ff90c516a fix: strip leaked outbound tool-call scaffolding (#60619)
Co-authored-by: Frank Yang <frank.ekn@gmail.com>
2026-04-05 02:02:36 +08:00
Ayaan Zaidi
176ff18d18 fix: strip antml thinking tags 2026-04-02 14:28:54 +05:30
Jackjin
a0407c7254 fix(line): preserve underscores inside words in stripMarkdown (#47465)
Fixes #46185.

Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm test -- extensions/line/src/markdown-to-line.test.ts src/tts/prepare-text.test.ts

Note: `pnpm check` currently fails on unchanged `extensions/microsoft/speech-provider.test.ts` lines 108 and 139 on the rebased base, outside this PR diff.
2026-03-28 21:31:09 -05:00
Peter Steinberger
241748ae60 test: align code region fence slices 2026-03-28 11:48:13 +00:00
Peter Steinberger
aa33d585be fix: repair package contract and boundary drift 2026-03-28 11:40:40 +00:00
Ayaan Zaidi
a68bef42eb test: align code region fence slices 2026-03-28 14:34:01 +05:30
Peter Steinberger
a735a1a2d4 fix(text): handle fenced code fence termination 2026-03-28 08:34:18 +00:00
Peter Steinberger
48b2eb2604 test: fix media and channel regression expectations 2026-03-28 08:10:47 +00:00
Peter Steinberger
155915e7dc test: dedupe routing and text suites 2026-03-28 07:31:40 +00:00
Peter Steinberger
fef688fb7a test: dedupe utility and config suites 2026-03-28 00:26:55 +00:00
Vincent Koc
042669d8c8 refactor(plugins): finish provider and whatsapp cleanup 2026-03-22 19:13:25 -07:00
Vincent Koc
9b6f286ac2 refactor(channels): share route format and binding helpers 2026-03-20 09:30:34 -07:00
Peter Steinberger
9b590c9f67 test: tighten shared reasoning tag coverage 2026-03-13 21:47:33 +00:00
Peter Steinberger
ae5563dd18 test: tighten shared join and message content coverage 2026-03-13 21:46:20 +00:00
Peter Steinberger
73c2edbc0c test: tighten shared code region coverage 2026-03-13 21:42:07 +00:00
Peter Steinberger
2f82ade66f test: tighten assistant scaffolding coverage 2026-03-13 21:35:31 +00:00
Peter Steinberger
090c0c4b5d test: tighten shared text normalization coverage 2026-03-13 21:26:15 +00:00
Peter Steinberger
2192bb7eb5 test: add shared text and identity helper coverage 2026-03-13 20:24:35 +00:00
maweibin
09c68f8f0e add prependSystemContext and appendSystemContext to before_prompt_build (fixes #35131) (#35177)
Merged via squash.

Prepared head SHA: d9a2869ad6
Co-authored-by: maweibin <18023423+maweibin@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-05 13:06:59 -05:00
Vignesh Natarajan
e90429794a Web UI: strip relevant-memories scaffolding 2026-02-28 13:20:50 -08:00
Peter Steinberger
cd5f3fe0c1 test(config): consolidate env/include scenario coverage 2026-02-23 22:16:30 +00:00
Peter Steinberger
a32edf423b refactor(text): share code-region parsing for reasoning tags 2026-02-22 07:44:57 +00:00
Peter Steinberger
cc2ff68947 test: optimize gateway infra memory and security coverage 2026-02-21 21:44:50 +00:00