Joey Krug
eb59b9c19d
fix: trailing body match and RawBody-missing extraction detection ( #46454 )
2026-03-20 18:57:32 -04:00
Joey Krug
8f6d5a278f
fix: use file-block-safe replacement in normalizeUpdatedBody and trailing fallback ( #46454 )
2026-03-20 18:57:32 -04:00
Joey Krug
dc8cdfce5c
fix: address Codex and Greptile review comments on #46454
...
Replace regex-based file extraction detection (FILE_BLOCK_RE.test) with a
DeferredFileBlocksExtracted mutation marker on FollowupMediaContext. The old
approach scanned user body text for '<file name=' patterns, which could
false-positive on literal user messages. The new approach compares Body
against RawBody (never mutated by the primary path) to detect file extraction,
then stores a boolean marker for subsequent checks.
Fixes 2 & 4 (linked):
- Added DeferredFileBlocksExtracted marker to FollowupMediaContext type
- Mutation detection uses RawBody (not CommandBody) as reference to avoid
false-positives when /think directives differ between Body and CommandBody
- snapshotUpdatedMediaContext propagates the marker via appliedFile
Fixes 1, 3, 5, 6 were already addressed by prior commits on this branch.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 18:57:32 -04:00
Joey Krug
0ca772166f
Auto-reply: fix followup media prompt rebuild
2026-03-20 18:57:32 -04:00
Joey Krug
f890bc75dc
fix: address remaining review feedback on followup media
...
- Scope file-block stripping to body region only, preserving file blocks
in quoted/replied text and thread history above the body
- Gate file-extraction skip on mutation evidence (Body differs from
resolved original) instead of raw '<file name=' text matching to avoid
false-positives on user messages containing literal XML
- Document collect-mode scope limitation in applyDeferredMediaUnderstandingToQueuedRun
- Rename duplicate test description to distinguish body-alongside-text case
- Prefer updated prompt over original summaryLine in overflow summaries
so captioned voice note transcripts are surfaced
2026-03-20 18:56:37 -04:00
Joseph Krug
ad0a1bdc5e
Update src/auto-reply/reply/followup-runner.test.ts
...
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-20 18:56:37 -04:00
Joey Krug
f1e023c3de
fix: set DeferredMediaApplied on error and strip old file blocks on rebuild
2026-03-20 18:56:37 -04:00
Joey Krug
7973b2cc5b
Reply: preserve deferred queued media context
2026-03-20 18:56:37 -04:00
Joey Krug
5e0330db6c
Auto-reply: preserve deferred media understanding output
2026-03-20 18:55:54 -04:00
Joey Krug
67e90527e1
fix: narrow FILE_BLOCK_RE, align originalBody, check body not prompt
2026-03-20 18:55:54 -04:00
Joey Krug
be3eec46e2
fix: rebuild queued followup media prompts
2026-03-20 18:55:54 -04:00
Joey Krug
6edb3b7e34
fix queued media-understanding prompt rebuild
2026-03-20 18:55:54 -04:00
Joey Krug
3bf55561cb
fix: apply media understanding to followup-queued messages ( #44682 )
...
Voice notes arriving while the agent is mid-turn were queued as
followup messages without audio transcription. The followup runner
called runEmbeddedPiAgent directly, bypassing applyMediaUnderstanding.
This adds a mediaContext field to FollowupRun that snapshots the
original message's media fields. Before the agent run, the followup
runner checks whether media understanding was applied. If not (empty
MediaUnderstanding), it calls applyMediaUnderstanding and rebuilds the
prompt with the transcript, matching the primary path's formatting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 18:55:53 -04:00
Vincent Koc
e635cedb85
test(openai): cover bundle media surfaces
2026-03-20 15:53:12 -07:00
Vincent Koc
d54ebed7c8
test(openai): add plugin entry live coverage
2026-03-20 15:53:12 -07:00
Vincent Koc
d1d46c6cfb
test(openai): broaden live model coverage
2026-03-20 15:53:12 -07:00
Vincent Koc
f1802a5bc7
test(openai): add live provider probe
2026-03-20 15:53:12 -07:00
Sally O'Malley
6e20c4baa0
feat: add anthropic-vertex provider for Claude via GCP Vertex AI ( #43356 )
...
Reuse pi-ai's Anthropic client injection seam for streaming, and add
the OpenClaw-side provider discovery, auth, model catalog, and tests
needed to expose anthropic-vertex cleanly.
Signed-off-by: sallyom <somalley@redhat.com>
2026-03-20 18:48:42 -04:00
Vincent Koc
42ca447189
test(openrouter): add live plugin coverage
2026-03-20 15:36:34 -07:00
Peter Steinberger
fac64c2392
test: widen unit timing snapshot coverage
2026-03-20 22:33:49 +00:00
Peter Steinberger
39a4fe576d
test: normalize perf manifest paths
2026-03-20 22:06:46 +00:00
Josh Lehman
c3972982b5
fix: sanitize malformed replay tool calls ( #50005 )
...
Merged via squash.
Prepared head SHA: 64ad5563f7ae321b749d5a52bc0b477d666dc6be
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-20 15:03:30 -07:00
Peter Steinberger
cadbaa34c1
test: widen low-profile scheduler peeling
2026-03-20 21:30:44 +00:00
Peter Steinberger
994b42a5a5
test: parallelize safe audit case tables
2026-03-20 21:16:01 +00:00
Peter Steinberger
aed1f6d807
test: parallelize low-profile deferred lanes
2026-03-20 21:07:56 +00:00
Peter Steinberger
09cf6d80ec
test: batch thread-only unit lanes
2026-03-20 20:51:38 +00:00
Josh Avant
7abfff756d
Exec: harden host env override handling across gateway and node ( #51207 )
...
* Exec: harden host env override enforcement and fail closed
* Node host: enforce env override diagnostics before shell filtering
* Env overrides: align Windows key handling and mac node rejection
2026-03-20 15:44:15 -05:00
Josh Avant
c7134e629c
LINE: harden Express webhook parsing to verified raw body ( #51202 )
...
* LINE: enforce signed-raw webhook parsing
* LINE: narrow scope and add buffer regression
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-03-20 15:32:55 -05:00
Vincent Koc
11d71ca352
pairing: keep setup codes bootstrap-token only ( #51259 )
2026-03-20 13:27:39 -07:00
Peter Steinberger
5a5e84ca1d
test: drop duplicate web search helper
2026-03-20 20:25:24 +00:00
Peter Steinberger
fa71ad7c5d
test: repair latest-main web search regressions
2026-03-20 20:17:11 +00:00
Josh Lehman
23fef04c4e
test: fix setup finalize web search mocks ( #51253 )
2026-03-20 13:07:22 -07:00
Peter Steinberger
1b18742e8e
test: peel more slow unit files out of unit-fast
2026-03-20 20:04:52 +00:00
Teddy Tennant
a20ba74978
test: add SSRF guard coverage for URL credential bypass vectors ( #50523 )
...
* security: add SSRF guard tests for URL credential bypass vectors
* test(security): strengthen SSRF redirect guard coverage
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-03-20 12:45:06 -07:00
Gustavo Madeira Santana
3da66718f4
Web: derive search provider metadata from plugin contracts ( #50935 )
...
Merged via squash.
Prepared head SHA: e1c7d72833afff6ef33e8d32cdd395190742dc08
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-20 12:41:04 -07:00
Peter Steinberger
acf32287b4
test: trim more extension startup from unit tests
2026-03-20 19:28:32 +00:00
Jaaneek
916f496b51
Add Grok 4.20 reasoning and non-reasoning to xAI model catalog ( #50772 )
...
Merged via squash.
Prepared head SHA: 095e645ea58b2259b25c923aeaf11bbcb2990c8f
Co-authored-by: Jaaneek <25470423+Jaaneek@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-20 15:28:30 -04:00
Peter Steinberger
f6b3245a7b
fix: pass full sdk gate
2026-03-20 19:24:10 +00:00
Peter Steinberger
62ddc9d9e0
refactor: consolidate plugin sdk surface
2026-03-20 19:24:10 +00:00
Vincent Koc
46854a84a4
test(plugin-sdk): cover legacy root diagnostic listeners
2026-03-20 12:23:02 -07:00
Peter Steinberger
7b00a0620a
test: stabilize gateway alias coverage
2026-03-20 19:17:44 +00:00
Gustavo Madeira Santana
a05da76718
Matrix: dedupe replayed inbound events on restart ( #50922 )
...
Merged via squash.
Prepared head SHA: 10d9770aa61d864686e4ba20fbcffb8a8dd68903
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-20 12:13:24 -07:00
Vincent Koc
5408a3d1a4
docs(contributing): clarify accepted PR scope
2026-03-20 12:04:16 -07:00
Peter Steinberger
39053bddd7
test: decouple zalo outbound payload contract from channel runtime
2026-03-20 19:02:07 +00:00
Peter Steinberger
a7401366ef
test: trim more channel-heavy startup in unit tests
2026-03-20 18:50:52 +00:00
Vincent Koc
083f825122
docs: expand community plugins (always visible), add Codex App Server/Lossless Claw/Opik, A-Z order
2026-03-20 11:40:50 -07:00
Peter Steinberger
b26edfe1ff
test: trim plugin-heavy unit test imports
2026-03-20 18:35:39 +00:00
Vincent Koc
740b345a2e
docs: sort Tools nav group alphabetically
2026-03-20 11:33:51 -07:00
Vincent Koc
483926a6fb
docs: rewrite sdk-migration and bundles, fold agent-tools into building-plugins, remove cookbook from nav, remove dead WeChat listing
2026-03-20 11:32:11 -07:00
Vincent Koc
2e0b445b46
docs: use expandable Accordions for community plugins, keep A-Z order
2026-03-20 11:27:45 -07:00