Artemii
d4c057f8c1
feat(inbound-meta): expose sender_id in trusted system metadata
...
Add sender_id (ctx.SenderId) to the openclaw.inbound_meta.v1 payload
so agents can reference it for moderation actions (delete, ban, etc.)
without relying on user-controlled text fields.
message_id and chat_id were already present; sender_id was the missing
piece needed for complete group moderation workflows.
2026-02-16 23:53:24 +01:00
Yaroslav Boiko
838259331f
fix(discord): add media dedup production code for messaging tool pipeline
...
Wire media URL tracking through the embedded agent pipeline so that
media already sent via messaging tools is not delivered again by the
reply dispatcher.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 23:51:51 +01:00
Yaroslav Boiko
c7681c3cff
test(media-dedup): add missing coverage for Discord media dedup wiring
...
Cover three integration points where media dedup could silently regress:
- trimMessagingToolSent FIFO cap at 200 entries
- buildReplyPayloads media filter wiring (new test file)
- followup-runner messagingToolSentMediaUrls filtering
2026-02-16 23:51:51 +01:00
j2h4u
5f821ed067
fix(session): prevent stale threadId leaking into non-thread sessions
...
When a user interacts with the bot inside a DM topic (thread), the
session persists `lastThreadId`. If the user later sends a message
from the main DM (no topic), `ctx.MessageThreadId` is undefined and
the `||` fallback picks up the stale persisted value — causing the
bot to reply into the old topic instead of the main conversation.
Only fall back to `baseEntry.lastThreadId` for thread sessions where
the fallback is meaningful (e.g. consecutive messages in the same
thread). Non-thread sessions now correctly leave threadId unset.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 23:51:12 +01:00
Hubert
15dd2cda20
feat: show transcript file size in session status
...
Add transcript size monitoring to /status and session_status tool.
Displays file size and message count (e.g. '📄 Transcript: 1.2 MB,
627 messages'). Shows ⚠️ warning when transcript exceeds 1 MB, which
helps catch sessions approaching the compaction death spiral described
in #13624 .
- getTranscriptInfo() reads JSONL file stat + line count
- Wired into both /status command and session_status tool
- 8 new tests covering file reading, formatting, and edge cases
2026-02-16 23:50:21 +01:00
Peter Steinberger
769f7631d5
refactor(test): dedupe duplicate dispatch test flow
2026-02-16 22:47:34 +00:00
Vignesh Natarajan
5a26d1c622
Agent: guard reminder promises behind cron scheduling
2026-02-16 14:07:16 -08:00
victor-wu.eth
7c240a2b58
feat(discord): faster reaction status state machine (watchdog + debounce) ( #18248 )
...
* fix(discord): avoid unnecessary message fetches in reaction notifications
* style(discord): format reaction listener for CI
* feat(discord): add reaction status machine and fix tool/final wiring
* fix(discord): harden reaction status transitions and cleanup
* revert(discord): restore status-machine flow from 0a5a72204
* fix(auto-reply): restore lifecycle callback forwarding for channels
* chore(ci): add daily upstream sync workflow for custom branch
* fix(discord): non-blocking reactions and robust cleanup
* chore: remove unrelated workflow from Discord-only PR
* Discord: streamline reaction handling
* Docs: add Discord reaction changelog
---------
Co-authored-by: Shadow <hi@shadowing.dev >
2026-02-16 13:38:39 -06:00
Shadow
72e228e14b
Heartbeat: allow suppressing tool warnings ( #18497 )
...
* Heartbeat: allow suppressing tool warnings
* Changelog: note heartbeat tool-warning suppression
2026-02-16 13:29:24 -06:00
Peter Steinberger
5d40d47501
refactor(test): reduce dispatch-from-config setup duplication
2026-02-16 18:09:49 +00:00
Gustavo Madeira Santana
8a67016646
Agents: raise bootstrap total cap and warn on /context truncation ( #18229 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f6620526df231b571a8821edf9fc5f76c3994583
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-16 12:04:53 -05:00
Peter Steinberger
f717a13039
refactor(agent): dedupe harness and command workflows
2026-02-16 14:59:30 +00:00
Peter Steinberger
c9f2c3aef9
test: trim redundant non-stop abort assertion
2026-02-16 14:58:38 +00:00
Hongwei Ma
dddb1bc942
fix(telegram): fix streaming with extended thinking models overwriting previous messages/ also happens to Execution error ( #17973 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 34b52eead8faeb64995f61b9e7ab102711acd37b
Co-authored-by: Marvae <11957602+Marvae@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-16 18:54:34 +05:30
sebslight
553d17f8af
refactor(agents): use silent token constant in prompts
2026-02-16 08:20:24 -05:00
zerone0x
c2a0cf0c28
fix(tts): update tool description to prevent duplicate audio delivery ( #18046 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 70c096abaa37fa506c4d86526e696828bf1acd86
Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:09:02 -05:00
Ayaan Zaidi
b2aa6e094d
fix(telegram): prevent non-abort slash commands from racing chat replies ( #17899 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 5c2f6f2c969b5088a0a7f457f02f29fff960e501
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-16 16:21:10 +05:30
Peter Steinberger
d841c9b26b
test: remove duplicate replyToTag assertion in split-tag case
2026-02-16 10:02:59 +00:00
Peter Steinberger
597f956a4f
test: remove duplicate existing-id all-mode planner case
2026-02-16 10:01:58 +00:00
Peter Steinberger
f043f2d8c9
test: trim duplicate first-mode hasReplied assertion variant
2026-02-16 10:00:57 +00:00
Peter Steinberger
a4e7f256db
test: drop redundant off-mode hasReplied assertion
2026-02-16 09:59:59 +00:00
Peter Steinberger
893f56b87d
test: remove redundant multi-variable template resolution case
2026-02-16 09:59:09 +00:00
Peter Steinberger
4da68afc73
test: remove duplicate off-mode existing-id planner case
2026-02-16 09:58:05 +00:00
Peter Steinberger
7cfd0aed5f
test: remove duplicate non-date negative-case assertion
2026-02-16 09:56:46 +00:00
Peter Steinberger
d611db8049
test: remove duplicate provider-prefix assertion variant
2026-02-16 09:55:44 +00:00
Peter Steinberger
3eb9c2105c
test: remove duplicate date-suffix assertion variant
2026-02-16 09:54:56 +00:00
Peter Steinberger
9f6462bd56
test: trim duplicate latest-suffix assertion variant
2026-02-16 09:54:05 +00:00
Peter Steinberger
2d03473072
test: trim duplicate provider-prefix assertion in short-model tests
2026-02-16 09:52:16 +00:00
Peter Steinberger
dbcdcc5d19
test: remove duplicate positive template-variable detection case
2026-02-16 09:51:09 +00:00
Peter Steinberger
c4297a8d60
test: remove redundant no-provider short-model case
2026-02-16 09:49:58 +00:00
Peter Steinberger
deef9f91bf
test: remove duplicate multi-variable template check case
2026-02-16 09:48:51 +00:00
Peter Steinberger
523193a91f
test: remove duplicate static template-variable false case
2026-02-16 09:47:45 +00:00
Peter Steinberger
cd04385f9f
test: remove redundant provider-plus-date model-name case
2026-02-16 09:46:44 +00:00
Peter Steinberger
82fa526bb0
test: remove duplicate undefined template-variable guard case
2026-02-16 09:45:51 +00:00
Peter Steinberger
b63f9b7066
test: remove redundant configured memory-flush prompt case
2026-02-16 09:23:03 +00:00
Peter Steinberger
4e3429ae6e
test: remove low-value typing-without-consumer variant
2026-02-16 09:22:17 +00:00
Peter Steinberger
4e16893c61
test: remove low-value memory-flush ro workspace case
2026-02-16 09:17:47 +00:00
Peter Steinberger
192dbc3ba9
test: drop duplicate role-ordering exception rewrite case
2026-02-16 09:16:11 +00:00
Peter Steinberger
189cba0100
test: remove duplicate sandbox access memory-flush case
2026-02-16 06:08:44 +00:00
McRolly NWANGWU
d19b746928
feat(skills): add cross-platform install fallback for non-brew environments ( #17687 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 3ed4850838578b90140cc11c6fd23be6953c87ea
Co-authored-by: mcrolly <60803337+mcrolly@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-15 22:25:26 -05:00
Vignesh Natarajan
3087657679
test (memory/compaction): cover resolved memory flush prompt semantics
2026-02-15 19:20:38 -08:00
Vignesh Natarajan
ffbcb37342
fix (memory/compaction): inject runtime date-time into memory flush prompt
2026-02-15 19:20:38 -08:00
Vignesh Natarajan
bed8e7abe6
fix (auto-reply): expose inbound message identifiers in trusted metadata
2026-02-15 19:01:08 -08:00
Peter Steinberger
1547bb6a07
refactor(auto-reply): share abort persistence
2026-02-16 02:36:18 +00:00
Peter Steinberger
d9ca051a1d
refactor(auto-reply): share slash parsing for config/debug
2026-02-16 02:11:12 +00:00
Peter Steinberger
22c1210a16
refactor(auto-reply): share directive level resolution
2026-02-16 01:45:51 +00:00
Peter Steinberger
c5288300a1
perf(test): consolidate reply flow suites
2026-02-15 23:14:42 +00:00
Peter Steinberger
722bfaa9c9
perf(test): consolidate reply plumbing/state suites
2026-02-15 23:14:42 +00:00
Peter Steinberger
d75cd40787
perf(test): consolidate reply utility suites
2026-02-15 23:14:42 +00:00
Peter Steinberger
ed276d3e50
perf(test): consolidate inbound reply suites
2026-02-15 23:14:42 +00:00