Commit Graph

3542 Commits

Author SHA1 Message Date
Peter Steinberger
7567809fe6 fix: repair post-rebase agent test drift 2026-05-27 18:17:34 +01:00
Peter Steinberger
10ce409d30 fix: resolve post-rebase agent runtime drift 2026-05-27 18:17:33 +01:00
Peter Steinberger
695cefde0a fix: clean up post-rebase runtime drift 2026-05-27 18:15:28 +01:00
Peter Steinberger
b4baf1e57f fix: stabilize runtime alias status 2026-05-27 18:15:28 +01:00
Peter Steinberger
09b658b96a fix: clean up embedded agent test drift 2026-05-27 18:15:28 +01:00
Peter Steinberger
c945cad60a fix: stabilize release validation regressions 2026-05-27 18:15:28 +01:00
Peter Steinberger
555f4b6c32 refactor: remove legacy provider compat paths 2026-05-27 18:15:26 +01:00
Peter Steinberger
f5e64d2d5d refactor: remove static model and pi auth paths
Drop static model catalogs and Pi auth bridges, move model/provider facts to manifest-owned runtime contracts, and harden internal embedded-agent utilities.
2026-05-27 18:15:26 +01:00
Peter Steinberger
ea16dc7f37 refactor: tighten agent session runtime
Make agent-core/runtime dependencies explicit, consolidate compaction and session transcript helpers, and move model/session helpers behind OpenClaw-owned contracts.
2026-05-27 18:15:26 +01:00
Peter Steinberger
22bad620fc refactor: remove pi runtime internals
Rename remaining Pi-shaped agent surfaces to OpenClaw agent runtime names, delete obsolete Pi docs and package graph checks, and add the third-party notice for incorporated code.
2026-05-27 18:15:26 +01:00
zunkai Zhao
0c493a161f fix(auto-reply): suppress reasoning-prefixed NO_REPLY
Suppress reasoning-prefixed silent replies before outbound delivery while preserving substantive replies that merely end with the silent token.\n\nFixes #66701.\n\nThanks @zuoanCo for the PR and @Cavadus for the report.\n\nProof: focused Vitest and pnpm check:changed passed on Testbox-through-Crabbox tbx_01ksmvfw0gk9xwh10ra1cyhzfw; CI passed for head a014eb0d91.
2026-05-27 15:09:56 +01:00
rendrag-git
e153eceea5 fix(vllm): wire configured thinking params
Move vLLM Qwen thinking control onto configured model compat metadata and carry it through catalog/model-selection/runtime thinking contexts.

Also migrate legacy provider/default request params in doctor and keep Pi/runtime model rows buildable with explicit reasoning defaults.

Thanks @rendrag-git.

