Peter Steinberger
d05e4a4bc6
fix(feishu): use full gateway channel runtime
2026-05-30 23:46:04 +01:00
Peter Steinberger
3fc0df953c
refactor(agents): bind subagent threads in core ( #88416 )
...
Move subagent thread binding ownership into core so session-mode spawns prepare channel bindings before launching the child agent. Deprecate the legacy subagent_spawning SDK hook in code, compatibility metadata, diagnostics, and plugin docs; plugin authors should observe subagent_spawned instead.
Verification:
- node scripts/run-vitest.mjs src/agents/sessions-spawn-hooks.test.ts src/agents/subagent-spawn.thread-binding.test.ts src/agents/subagent-spawn.workspace.test.ts src/agents/subagent-spawn.mode-session-diagnostics.test.ts
- node scripts/run-tsgo.mjs -p tsconfig.core.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core.tsbuildinfo
- git diff --check
- .agents/skills/autoreview/scripts/autoreview --mode local
- CI run 26693808952 green, including checks-node-agentic-agents-core and checks-node-agentic-plugin-sdk
2026-05-30 21:19:09 +01:00
Peter Steinberger
005da57957
Move cron persistence to SQLite ( #88285 )
...
* refactor: move cron persistence to sqlite
* fix: repair sqlite cron migration regressions
* fix: move cron legacy migration to doctor
* test: align cron sqlite migration fixtures
* test: fix cron sqlite rebase gates
* test: align cron sqlite runtime tests
* test: fix doctor e2e migration mock
* test: fix doctor shard e2e isolation
* test: fix infra child-process mocks
2026-05-30 21:03:41 +01:00
chuanchuan
3b8ab4e112
fix(feishu): stream plain replies as cards
...
Feishu `channels.feishu.streaming=true` now streams ordinary assistant replies through CardKit in auto mode, while keeping tool-summary delivery on the existing message path.
Also discards stale partial previews when final delivery intentionally suppresses text for voice media or duplicate final text, and preserves streamed partial text for regular media-only finals.
Verification:
- `node scripts/run-vitest.mjs run extensions/feishu/src/reply-dispatcher.test.ts`
- `pnpm tsgo:extensions`
- `pnpm test:extensions:package-boundary:compile`
- `pnpm exec oxfmt --check extensions/feishu/src/reply-dispatcher.ts extensions/feishu/src/reply-dispatcher.test.ts extensions/feishu/src/streaming-card.ts`
- `git diff --check`
- `.agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub PR checks on run 26689677607 passed except repeated unrelated broad Vitest no-output timeouts in `checks-node-agentic-commands-doctor` and `checks-node-core-runtime-infra-state`.
Co-authored-by: 传妈 <chuanmother@chuanMac-Mini.local >
2026-05-30 18:47:03 +01:00
Peter Steinberger
ac0fb976c8
fix(feishu): bound card action token expiry
2026-05-30 12:37:24 -04:00
Vincent Koc
1de9f99ea8
fix(ci): repair current test type fixtures
2026-05-30 17:35:02 +01:00
Peter Steinberger
23e1aac9b2
fix(feishu): bound sender name cache expiry
2026-05-30 12:10:19 -04:00
Peter Steinberger
19f22b5924
fix(feishu): bound approval card expiry
2026-05-30 11:41:43 -04:00
Peter Steinberger
05634708e0
fix(feishu): bound quick action launcher expiry
2026-05-30 11:38:50 -04:00
Peter Steinberger
c94c43d3bb
fix(feishu): bound card action chat cache clocks
2026-05-30 11:36:19 -04:00
Peter Steinberger
ec15f90a55
fix(feishu): bound group name cache clocks
2026-05-30 11:33:30 -04:00
Peter Steinberger
3da34a4673
fix(feishu): bound probe cache expiry clocks
2026-05-30 11:31:16 -04:00
Peter Steinberger
55d4456751
fix(webhook): bound replay response expiry timestamps
2026-05-30 10:21:50 -04:00
Peter Steinberger
22d635080d
fix(feishu): guard streaming token expiry clocks
2026-05-30 10:14:14 -04:00
Vincent Koc
b8067d073a
fix(extensions): keep subagent hook facades lazy
2026-05-30 13:00:31 +02:00
Vincent Koc
4f074c3235
perf(extensions): cache plugin runtime loaders
2026-05-30 13:00:31 +02:00
Peter Steinberger
cd07d013ba
chore(release): bump version to 2026.5.30
2026-05-30 06:49:13 +01:00
Peter Steinberger
cbd492d680
fix(feishu): reopen retryable bot menu replay
2026-05-30 00:12:10 +01:00
Dallin Romney
73dd36626c
test(infra): avoid max fake-timer jumps ( #88155 )
2026-05-29 16:02:41 -07:00
Peter Steinberger
95f9231136
fix(feishu): cap async helper timeouts
2026-05-29 17:01:11 -04:00
Peter Steinberger
b9d7dd4a84
fix(feishu): normalize app registration poll timers
2026-05-29 13:53:05 -04:00
Peter Steinberger
04de01f8cf
fix(feishu): bound streaming token expiry
2026-05-29 13:28:40 -04:00
Peter Steinberger
9a1b5f9b68
fix(feishu): validate merge-forward timestamps
2026-05-29 09:22:33 -04:00
Peter Steinberger
7fb91317ba
fix(feishu): validate thread message timestamps
2026-05-29 09:15:07 -04:00
Peter Steinberger
001da78fab
fix(feishu): validate message create time
2026-05-29 09:12:06 -04:00
Peter Steinberger
4c4e8a213f
fix(feishu): centralize action integer parsing
2026-05-29 07:04:26 -04: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
samzong
c237de552a
[Fix] Prefer external session delivery context ( #87476 )
...
* fix(sessions): prefer external delivery context
Signed-off-by: samzong <samzong.lu@gmail.com >
* fix: route Feishu session announces from delivery context
* fix: accept normalized cron schedule inputs
---------
Signed-off-by: samzong <samzong.lu@gmail.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-29 03:59:54 +01:00
Peter Steinberger
c0094a232d
fix: validate feishu bitable page size
2026-05-28 21:48:06 -04:00
Peter Steinberger
d33c2eefce
fix: validate feishu chat page size
2026-05-28 21:45:20 -04:00
Peter Steinberger
fcbc254d0d
fix: validate feishu action count params
2026-05-28 15:55:19 -04:00
Peter Steinberger
a8991e02d8
fix: parse feishu startup timeout env strictly
2026-05-28 14:05:23 -04:00
Peter Steinberger
99f70284bf
fix: parse feishu timeout env strictly
2026-05-28 14:03:06 -04:00
Peter Steinberger
c2c29588f4
chore: update dependency pins
2026-05-28 18:10:39 +01:00
Peter Steinberger
b6ef874220
fix: reject partial numeric parsing
2026-05-28 10:51:32 -04:00
Peter Steinberger
aab5410bd5
test: speed up slow test suite ( #87611 )
...
* test: speed up slow test suite
* test: preserve fake timer cleanup hooks
* test: avoid timeout readiness race
* test: satisfy reply test types
* test: restore runner and image coverage
* test: restore final media runner path
* test: make cli auth status fixture deterministic
* test: repair runtime alias fixtures
2026-05-28 13:20:19 +01:00
Peter Steinberger
cee2a50fe6
chore(release): prepare 2026.5.28
2026-05-28 01:48:07 +01:00
Shadow
1806b152a9
fix: add ClawHub plugin display names ( #87354 )
2026-05-27 12:37:35 -05:00
Peter Steinberger
7aaca4a8a6
chore(release): prepare 2026.5.27
2026-05-27 16:53:50 +01:00
Peter Steinberger
98c0ad8b42
test: align extension inbound context assertions
2026-05-27 04:52:02 -04: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
Peter Steinberger
5535eef6b0
fix: use current config sdk contract in feishu doctor
2026-05-26 17:45:24 +01:00
Peter Steinberger
b7c461af7b
fix(feishu): repair stale channel state
...
Closes #74237 .
Recreates #74397 locally because the fork disallows maintainer edits.
Co-authored-by: Lightningxxl <yuanhangxurobin@gmail.com >
2026-05-26 17:10:34 +01:00
Peter Steinberger
d00d0a21c2
chore: bump OpenClaw to 2026.5.26
2026-05-26 01:26:00 +01:00
Peter Steinberger
cda7c30150
build: refresh dependency pins ( #86628 )
...
* build: refresh dependencies
* build: align pi fallback version
2026-05-25 21:55:46 +01:00
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
clawsweeper[bot]
170e0aac2a
fix(feishu): render native presentation buttons ( #86588 )
...
Summary:
- The PR replaces Feishu presentation/action card fallback rendering with a shared JSON 2.0 button/behaviors renderer, updates native card sanitization, and expands Feishu channel/outbound tests.
- PR surface: Source +118, Tests +223. Total +341 across 5 files.
- Reproducibility: yes. source-reproducible: current main renders Feishu presentation button blocks through ma ... help` fallback. I did not run local tests because this review was required to keep the checkout read-only.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(feishu): render native presentation buttons
- PR branch already contained follow-up commit before automerge: fix(clawsweeper): address review for automerge-openclaw-openclaw-8601…
Validation:
- ClawSweeper review passed for head 36d6a36323 .
- Required merge gates passed before the squash merge.
Prepared head SHA: 36d6a36323
Review: https://github.com/openclaw/openclaw/pull/86588#issuecomment-4536092569
Co-authored-by: NianJiuZst <3235467914@qq.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com >
2026-05-25 19:20:42 +00:00
Peter Steinberger
9330b76a51
build: bump qs to patched release
...
Fixes Dependabot alert #118 for GHSA-q8mj-m7cp-5q26 by updating the workspace qs override from 6.14.2 to 6.15.2 and regenerating root and plugin shrinkwrap files.
Runtime surface: transitive qs consumers through Express, Slack, Feishu, Teams, ACP, and MCP paths.
2026-05-25 19:23:30 +01:00
Peter Steinberger
0cba872e38
chore: bump version to 2026.5.24
2026-05-24 02:40:16 +01:00
Peter Steinberger
4df34cb790
chore(release): bump version to 2026.5.22
2026-05-22 21:25:16 +01:00