Peter Steinberger
27dde7a4d6
chore(lint): enable stricter error rules
2026-06-01 01:12:21 +01:00
Peter Steinberger
c8f8907f15
fix(feishu): guard webhook readiness fetch
2026-05-31 23:18:09 +01:00
Peter Steinberger
22cb7fb6b7
chore(lint): enable no-promise-executor-return
2026-05-31 23:06:13 +01:00
Ted Li
bfc151e9d3
fix(feishu): preserve long streaming replies
...
Preserve long Feishu streaming replies by falling oversized finals back to chunked message/static-card delivery instead of closing through an over-limit streaming CardKit payload.
Keeps late-final suppression after a streaming card closes, and uses markdown-aware chunking for static card fallback replies.
Fixes #88631 .
Co-authored-by: Ted Li <tl2493@columbia.edu >
2026-05-31 22:41:38 +01:00
Peter Steinberger
b653d94918
chore(lint): enable no-useless-assignment
2026-05-31 22:40:48 +01:00
waterblue
03dec8bb3a
fix(openai): avoid replay ids when Responses store is disabled
...
Avoid replaying prior OpenAI Responses reasoning/message/function-call item ids when the outgoing request disables store, while preserving encrypted reasoning and normalized summary arrays for stateless replay. Keep explicit store-enabled OpenAI wrapper paths opted into item-id replay, and cover shared/simple Responses, ChatGPT/Codex Responses, and GitHub Copilot sanitizer behavior.
Regression tests cover store-disabled id omission, encrypted reasoning preservation, idless Copilot reasoning replay, and direct builder payloads. Local proof included focused Vitest, broad lint, broad test-types, bundled-extension lint, plugin boundary checks, autoreview clean, and live OpenAI Responses gpt-5.5 proof.
Co-authored-by: hang <zhanghang02@gmail.com >
2026-05-31 22:17:32 +01:00
ArthurNie
7c15c2765e
fix(feishu): fallback when accepted turns send no visible reply ( #87896 )
...
* fix(feishu): fallback when accepted turns send no visible reply
* fix(feishu): cover no-visible-reply fallback gaps
* fix(feishu): mark media replies visible
* fix(feishu): honor suppressed delivery fallback
* test(auto-reply): trim fallback test churn
* fix(feishu): gate empty fallback eligibility
* test(auto-reply): expect fallback metadata after denied dispatch
* fix(feishu): fallback after failed visible final sends
* test(feishu): keep reply dispatcher mock shape aligned
* fix(auto-reply): respect silent policy for no-visible fallback
* fix(feishu): wait for streaming close before fallback
* fix(feishu): clear silent skip before later finals
* fix(feishu): preserve visible state across keepalives
* test(feishu): align lifecycle dispatcher mocks
* fix(feishu): require accepted streaming content for fallback
---------
Co-authored-by: ArthurNie <264332276+ArthurNie@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-31 21:33:13 +01:00
Peter Steinberger
304e2c83c0
chore(lint): enable stricter oxlint rules
2026-05-31 18:59:02 +01:00
Peter Steinberger
6b0ad98d62
test(extensions): update pairing challenge assertions
2026-05-31 18:56:20 +01:00
Peter Steinberger
d641126c1d
feat(plugin-sdk): add typed presentation command actions ( #88721 )
...
* feat(plugin-sdk): add typed presentation command actions
* test: use shared env helper in telegram bot tests
* test: expect typed approval actions
* test: expect typed sdk approval actions
2026-05-31 18:48:45 +01:00
Peter Steinberger
db40fde88c
fix: persist ACP metadata in SQLite ( #88724 )
...
* fix: persist acp metadata in sqlite
* test: align session store acp expectations
2026-05-31 18:38:51 +01:00
Peter Steinberger
0ee5f47fba
fix(feishu): enforce bitable account gates
2026-05-31 17:51:35 +01:00
OpenClaw Updater
73bb84e4bf
fix: preserve explicit Feishu bitable gates
2026-05-31 17:51:35 +01:00
Gorin Lee
5cfb578cba
plugin: gate Feishu bitable tools by config
2026-05-31 17:51:35 +01:00
Peter Steinberger
f5eca3f84c
chore(lint): enable object and reassignment rules
2026-05-31 09:32:52 +01:00
Peter Steinberger
b9fe0894a6
chore(lint): enable additional cleanup rules
2026-05-31 08:16:11 +01:00
Peter Steinberger
444562b3de
chore: remove stale dead code
2026-05-31 03:04:25 -04:00
Peter Steinberger
deb7bc6539
chore(lint): enable readability lint rules
2026-05-31 07:17:57 +01:00
Peter Steinberger
fab8d29d21
fix(feishu): clamp sequential queue timeouts
2026-05-31 01:37:46 -04:00
Peter Steinberger
ed59533574
fix(feishu): clamp abortable delay timers
2026-05-31 01:37:45 -04:00
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
4f074c3235
perf(extensions): cache plugin runtime loaders
2026-05-30 13:00:31 +02: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