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