Co-authored-by: rendrag-git <253747599+rendrag-git@users.noreply.github.com>
2026-05-27 13:32:18 +01:00
Cathryn Lavery
730ac1a68d fix(agents/harness): validate forced plugin harness support before pinning (#74341)
Validates forced plugin harness support for the requested provider/model before pinning Codex or any other plugin harness. This prevents an explicitly forced Codex runtime from accepting unsupported OpenAI-like providers through a hardcoded bypass while preserving implicit PI fallback and CLI runtime alias passthrough.

Regression coverage covers forced Codex rejection for unsupported openai/openai-codex support, Codex provider support declarations, CLI attempt routing, pi-embedded auth/profile forwarding fakes, Testbox scenario probes, and live Docker Codex plugin E2E.

Thanks @cathrynlavery.
2026-05-27 09:59:04 +01:00
Peter Steinberger
1507a9701b refactor: centralize inbound supplemental context
* refactor: centralize inbound supplemental context

* refactor: trim supplemental finalizer typing

* docs: clarify supplemental context projection

* refactor: move inbound finalization into core

* refactor: simplify channel inbound facts

* refactor: fold supplemental media into inbound finalizer

* refactor: migrate channel inbound callers to builder

* docs: mark inbound finalizer compat types deprecated

* refactor: wire runtime turn context builder

* refactor: replace channel turn runtime API

* fix: respect discord quote visibility

* fix: avoid deprecated line dispatch helper

* refactor: deprecate channel message SDK seams

* docs: trim channel outbound SDK page

* test: migrate irc inbound assertion

* refactor: deprecate outbound SDK facades

* refactor: deprecate channel helper SDK facades

* refactor: deprecate channel streaming SDK facade

* refactor: move direct dm helpers into inbound SDK

* chore: mark legacy test-utils SDK alias deprecated

* refactor: remove unused allow-from read helper

* refactor: route remaining channel dispatch through core

* refactor: enforce modern extension SDK imports

* test: give slow image root tests more time

* ci: support node fallback on windows

* fix: add transcripts tool display metadata

* refactor: trim legacy channel test seams

* fix: preserve channel compat after rebase

* fix: keep deprecated channel inbound aliases

* fix: preserve discord thread context visibility

* fix: clean final rebase conflicts

* fix: preserve channel message dispatch aliases

* fix: sync channel refactor after rebase

* fix: sync channel refactor after latest main

* fix: dedupe memory-core subagent mock

* test: align clickclack inbound dispatch assertions

* fix: sync plugin sdk api hash after rebase

* fix: sync channel refactor after latest main

* fix: sync plugin sdk api hash after rebase

* fix: sync plugin sdk api hash after latest main

* test: remove stale inbound context awaits
2026-05-27 09:26:06 +01:00
Josh Avant
3349fe21bb Fix embedded session file ownership race (#87159)
* fix: serialize embedded session file attempts

* test: update reply runtime mock for session file lookup

* fix: thread session files into diagnostic recovery

* fix: attach causes to session owner abort errors
2026-05-26 23:18:27 -07:00
Coy Geek
ce64d74e5a fix(commands): enforce /allowlist configWrites origin policy
Summary:
- Enforces /allowlist config and pairing-store writes against the real command origin plus the selected target.
- Adds regressions for disabled Telegram-origin commands targeting an enabled Discord allowlist.

Verification:
- node scripts/run-vitest.mjs src/auto-reply/reply/commands-allowlist.test.ts
- pnpm check:changed via Blacksmith Testbox tbx_01ksm06e82dnpxmnj00hrt6xzd
- autoreview --mode local clean, no accepted/actionable findings
- GitHub PR checks green on 42a38d2b00

Closes #72360.
Thanks @coygeek.

Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com>
Co-authored-by: opencode <opencode@users.noreply.github.com>
2026-05-27 07:10:50 +01:00
Peter Steinberger
9c2a6a8df5 perf(gateway): borrow session reads on turn hot paths 2026-05-27 07:02:00 +01:00
keshavbotagent
455d5e807c fix(reply): keep visible turn admission unbounded (#87044)
Remove the hidden 15s default from reply-run idle waits so visible user turns do not inherit cleanup-settle behavior while waiting behind an active same-session reply operation.

Keep the 15s timeout explicit for queued follow-up retry/defer paths and interrupt/reset cleanup waits, and add reply-admission regressions for both visible and queued follow-up behavior. Also preserve the original cause on a nearby sessions-send fallback error to keep current lint green after rebasing onto main.

Thanks @keshavbotagent.

Co-authored-by: Keshav's Bot <keshavbotagent@gmail.com>
2026-05-27 07:01:46 +01:00
Agustin Rivera
2c88547254 fix(prompt): route untrusted group prompts outside system prompt [AI] (#87144)
* fix(prompt): route untrusted group prompts outside system prompt

* fix(prompt): align untrusted group prompt helpers
2026-05-26 22:47:54 -07:00
Peter Steinberger
b9f6abf5e8 fix: bind plugin command llm auth to host agent 2026-05-27 06:38:35 +01:00
Alex Knight
2899560a6b fix(reply): derive explicit control command turns
Derive explicit source-reply command turns from authorized control-command bodies when legacy command source metadata is missing.

Preserve native/text structured command semantics, keep unauthorized native commands and structured normal command bodies on plugin-owned fallback paths, and pass bot username normalization through the derived detection.

Co-authored-by: Alex Knight <aknight@atlassian.com>
2026-05-27 05:57:04 +01:00
Agustin Rivera
c1151ea899 fix(events): sanitize queued system markers (#87094)
* fix(events): sanitize queued system markers

* fix(changelog): record system event sanitization
2026-05-26 20:07:39 -07:00
Andy Ye
ae52be9f32 fix(imessage): stage remote media before understanding
Stage remote iMessage attachments before media understanding so the image pipeline receives local remote-cache paths instead of raw macOS Messages paths.

Fixes #87089

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
2026-05-27 04:05:36 +01:00
Val Alexander
b4f69286fd fix(gateway): stop chat timeout fallback cascade
Fix gateway/chat timeout abort propagation so timed-out runs do not cascade through fallbacks. Preserve provider timeout errors when the gateway abort signal did not fire, and keep timeout stop reasons in async gateway agent results. Includes regression coverage for chat, follow-up, memory flush, fallback classification, and gateway agent timeout results. Fixes #83962.
2026-05-27 03:54:44 +01:00
Peter Steinberger
1242931ba8 test: align WebChat delivery hint expectations 2026-05-27 03:44:27 +01:00
Peter Steinberger
0cfccdb0c7 fix(codex): keep WebChat delivery hints out of user requests
Land PR #87003 from @ragesaq with a maintainer fix for routed room events.

Co-authored-by: Forge <forge@psiclawops.dev>
2026-05-27 03:44:27 +01:00
Sarah Fortune
41962ed369 fix(status): show explicit fast mode state (#87115) 2026-05-26 19:43:14 -07:00
Josh Lehman
9119492f15 fix: preserve plugin LLM command auth (#85936)
Merged via squash.

Prepared head SHA: e61c724708
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-05-26 22:41:52 -04:00
Peter Steinberger
f7a39f487c test: align loopback prompt metadata 2026-05-26 22:38:22 -04:00
Sarah Fortune
df6ec2822f Suppress transient runner failures in channels (#87069) 2026-05-26 19:30:43 -07:00
kesslerio
b8ea6d2aee fix(telegram): route plugin-bound topic messages 2026-05-27 02:52:25 +01:00
Shakker
2e8f1d439d fix: preserve user turn provenance metadata 2026-05-27 02:38:58 +01:00
Shakker
e4c42ae786 fix: use selected user transcript text 2026-05-27 02:38:58 +01:00
Shakker
b9c2590151 fix: use cleaned user turn transcript text 2026-05-27 02:38:58 +01:00
Shakker
ffb8350478 test: trim duplicate user turn persistence coverage 2026-05-27 02:38:58 +01:00
Shakker
696fb41c5b fix: restore user turn persistence checks 2026-05-27 02:38:58 +01:00
Shakker
20d7bf7525 refactor: remove duplicate user turn handoff 2026-05-27 02:38:58 +01:00
Shakker
fe44ecd8f0 refactor: trim duplicated transcript tests 2026-05-27 02:38:58 +01:00
Shakker
44bdc521f7 refactor: carry prepared user turns on recorder 2026-05-27 02:38:58 +01:00
Shakker
d3465756f6 refactor: remove reply option user persistence callbacks 2026-05-27 02:38:58 +01:00
Shakker
e9a2f10900 refactor: mark user turn persistence inside runtimes 2026-05-27 02:38:58 +01:00
Shakker
05001e102e refactor: carry user turn recorder into embedded runs 2026-05-27 02:38:58 +01:00
Shakker
e9d0ac2aba refactor: pass user turn recorder through reply options 2026-05-27 02:38:58 +01:00
Shakker
8caed9d66d fix: honor transcript hooks in user turn fallbacks 2026-05-27 02:38:58 +01:00
Shakker
5d64ebe1de fix: resolve staged transcript media paths 2026-05-27 02:38:58 +01:00
Shakker
98c01585b7 fix: isolate reply persistence notifications 2026-05-27 02:38:58 +01:00
Shakker
ce5adbd2c2 fix: keep gateway fallback tied to user persistence 2026-05-27 02:38:58 +01:00
Shakker
e1ff653ade fix: preserve queued media user turns for pi followups 2026-05-27 02:38:58 +01:00
Shakker
d9b5bdada1 refactor: persist cli user turns after hook approval 2026-05-27 02:38:58 +01:00
Shakker
38b0984d33 refactor: centralize inline user turn persistence 2026-05-27 02:38:58 +01:00