Peter Steinberger
5102e0cabe
test(release): widen live session control timeout
2026-05-29 12:33:22 +01:00
Peter Steinberger
91a4c594d8
refactor(agents): centralize bash env integer parsing
2026-05-29 07:26:01 -04:00
Vincent Koc
79691d4858
fix(provider): bound binary response reads
2026-05-29 13:24:19 +02:00
Peter Steinberger
6a2ccbc929
fix(gateway): require strict preauth budget env
2026-05-29 07:21:23 -04:00
Peter Steinberger
4b6517d114
fix(provider-auth): centralize copilot expiry parsing
2026-05-29 07:18:04 -04:00
Vincent Koc
92c1547a89
refactor: share gateway send inflight handling
2026-05-29 13:10:32 +02:00
Peter Steinberger
95bf36fe28
test(release): align live provider timeouts
2026-05-29 12:09:43 +01:00
Peter Steinberger
ebb1615676
fix(openai): centralize responses threshold parsing
2026-05-29 07:08:17 -04:00
Peter Steinberger
d1fad163d9
fix(subagents): centralize stored depth parsing
2026-05-29 06:55:00 -04:00
Vincent Koc
2799e6c910
refactor: share runtime secret scans
2026-05-29 12:49:37 +02:00
Peter Steinberger
9996cad49a
fix(proxy): centralize cli integer parsing
2026-05-29 06:34:28 -04:00
Peter Steinberger
68d0c0f2f5
fix(media): allow trusted generated html attachments ( #87982 )
2026-05-29 11:33:50 +01:00
Peter Steinberger
18641831bf
test(release): size explicit live fallback models
2026-05-29 11:28:37 +01:00
Vincent Koc
036298fbae
fix(music): bound generated track downloads
2026-05-29 12:20:09 +02:00
Peter Steinberger
3eca409456
test(release): typecheck live gate hardening
2026-05-29 11:18:39 +01:00
Peter Steinberger
fbf900c746
refactor: move plugin state consumers to sqlite
...
Summary:
- add plugin-state runtime SDK subpaths backed by the existing sidecar DB
- migrate Discord model-picker preferences and Feishu dedup state to plugin-state keyed stores
- wire doctor legacy-state migration imports, including TTL preservation, for existing plugin JSON state
Verification:
- pnpm plugin-sdk:api:check
- focused plugin-state, doctor, Discord, Feishu, and package-boundary Vitest suites
- git diff --check origin/main...HEAD
- env -u OPENCLAW_TESTBOX pnpm check:changed
- autoreview --mode branch --base origin/main
- GitHub Actions PR checks green on 1025c2b570
2026-05-29 11:12:15 +01:00
Peter Steinberger
0ad43bbf3d
test(release): harden live provider gates
2026-05-29 11:09:15 +01:00
Peter Steinberger
aff6d079d3
fix(agents): add typed tool progress updates
...
Add a general typed tool-progress contract so long-running non-exec tools can emit public channel progress without overloading model-facing tool content.
`web_fetch` now uses the generic delayed progress helper: it shows `Fetching page content...` only when the fetch is still pending after five seconds, clears the timer on completion/abort, passes the abort signal into guarded fetch, and avoids provider fallback or cached success after cancellation. The subscriber path accepts only explicit `visibility: "channel"` and `privacy: "public"` progress metadata, while untyped tool partials and exec output keep their existing behavior.
Docs now explain typed progress, delayed producer examples, and the `web_fetch` timing behavior.
Proof: `pnpm test src/agents/tools/web-tools.fetch.test.ts src/agents/embedded-agent-subscribe.handlers.tools.test.ts -- --run`; `pnpm docs:check-mdx`; changed-file `pnpm exec oxlint ...`; `git diff --check`; autoreview clean.
2026-05-29 11:06:13 +01:00
Peter Steinberger
27eb8732d3
fix(workboard): clear landing gates
2026-05-29 11:04:37 +01:00
Peter Steinberger
e7e3b4a58b
fix(workboard): align bundled metadata
2026-05-29 11:04:37 +01:00
Peter Steinberger
ed62aefeee
refactor(gateway): centralize handshake timeout parsing
2026-05-29 05:56:21 -04:00
Peter Steinberger
82a16d2fee
fix: alias net policy in plugin loader
2026-05-29 10:47:27 +01:00
Peter Steinberger
7d76e54f2b
fix: honor cron backoff from run end
2026-05-29 05:36:50 -04:00
Peter Steinberger
8ac0c35462
fix(prompts): reject unsafe template indexes
2026-05-29 05:36:15 -04:00
Vincent Koc
49807ac1f1
refactor: share plugin http dispatch helpers
2026-05-29 11:32:14 +02:00
Peter Steinberger
75c011b606
fix(subagents): ignore unsafe log limits
2026-05-29 05:29:50 -04:00
Vincent Koc
c7127c7c34
test(doctor): satisfy legacy migration lint
2026-05-29 11:28:32 +02:00
拐爷&&老拐瘦
f634062f35
fix(cron): quarantine malformed persisted jobs
...
Quarantine malformed persisted cron rows before sanitizing active jobs.json.
Preserve raw malformed rows plus split runtime metadata in jobs-quarantine.json so later cron writes cannot silently delete recoverable data.
Doctor now reports quarantine sidecars for manual review.
Closes #51871 .
Thanks @yfge.
Verification:
- pnpm test src/cron/service/store.test.ts src/cron/service/store.load-missing-session-target.test.ts src/cron/store.test.ts src/commands/doctor-cron-store-migration.test.ts src/commands/doctor-cron.test.ts ui/src/ui/controllers/cron-filters.test.ts ui/src/ui/controllers/cron.test.ts ui/src/ui/app-render.helpers.node.test.ts ui/src/ui/app-settings.refresh-active-tab.node.test.ts
- node scripts/run-tsgo.mjs -p tsconfig.core.json --files src/cron/store.ts src/cron/service/store.ts src/cron/service/state.ts src/commands/doctor-cron.ts && node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --files src/cron/store.test.ts src/cron/service/store.test.ts src/cron/service/store.load-missing-session-target.test.ts src/commands/doctor-cron.test.ts src/commands/doctor-cron-store-migration.test.ts
- node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.core.json src/cron/store.ts src/cron/service/store.ts src/cron/service/state.ts src/commands/doctor-cron.ts src/cron/store.test.ts src/cron/service/store.test.ts src/cron/service/store.load-missing-session-target.test.ts src/commands/doctor-cron.test.ts src/commands/doctor-cron-store-migration.test.ts
- git diff --check
- pnpm docs:list
- autoreview clean: no accepted/actionable findings reported
- GitHub CI: cron, doctor, docs, lint/type/build/security/quality, real behavior proof, and Windows rerun green; checks-node-agentic-agents remains red on current PR and recent main with unrelated pre-existing module/mock failures outside touched files.
Co-authored-by: yfge <geyunfei@gmail.com >
2026-05-29 10:27:45 +01:00
Peter Steinberger
c3e02d9fd4
fix(models): ignore unsafe page tokens
2026-05-29 05:22:55 -04:00
Peter Steinberger
57a3dbe736
perf: avoid jiti for built plugin startup paths
2026-05-29 10:17:43 +01:00
兰之
6950e85605
fix(agents): allow hyphenated subagent task names
...
Allow `sessions_spawn.taskName` to accept lowercase hyphenated task slugs while keeping the existing underscore support and invalid-name rejection. Update the tool schema, system prompt wording, docs, focused tests, and generated prompt snapshots so the user/model-facing contract matches the validator.
Verification:
- `pnpm prompt:snapshots:check`
- `node scripts/run-vitest.mjs src/agents/tools/sessions-spawn-tool.test.ts src/agents/system-prompt.test.ts`
- Real behavior proof gate: https://github.com/openclaw/openclaw/actions/runs/26628449324/job/78470916945
- PR CI: https://github.com/openclaw/openclaw/actions/runs/26628441940 , with failures matching current `main` at https://github.com/openclaw/openclaw/actions/runs/26628128225
Co-authored-by: chenhaoqiang <chenhaoqiang@xiaomi.com >
Co-authored-by: Lanzhi <lizhan3@xiaomi.com >
2026-05-29 10:10:12 +01:00
兰之
30c1ca5c7b
fix: match slash commands case-insensitively
...
Match text slash command names case-insensitively across the reset/new fallback paths and the shared registry/control detection contract while preserving command argument casing.
Add regression coverage for uppercase and mixed-case reset/new commands plus registered non-reset commands such as `/STATUS`, `/Model`, `/T`, and `/COMPACT`.
Co-authored-by: zhangtong26 <zhangtong26@xiaomi.com >
Co-authored-by: Lanzhi <lizhan3@xiaomi.com >
2026-05-29 10:06:53 +01:00
Peter Steinberger
274a8116af
fix(session): reject unsafe lifecycle durations
2026-05-29 05:06:26 -04:00
Peter Steinberger
c951867a21
test(release): satisfy doctor migration lint
2026-05-29 10:04:42 +01:00
litang9
18f9310844
fix(gateway): clear stale chat stream buffers ( #75089 )
...
Merged via squash.
Prepared head SHA: 05ca0e30ac
Verification:
- gh pr checks 75089 --required --watch --fail-fast: dependency-guard passed.
- node scripts/run-vitest.mjs src/gateway/chat-abort.test.ts src/gateway/server-maintenance.test.ts src/gateway/server-close.test.ts src/gateway/server-methods/models-auth-status.test.ts src/gateway/server-methods/chat.abort-authorization.test.ts: 9 files, 136 tests passed on the rebased clean head.
- pnpm build and pnpm check passed after the rebase.
- Local live-style Gateway WebSocket RPC proof passed with a mock OpenAI Responses SSE provider.
Co-authored-by: litang9 <tangli1987118@hotmail.com >
Co-authored-by: osolmaz <2453968+osolmaz@users.noreply.github.com >
Reviewed-by: @osolmaz
2026-05-29 17:01:42 +08:00
Peter Steinberger
d506e9e666
fix(subagents): keep numeric log targets from shrinking history
2026-05-29 05:00:18 -04:00
Vincent Koc
9e002c12ac
fix(video): bound generated video downloads
2026-05-29 11:00:06 +02:00
兰之
b620c58e65
fix: remove telegram-only reasoning stream copy
...
Remove stale Telegram-only wording from the reasoning stream acknowledgement and docs so channel-neutral behavior is reflected.
Fixes #68305 .
Co-authored-by: Lanzhi <lizhan3@xiaomi.com >
2026-05-29 09:54:37 +01:00
Peter Steinberger
2e015ab124
test(release): fix beta live release checks
2026-05-29 09:54:00 +01:00
Rajvardhan Patil
5518ac998f
fix(agents): add CLI turn output digests
...
Adds content-safe output fingerprints to CLI backend turn logs so repeated byte-identical responses can be detected from gateway logs without exposing response text.
Covers Claude live-session turns, synthetic cron before_agent_reply short-circuits, and ordinary CLI subprocess turns with shared outBytes/outHash fields.
Verification:
- pnpm test src/agents/cli-runner.spawn.test.ts src/agents/cli-runner.before-agent-reply-cron.test.ts -- --reporter=verbose
- pnpm check:changed (Blacksmith Testbox tbx_01kssdqes22wqhas0v7h339zr7)
- .agents/skills/autoreview/scripts/autoreview --mode local
- .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
- GitHub PR checks passed for e130c1acbf
Fixes #81004
Co-authored-by: Rajvardhan Patil <raj@Rajvardhans-MacBook-Air.local >
2026-05-29 09:50:56 +01:00
Peter Steinberger
25b3c8ef71
refactor: remove old net policy sources
2026-05-29 09:45:14 +01:00
Peter Steinberger
f4c6c0aec4
refactor: extract net policy package
2026-05-29 09:45:14 +01:00
Phil
00ca654c74
fix(plugins): persist resolved npm install specs
...
Preserve npm install selectors while recording resolved npm provenance for plugin and hook install/update records. Active `record.spec` stays the requested selector unless explicitly pinned, while resolved npm fields remain available for audit and diagnostics.
Adds focused coverage for hook-pack npm fallback provenance after the maintainer review found that path worth pinning down.
Co-authored-by: Phil <99397913+GitHoubi@users.noreply.github.com >
2026-05-29 09:42:46 +01:00
Chunyue Wang
fb6f2c61bf
fix(auto-reply): deliver compact replies in room events
...
Restore visible terminal command replies for explicit command turns that are otherwise source-suppressed in room-event/message-tool-only delivery. Also keep compaction notifyUser notices independent from internal callbacks while preserving hook-message de-duplication.
Fixes #87107
Verification:
- git diff --check origin/main...HEAD
- node scripts/run-vitest.mjs src/auto-reply/reply/dispatch-from-config.test.ts src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts src/auto-reply/reply/agent-runner-execution.test.ts
- GitHub required check dependency-guard passed on d3aaad90fc
- Relevant GitHub auto-reply/build/lint/type/security checks passed on d3aaad90fc
Co-authored-by: openperf <16864032@qq.com >
2026-05-29 09:35:19 +01:00
Peter Steinberger
def11c0978
fix(plugins): bound config contract array indexes
2026-05-29 04:29:14 -04:00
Peter Steinberger
d4a17477b0
fix(schema): reject noncanonical array refs
2026-05-29 04:25:10 -04:00
Peter Steinberger
b78ebacb18
refactor: centralize plugin model discovery
2026-05-29 09:24:08 +01:00
Jayesh Betala
189a7962b2
fix(cli): reject empty config path segments
...
Reject malformed dot-notation config paths before `openclaw config get/set/unset` reads or mutates config. Empty, leading, trailing, whitespace-only, and dot-before-bracket segments now fail closed instead of normalizing to a different key, while valid bracket paths and escaped dots continue to work.
Thanks @jbetala7 for the fix.
Verification:
- `git diff --check`
- `node scripts/run-vitest.mjs run src/cli/config-cli.test.ts` (111 passed)
- GitHub exact-head checks on `116254ba414bff6a0c3881e34fad30baca95ef0a`: 76 success, 23 skipped, 1 neutral, 0 failures
Fixes #87564
Co-authored-by: Jayesh Betala <jayesh.betala7@gmail.com >
2026-05-29 09:23:32 +01:00
Peter Steinberger
5ff0c75da7
fix(config): preserve large numeric schema keys
2026-05-29 04:20:42 -04:00
Ninty
ee6eab8143
fix(agents): clean up exec abort listener after completion ( #83022 )
...
Clean up completed exec tool-call abort listeners so normal foreground completion and background-yield no longer retain the exec run/session context through AbortSignal listener state.
The listener cleanup now lives beside the exec listener registration and runs when the foreground process settles, rejects, or the tool returns a background running result. Existing abort/timeout/background behavior remains owned by the process supervisor and process registry.
Verification:
- gh pr checks 83022
- gh api repos/openclaw/openclaw/commits/fe86528ecb2043b6febef5c2eec53f9124be5543/check-runs
- git merge-tree --write-tree origin/main refs/remotes/pr/83022
- git diff --check origin/main...refs/remotes/pr/83022
- node AbortSignal add/remove listener probe
Thanks @c19354837.
Co-authored-by: Ninty <c19354837@hotmail.com >
2026-05-29 09:15:07 +01:00