Peter Steinberger
38f02c7a32
fix(session): resolve agent session path with configured sessions dir
...
Co-authored-by: David Rudduck <david@rudduck.org.au >
2026-02-22 11:35:55 +01:00
Peter Steinberger
c283f87ab0
refactor: clarify strict loopback proxy audit rules
2026-02-22 11:35:08 +01:00
Peter Steinberger
97eb4af01e
test: harden models-config env isolation list
2026-02-22 10:34:23 +00:00
Peter Steinberger
744df0fbe7
test: reclassify models-config suites from e2e to unit lane
2026-02-22 10:34:23 +00:00
Peter Steinberger
740fd7ae35
test: reclassify skills suites from e2e to unit lane
2026-02-22 10:34:23 +00:00
Peter Steinberger
5c57a45a59
fix: add non-streaming directive-tag regression tests ( #23298 ) (thanks @SidQin-cyber)
2026-02-22 11:31:23 +01:00
SidQin-cyber
e6490732cd
fix(gateway): strip directive tags from non-streaming webchat broadcasts
...
Closes #23053
The streaming path already strips [[reply_to_current]] and other
directive tags via stripInlineDirectiveTagsForDisplay, but the
non-streaming broadcastChatFinal path and the chat.inject path
sent raw message content to webchat clients, causing tags to
appear in rendered messages after streaming completes.
2026-02-22 11:31:23 +01:00
Peter Steinberger
c56ab39da5
perf(test): reduce bash e2e wait windows
2026-02-22 10:28:43 +00:00
Peter Steinberger
abff3f0f61
test: reclassify sessions_spawn lifecycle suite as unit test
2026-02-22 10:28:43 +00:00
Peter Steinberger
0b7c7ee1aa
perf(test): speed up sessions_spawn lifecycle suite setup
2026-02-22 10:28:43 +00:00
Peter Steinberger
c962bcba37
test: reclassify sandbox merge and exec path suites as unit tests
2026-02-22 10:28:43 +00:00
Peter Steinberger
9ab7b85a66
perf(test): tighten background abort timing windows
2026-02-22 10:28:43 +00:00
Peter Steinberger
c995f9be07
test: reclassify mocked announce and sandbox suites as unit tests
2026-02-22 10:28:43 +00:00
Peter Steinberger
27f0d7ebcc
test: reclassify auth-profile-rotation suite as unit test
2026-02-22 10:28:43 +00:00
Peter Steinberger
c0b1c10a08
test: reclassify mocked runner/safe-bins suites as unit tests
2026-02-22 10:28:43 +00:00
Peter Steinberger
a9b26d83de
perf(test): narrow pi-embedded runner e2e import path
2026-02-22 10:28:42 +00:00
Peter Steinberger
2b0ca9447c
perf(test): trim bash e2e sleep and poll windows
2026-02-22 10:28:42 +00:00
Peter Steinberger
c348a13640
perf(test): lower subagent fast-mode wait floors
2026-02-22 10:28:42 +00:00
Peter Steinberger
54e0786ba6
perf(test): reduce subagent announce fast-mode polling waits
2026-02-22 10:28:42 +00:00
Peter Steinberger
a96139e18c
perf(test): mock compact module in auth rotation e2e
2026-02-22 10:28:42 +00:00
Peter Steinberger
eda941f395
perf(test): remove flaky transport timeout and dedupe safeBins checks
2026-02-22 10:28:42 +00:00
Peter Steinberger
d72b4ead18
perf(test): lower fast-mode nested output wait floor to 70ms
2026-02-22 10:28:42 +00:00
Peter Steinberger
7ccf62fb4c
test(agents): remove dead shell-timeout override in safeBins suite
2026-02-22 10:28:42 +00:00
Peter Steinberger
60773c124e
perf(test): lower fast-mode nested output wait floor to 80ms
2026-02-22 10:28:42 +00:00
Peter Steinberger
36375f121f
perf(test): trim nested subagent output wait floor in fast mode
2026-02-22 10:28:42 +00:00
Peter Steinberger
2900eb5456
perf(test): trim background abort settle waits and dedupe cmd fixture
2026-02-22 10:28:42 +00:00
Peter Steinberger
7d13227d41
test(agents): dedupe auth profile rotation fixture setup
2026-02-22 10:28:42 +00:00
Peter Steinberger
6b5c20055b
perf(test): speed subagent announce retry polling in fast mode
2026-02-22 10:28:42 +00:00
Peter Steinberger
8ad85de800
test(reply): align native trigger suite with fast-test fixture patterns
2026-02-22 10:28:42 +00:00
Peter Steinberger
9882bfe186
perf(test): compact remaining heartbeat fixture writes
2026-02-22 10:28:42 +00:00
Peter Steinberger
c8d473c8e8
test(heartbeat): use shared sandbox in sender target suite
2026-02-22 10:28:42 +00:00
Peter Steinberger
29e41d4c0a
fix: land security audit severity + temp-path guard fixes ( #23428 ) (thanks @bmendonca3)
2026-02-22 11:26:17 +01:00
Brian Mendonca
bc78b343ba
Security: expand audit checks for mDNS and real-IP fallback
2026-02-22 11:26:17 +01:00
Peter Steinberger
b13fc7eccd
docs(security): clarify workspace memory trust boundary
2026-02-22 11:22:29 +01:00
Peter Steinberger
1cd3b30907
fix: stop hardcoded channel fallback and auto-pick sole configured channel ( #23357 ) (thanks @lbo728)
...
Co-authored-by: lbo728 <extreme0728@gmail.com >
2026-02-22 11:21:43 +01:00
Frank Yang
e33d7fcd13
fix(telegram): prevent update offset skipping queued updates ( #23284 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 92efaf956bf906a176d1e6c5488ddcb02d89b4e1
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-22 15:50:33 +05:30
maweibin
98a03c490b
Feat/logger support log level validation0222 ( #23436 )
...
* 1、环境变量**:新增 `OPENCLAW_LOG_LEVEL`,可取值 `silent|fatal|error|warn|info|debug|trace`。设置后同时覆盖**文件日志**与**控制台**的级别,优先级高于配置文件。
2、启动参数**:在 `openclaw gateway run` 上新增 `--log-level <level>`,对该次进程同时生效于文件与控制台;未传时仍使用环境变量或配置文件。
* fix(logging): make log-level override global and precedence-safe
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-02-22 11:15:13 +01:00
Peter Steinberger
bf56196de3
fix: tighten feishu dedupe boundary ( #23377 ) (thanks @SidQin-cyber)
2026-02-22 11:13:40 +01:00
SidQin-cyber
9e5e555ba3
fix(feishu): address dedup race condition, namespace isolation, and cache staleness
...
- Prefix memoryCache keys with namespace to prevent cross-account false
positives when different accounts receive the same message_id
- Add inflight tracking map to prevent TOCTOU race where concurrent
async calls for the same message both pass the check and both proceed
- Remove expired-entry deletion from has() to avoid silent cache/disk
divergence; actual cleanup happens probabilistically inside record()
- Add time-based cache invalidation (30s) to DedupStore.load() so
external writes are eventually picked up
- Refresh cacheLoadedAt after flush() so we don't immediately re-read
data we just wrote
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-22 11:13:40 +01:00
SidQin-cyber
9a8179fd59
feat(feishu): persistent message deduplication to prevent duplicate replies
...
Closes #23369
Feishu may redeliver the same message during WebSocket reconnects or process
restarts. The existing in-memory dedup map is lost on restart, so duplicates
slip through.
This adds a dual-layer dedup strategy:
- Memory cache (fast synchronous path, unchanged capacity)
- Filesystem store (~/.openclaw/feishu/dedup/) that survives restarts
TTL is extended from 30 min to 24 h. Disk writes use atomic rename and
probabilistic cleanup to keep each per-account file under 10 k entries.
Disk errors are caught and logged — message handling falls back to
memory-only behaviour so it is never blocked.
2026-02-22 11:13:40 +01:00
Peter Steinberger
73804abcec
fix(feishu): avoid template tmpdir join in dedup state path ( #23398 )
2026-02-22 11:12:01 +01:00
Peter Steinberger
bfc9ecf32e
test: harden temp path guard detection ( #23398 )
2026-02-22 11:12:01 +01:00
Peter Steinberger
57ce7214d2
test: stabilize temp-path guard across runtimes ( #23398 )
2026-02-22 11:12:01 +01:00
Peter Steinberger
1b327da6e3
fix: harden exec sandbox fallback semantics ( #23398 ) (thanks @bmendonca3)
2026-02-22 11:12:01 +01:00
Brian Mendonca
c76a47cce2
Exec: fail closed when sandbox host is unavailable
2026-02-22 11:12:01 +01:00
Peter Steinberger
5a0032de3e
refactor(signal): extract daemon lifecycle and typed exit handling
2026-02-22 11:09:10 +01:00
Peter Steinberger
602a1ebd55
fix: handle intentional signal daemon shutdown on abort ( #23379 ) (thanks @frankekn)
2026-02-22 10:59:34 +01:00
Frank Yang
1051f42f96
fix(stability): patch regex retries and timeout abort handling
2026-02-22 10:59:34 +01:00
Vignesh Natarajan
99a2f5379e
Memory/QMD: normalize Han-script BM25 search queries
2026-02-22 01:53:00 -08:00
Peter Steinberger
9f0b6a8c92
fix: harden ACP gateway startup sequencing ( #23390 ) (thanks @janckerchen)
2026-02-22 10:47:38 +01:00