Josh Lehman
132d70bfb3
refactor: migrate bundled transcript target lookups ( #89911 )
2026-06-23 14:32:21 -07:00
Vincent Koc
f1c8cda090
chore(plugin-sdk): refresh API baseline hash
2026-06-24 02:29:59 +08:00
Vincent Koc
34d2d54d6c
fix(plugin-sdk): refresh api baseline hash
2026-06-23 20:27:52 +08:00
兰之
bd479958c0
feat(plugin-sdk): add extensible channel identity hook context ( #91903 )
...
Merged via squash.
Prepared head SHA: 90f51eafd5
Co-authored-by: lanzhi-lee <36190508+lanzhi-lee@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-23 11:56:49 +08:00
Vincent Koc
392377e7e4
chore(plugin-sdk): refresh API baseline hash
2026-06-22 21:49:53 +02:00
Vincent Koc
8cf0d7dd33
chore(plugin-sdk): refresh API baseline hash
2026-06-22 11:23:02 +02:00
Vincent Koc
a03032a272
chore(plugin-sdk): refresh API baseline hash
2026-06-21 23:09:27 +02:00
Vincent Koc
2e7c3ace9c
chore(plugin-sdk): refresh API baseline hashes
2026-06-21 21:28:47 +02:00
Vincent Koc
5230ec66ae
chore(plugin-sdk): refresh API surface baselines
2026-06-21 19:32:49 +02:00
Marcus Castro
b50a5aebba
fix(whatsapp): preserve native quote replies ( #95483 )
...
* fix(whatsapp): preserve native quote replies
* feat(plugin-sdk): add quote-reply live transport standard
* test(qa-lab): add WhatsApp quote-reply live scenarios
2026-06-21 11:26:58 -03:00
Vincent Koc
b039e949b6
chore(release): close out 2026.6.9
2026-06-21 12:24:15 +08:00
Vincent Koc
9ac3759ffc
chore(plugin-sdk): refresh harness API budgets
2026-06-21 07:00:11 +08:00
Josh Lehman
7a0d36f3d0
refactor: add SDK transcript identity target API ( #95030 )
2026-06-20 14:01:07 -07:00
Vincent Koc
70a48a680d
fix(sdk): refresh plugin api baseline hash
2026-06-19 19:18:38 +02:00
Vincent Koc
e74a7d2f14
fix(sdk): refresh api baseline hash
2026-06-19 15:57:57 +02:00
Vincent Koc
d236612cc0
fix(sdk): refresh plugin API baseline hash
2026-06-19 09:59:02 +02:00
Josh Lehman
f1cab04966
refactor: route SDK session compatibility through seam ( #89203 )
2026-06-18 20:52:46 -07:00
Vincent Koc
73cdb78a1e
fix(sdk): refresh plugin api baseline hash
2026-06-19 00:01:15 +02:00
Vincent Koc
8151a547c5
chore(plugin-sdk): refresh API baseline hash
2026-06-18 19:54:11 +02:00
Vincent Koc
60335533a9
chore(ci): refresh sqlite landing baselines
2026-06-19 01:20:06 +08:00
Vincent Koc
1db7c41bf2
fix(sdk): keep sqlite lifecycle helpers private
2026-06-19 01:20:06 +08:00
Vincent Koc
8b7269d197
fix(sqlite): preserve migrations and reindex safety
2026-06-19 01:20:06 +08:00
Vincent Koc
d5d6576e06
fix(docs): refresh qa lab plugin inventory
2026-06-18 07:57:49 +02:00
Vincent Koc
f8f2006c8b
fix(plugin-sdk): refresh api baseline hash
2026-06-18 06:46:44 +02:00
Vincent Koc
af026b383d
fix(plugin-sdk): refresh api baseline hash
2026-06-18 05:34:19 +02:00
Vincent Koc
b35b1f2b7c
fix(sdk): refresh plugin api baseline
2026-06-17 19:11:18 +02:00
Vincent Koc
1c0b38f960
fix(sdk): refresh plugin surface baselines
2026-06-17 12:25:42 +02:00
Vincent Koc
bed5bf339e
fix(sdk): refresh plugin api baseline
2026-06-17 10:00:29 +02:00
Vincent Koc
922aea7d28
fix(sdk): refresh plugin api baseline
2026-06-17 05:47:07 +02:00
Vincent Koc
93216e1ca1
fix(sdk): refresh plugin api baseline hash
2026-06-17 03:07:56 +02:00
Vincent Koc
cfb27e6437
fix(ci): align plugin SDK surface budget
2026-06-17 07:28:26 +08:00
Shakker
920e6a8eec
chore: set version 2026.6.9
2026-06-16 19:54:07 +01:00
Vincent Koc
617f97d4b9
fix(plugin-sdk): refresh API baseline hash
2026-06-16 18:34:45 +02:00
Vincent Koc
fa33f5bbb8
fix(plugin-sdk): refresh API baseline hash
2026-06-16 12:32:39 +02:00
Vincent Koc
983e0f2ba0
docs: refresh generated API baselines
2026-06-16 07:26:19 +02:00
Vincent Koc
1c2363def6
fix(plugin-sdk): refresh QA self-check API baseline
2026-06-16 02:56:41 +02:00
Vincent Koc
767e8280ac
fix(cli): harden official plugin recovery ( #93325 )
...
* fix(cli): harden official plugin recovery
* fix(config): preserve include write context
* fix(config): reject external include mutations
* fix(config): bind snapshots to config paths
* fix(config): preserve write ownership
* fix(cli): preflight plugin config mutations
* chore(plugin-sdk): refresh api baseline
* test(config): prove install env policy mutations
* fix(cli): preflight plugin updates
* fix(cli): preflight non-npm id migrations
* chore(plugin-sdk): refresh api baseline
* fix(cli): satisfy plugin recovery checks
2026-06-15 23:07:29 +08:00
sandieman2
c67dc59b02
fix(reply): deliver final reply when queued follow-up claims session; scope dedupe to routed thread ( #90943 )
...
* fix(reply): deliver final reply when queued follow-up claims session; scope dedupe to routed thread
Two core bugs caused composed replies to be silently dropped (no delivery,
no error) when a second message arrived in the same thread mid-run:
1. dispatch-from-config: ensureDispatchReplyOperation only kept the
dispatch-owned operation authoritative while it had no result. Once
runReplyAgent completed the operation to drain queued follow-ups, a
second same-thread inbound could claim the session and the first final
reply would try to re-acquire the lane instead of finishing delivery,
deadlocking behind the queued work. Keep the dispatch-owned operation
authoritative through final delivery.
2. reply-payloads-dedupe: messaging-tool reply dedupe compared only the
channel target, not the routed thread, so a send in one thread could
suppress a later reply in a different thread. Thread the routed thread
id through buildReplyPayloads + follow-up delivery and only fall back to
channel-only matching for providers without a thread-aware suppression
matcher when neither side carries thread evidence.
Adds regression tests; existing Telegram topic-suppression behavior is
preserved by gating the thread guard to providers lacking a plugin matcher.
* fix(reply): preserve threaded message delivery evidence
* fix(reply): dedupe final payloads by delivery route
* fix(slack): preserve native send thread evidence
* fix(reply): preserve explicit reply thread evidence
* fix(reply): align explicit reply route dedupe
* fix(reply): preserve delivery lane through final dispatch
* fix(mattermost): preserve threaded tool send routes
* chore(plugin-sdk): refresh API baseline
* fix(reply): align final delivery route dedupe
* fix(reply): gate followups on final delivery
* fix(reply): keep send receipts private
* fix(reply): infer implicit message provider
* fix(reply): align routed threading policy
* fix(reply): preserve queued delivery context
* fix(reply): hydrate queued system event routes
* fix(reply): hydrate queued execution routes
* fix(reply): scope final delivery barriers
* fix(slack): preserve DM target aliases
* fix(reply): mirror resolved source thread routes
* fix(mattermost): retain delayed delivery barrier
* fix(codex): separate message routing from tool policy
* fix(reply): consume normalized Slack DM targets once
* fix(slack): remove stale target alias
* style(reply): satisfy changed lint gates
* fix(mattermost): preserve explicit reply targets
* test: align Slack reply branch checks
* fix(reply): persist overflow summaries to admitted session
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-06-14 09:11:05 -07:00
Ayaan Zaidi
d498b1cce4
fix(plugin-sdk): expose delivery hints without utility imports
2026-06-14 18:18:20 +05:30
David
23d74dad12
fix(lmstudio): honor thinking off for binary reasoning models ( #92002 )
...
Scope disabled-thinking payload repair to LM Studio's lightweight provider stream hook. Preserve official OpenAI and Anthropic tool-calling paths.
Co-authored-by: David <32288+nxmxbbd@users.noreply.github.com >
2026-06-14 05:41:49 -07:00
brokemac79
d1299658ac
fix(active-memory): preserve verbose recall summaries ( #90739 )
...
* fix(active-memory): preserve verbose recall summaries
* fix(active-memory): require recall evidence for recovery
* fix(active-memory): recognize capped recall results
* fix(active-memory): preserve grounded recall state
* refactor(active-memory): limit recovery to completed recalls
* fix(active-memory): ground terminal recall recovery
* fix(active-memory): limit unavailable recovery to completed replies
* fix(active-memory): harden recall evidence recovery
* fix(active-memory): preserve timeout recovery contract
* fix(active-memory): preserve capped failure evidence
* fix(active-memory): reject content-only recall failures
* fix(active-memory): ground completed recall summaries
* fix(active-memory): separate hook and recall timeouts
* fix(active-memory): classify custom tool failures
* fix(active-memory): preserve harness tool evidence
* fix(active-memory): reject explicit empty results
* fix(active-memory): wait for fallback recall evidence
* fix(codex): report dynamic tool results
* fix(active-memory): separate preflight recall deadline
* fix(active-memory): normalize recall tool names
* fix(agents): classify unavailable approvals
* docs(active-memory): clarify hook timeout phases
* test(active-memory): stabilize timeout abort proof
* fix(agents): preserve successful cancellation outcomes
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-06-13 23:38:58 -07:00
Jason (Json)
965fa05df3
feat: add tool search directory mode
...
Add an experimental directory mode that keeps large authorized tool schemas deferred while exposing bounded discovery, exact deferred hydration, and normal OpenClaw policy/hook execution. Client tools remain directly visible; ambiguous hidden names fail closed.
2026-06-13 20:08:39 -07:00
Josh Avant
689ebc815b
feat: support /btw in CLI-backed sessions ( #92669 )
...
* feat: support CLI btw side questions
* test: fix CLI prepare test fixture types
* fix: lazy load local btw runner
2026-06-13 19:36:53 +02:00
Dallin Romney
4809ac70fa
Add QA evidence artifact output ( #91484 )
...
* feat: add qa evidence summary normalization
* chore: rename qa evidence target environment
* chore: align qa evidence profile terminology
* chore: align qa evidence summary fields
* chore: add qa evidence taxonomy ref
* test: remove stale multipass evidence example
* test(qa): normalize vitest and playwright evidence
* test(qa): slim evidence summary metadata
* test(qa): clarify evidence summary inputs
* test(qa): rename scenario specs in evidence flow
* test(qa): treat evidence profiles as mapping strings
* test(qa): use neutral evidence test identity
* test(qa): nest evidence summary joins
* refactor(qa): normalize live evidence summaries
* fix(qa): accept normalized telegram rtt summaries
* fix(qa): normalize evidence lane summaries
* fix(qa): align evidence summaries with requirements
* refactor(qa): tighten evidence summary builders
* refactor(qa): restore standard evidence ids
* fix(qa): keep legacy summaries out of rtt evidence
* refactor(qa): make package evidence provenance explicit
* test(qa): keep script tests out of qa lab internals
* refactor(qa): rename scenario evidence definitions
* refactor(qa): clean evidence summary wording
* test(qa): fix evidence summary test inputs
* refactor(qa): simplify evidence identity fields
* refactor(qa): tighten evidence summary inputs
* refactor(qa): rename evidence artifact
2026-06-12 16:12:58 -07:00
Josh Avant
9921825e17
Fix Telegram spooled buffered replay ( #92281 )
...
* fix telegram spooled buffered replay
* fix telegram replay type checks
* fix telegram replay lint
* test telegram replay visible output retry guard
* fix telegram rollback failure retry
2026-06-12 11:51:46 -05:00
Peter Steinberger
0e7b5c3429
feat(anthropic): support Claude Fable 5 adaptive thinking ( #91882 )
...
* feat(anthropic): support Claude Fable 5
* test(anthropic): tighten Fable stream fixtures
* fix(anthropic): preserve Vertex input types
* test(anthropic): use provider-ready Vertex effort
* fix(anthropic): support Fable deployment aliases
* fix(anthropic): discard incomplete Fable output
* feat(anthropic): support Fable on Bedrock
* fix(anthropic): preserve Fable reasoning contracts
* refactor(anthropic): unify canonical Claude model policy
* fix(anthropic): satisfy extension thinking types
* test(anthropic): complete canonical alias fixture
* fix(bedrock): scope thinking case declarations
2026-06-10 08:08:35 -07:00
openclaw-clownfish[bot]
54c400a975
fix(plugin-sdk): refresh API baseline hash
2026-06-10 14:12:38 +09:00
Agustin Rivera
f0d8048aa3
fix(search): enforce native web search tool policy ( #91750 )
...
* fix(search): enforce native web search tool policy
* fix(search): apply session policy to native web search
* fix(search): gate direct OpenAI native search
* fix(search): redact native web search provider context
2026-06-09 16:25:15 -07:00
Alex Knight
bf95883812
feat(diagnostics-otel): capture tool input/output content via trusted channel ( #91256 )
...
diagnostics.otel.captureContent.{toolInputs,toolOutputs} were documented
and config-wired but never produced any span content. Emit tool args and
results over the trusted private-data diagnostic channel (mirroring the
model-content path), and have the OTel exporter bound/redact/truncate them
before span export. Raw tool content never rides the public event bus.
Scope: core embedded-runner tool path (canonical producer). Codex
(async-batched) and Claude CLI remain follow-ups tracked by the issue.
Refs #77391
2026-06-10 05:52:52 +10:00
openclaw-clownfish[bot]
e949809f6e
chore(plugin-sdk): refresh API baseline hash ( #91661 )
...
Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
2026-06-09 18:20:35 +09:00