Commit Graph

67697 Commits

Author SHA1 Message Date
Vincent Koc
787f3a2ce5 test(channels): align outbound delivery assertions 2026-07-04 15:13:16 +02:00
Peter Steinberger
5ea80c8d80 fix: improve agent runtime correctness from upstream Pi (#99949)
* fix: improve agent runtime correctness

* test: track agent tool temp directories

* test: update helper routing expectation
2026-07-04 09:08:37 -04:00
Peter Steinberger
045f42f111 perf: skip real restart waits in update CLI tests (#99945) 2026-07-04 08:59:18 -04:00
Peter Steinberger
3706c2b3bd fix(anthropic): fall back to Claude Opus 4.8 when Fable 5 safety classifiers decline a request (#99906)
Claude Fable 5 requests on direct Anthropic API keys now opt into Anthropic's server-side fallback (server-side-fallback-2026-06-01): a safety-classifier decline is re-served by claude-opus-4-8 inside the same call instead of failing the turn with "LLM request failed.". Mid-stream boundaries drop the declined model's thinking/tool blocks per Anthropic's replay contract, keep the partial text as the continuation prefix, record a provider_fallback diagnostic, and cost the turn at the serving model's rates. Docs lead with the coupling: using Fable 5 means also using Opus 4.8. OAuth, proxies, Bedrock, Vertex, and Foundry requests are unchanged.

Live-verified: a benign reasoning_extraction classifier decline through the product path returns an Opus-served answer with the provider_fallback diagnostic; exact-head CI green (67 checks).

Related: #98976
2026-07-04 08:43:11 -04:00
Peter Steinberger
49cc59b1e8 refactor: consolidate markdown code fences, error coercion, and byte-identical helper pairs (#99932)
* refactor(shared): add markdown code span/fence helpers and migrate seven call sites

* refactor(normalization-core): add canonical toErrorObject and migrate six copies

* refactor: consolidate byte-identical helper pairs onto owner modules

* refactor: reuse canonical path and token helpers in session tools and credentials

* refactor(packages): dedupe compaction summarization tail and session dir parsing

* fix(security): keep missing extensions dir silent in shared plugin dir lister

* refactor: reuse media-core chunk reader and shared dreaming session key helper

* fix(plugins): register error-coercion subpath in sdk alias table

* chore(plugin-sdk): re-pin callable export count after rebase

* chore(plugin-sdk): re-pin callable export count after rebase
2026-07-04 08:40:41 -04:00
Peter Steinberger
706443c79b fix(slack): remove unused unsafe auth fetch helper (#99944)
* fix(slack): remove unused unsafe auth fetch helper

Co-authored-by: liyuanbin <li.yuanbin1@xydigit.com>

* fix(slack): remove unused unsafe auth fetch helper

---------

Co-authored-by: liyuanbin <li.yuanbin1@xydigit.com>
2026-07-04 08:21:32 -04:00
Vincent Koc
020f44aba8 chore(docs): refresh plugin SDK API baseline hash 2026-07-04 14:03:46 +02:00
Vincent Koc
d6ed2c392c fix(test): use canonical memory fd repro config 2026-07-04 13:49:20 +02:00
Peter Steinberger
ed2eebd31d perf: reuse plugin SDK report compiler graph (#99940) 2026-07-04 07:41:19 -04:00
Vincent Koc
46ad3f9ae9 chore(docs): refresh plugin generated baselines 2026-07-04 13:05:58 +02:00
Vincent Koc
e396ff68d8 fix(tui): coalesce busy submit notices (#99879)
* fix(tui): coalesce busy submit notices

* fix(tui): coalesce busy submit notices
2026-07-04 04:05:11 -07:00
Peter Steinberger
65e2819136 fix(slack): warn when bot token authenticates as user (#99931)
Co-authored-by: luyifan <al3060388206@gmail.com>
2026-07-04 07:04:30 -04:00
Peter Steinberger
33022da155 refactor(ui): dedupe chat styles and make the styles.css import order real (#99900)
* refactor(ui): dedupe chat styles and make styles.css import order real

* refactor(ui): dedupe chat tool-row styles into chat files

* refactor(ui): keep light bubble skin after role variants

* refactor(ui): keep light bubble skin after role variants

* refactor(ui): keep light bubble skin after role variants
2026-07-04 07:03:31 -04:00
Vincent Koc
db7286187f fix(transcripts): mark delivery mirrors as artifacts (#99855)
* fix(transcripts): mark delivery mirrors as artifacts

* fix(transcripts): mark delivery mirrors as artifacts

* fix(transcripts): mark delivery mirrors as artifacts
2026-07-04 04:02:55 -07:00
Peter Steinberger
d9b6d0d8a9 improve: speed up QA report source errors (#99909)
* perf: lazy-load QA report runtime

* perf: lazy-load QA report runtime
2026-07-04 06:51:03 -04:00
Peter Steinberger
716b351619 feat: allow custom sandbox image tags (#99915)
* feat: allow custom sandbox image tags

* test: align Crabbox default acceptance
2026-07-04 06:40:45 -04:00
qingminlong
bd2740fedc fix(slack): preserve time colons in interactive labels (#99877)
* fix(slack): preserve time colons in button labels

* fix(slack): preserve clock labels in interactive replies

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-04 03:14:13 -07:00
Peter Steinberger
79d2e568a0 refactor(agents): require one resolved capability profile per run (#99817)
applyFinalEffectiveToolPolicy and collectAttemptExplicitToolAllowlistSources
took ~15 raw identity params each and silently re-resolved a second
capability profile when callers forgot to pass one — with divergent
session inputs (attempt allowlist sources resolved policy off the live
session key while tool construction used the sandbox policy key). The
profile param is now required, the fallback resolution stacks are
deleted, and the attempt threads its single resolved profile into tool
construction, the final bundled pass, and allowlist sources. Doctor and
gateway tools.effective callers resolve their config-scope profile
explicitly at the callsite. createOpenClawCodingTools keeps its optional
self-resolve as public plugin-SDK convenience.
2026-07-04 02:53:56 -07:00
Peter Steinberger
23b878a04b fix(agents): derive conversation scope from trusted group facts (#99816)
Scope fell back to caller-supplied groupId/groupChannel/groupSpace when
chatType was unknown, while the profile publishes those same fields
trust-checked (null when dropped). A dropped caller group could classify
an unknown-audience conversation as shared for downstream audience and
credential decisions. Scope now classifies only from live chat type,
server-derived session keys (new sessionKeyNamesGroupConversation), and
trust-checked group facts; dropped groups resolve to unknown.
2026-07-04 02:53:52 -07:00
Peter Steinberger
c160ff1aec chore(crabbox): default remote proof to Blacksmith Testbox
The azure coordinator has been timing out (10m, no lease) while delegated
Blacksmith Testbox leases in about a minute. Make blacksmith-testbox the
.crabbox.yaml default, keep --provider aws/azure for direct VM proof, and
refresh the crabbox/openclaw-testing skill text that still claimed an AWS
default. Formatting proof: sibling-checkout oxfmt --check passed (hook needs
node_modules this worktree lacks). Testbox proof: tbx_01kwp8h31773z2vphbcae1syzr
(node --version, exit 0, 1m07s) via
https://github.com/openclaw/openclaw/actions/runs/28702438266
2026-07-04 10:51:47 +01:00
Vincent Koc
a0e6048624 fix(agents): preserve mixed image attachment order (#99902) 2026-07-04 02:32:03 -07:00
mikasa
f27d494d00 fix(edit): keep mismatch hint truncation unicode-safe (#99527)
* fix(edit): keep mismatch hint truncation unicode-safe

* fix(edit): preserve mismatch hint size bound

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-04 02:21:41 -07:00
Peter Steinberger
82610d3b15 feat(whatsapp): add requester-bound MeowCaller calls (#99635)
* feat(whatsapp): add requester-bound MeowCaller calls

* fix(whatsapp): align MeowCaller CLI contract

* test(whatsapp): narrow MeowCaller audio path

* fix(whatsapp): budget MeowCaller setup phases

* feat(whatsapp): gate experimental calls

* fix(whatsapp): use managed call temp storage

* fix(whatsapp): preserve channel entry boundary
2026-07-04 02:19:28 -07:00
Peter Steinberger
be95bb72d4 refactor: consolidate core stream cleanup, watchdog locality, and approval text duplication (#99901)
* refactor(infra): share guarded body-stream cleanup across fetch consumers

* refactor(agents): extract shared runtime model locality for llm watchdogs

* refactor(auto-reply): share exec approval route resolution between command handlers

* refactor(plugin-sdk): share approval reaction hint text helpers

* refactor(plugin-sdk): share planned migration target resolution

* refactor(infra): use canonical sleep helper in backup retry

* docs(plugins): mention shared migration targets and reaction hint helpers

* chore(plugin-sdk): pin surface budgets for reaction hint and migration target helpers
2026-07-04 02:08:35 -07:00
Peter Steinberger
eafe2a8d0b refactor: consolidate duplicated plugin state and doctor migration plumbing onto SDK seams (#99850)
* refactor(plugin-sdk): add createPersistentDedupeCache and migrate channel presence caches

* refactor(matrix): adopt SDK approval reaction target store

* refactor(plugin-sdk): share doctor legacy-state migration fs helpers

* refactor(memory-core): dedupe qmd cache entry envelope validation

* chore(plugin-sdk): pin surface budgets for shared dedupe and doctor helpers

* test(matrix): use future approval expiry fixtures for reaction targets

* test(matrix): use future approval expiry fixtures for reaction targets
2026-07-04 01:51:03 -07:00
Peter Steinberger
3d404478b8 fix(discord): hide internal Code Mode wait progress (#99893)
Hide invocation-specific Code Mode wait controls from channel progress while preserving telemetry and visible non-internal tools.
2026-07-04 01:45:50 -07:00
Peter Steinberger
3d6a2216ea feat(codex): share native threads across Codex clients (#99821)
* feat(codex): share native threads across clients

* test(codex): track coexistence temp dirs

* fix(codex): preserve native source on thread forks

* test(codex): use public temp fixtures

* fix(codex): preserve owner context for deferred tools

* fix(codex): forward owner identity to dynamic tools

* fix(codex): forward owner status to harness attempts

* docs(security): document shared Codex home

* docs(security): document shared Codex home

* docs(security): document shared Codex home
2026-07-04 01:43:21 -07:00
Vincent Koc
9a0c9f8395 fix(agents): preserve images on cli fallback (#99891) 2026-07-04 01:29:03 -07:00
Peter Steinberger
55d0d037bf test(codex): expect canonical assistant text blocks in mirrored history
Session ingest has normalized legacy assistant string content into
[{ type: "text" }] blocks since #98908, which updated the core
cli-runner session-history analog but missed this extension file.
The suite only runs in full local runs and the dispatch-only
plugin-prerelease lane, so push/PR CI stayed green while local
scripts/pr prepare-gates failed on any OS.

refs #99857
2026-07-04 09:15:14 +01:00
Vincent Koc
530f6d867f test(ui): isolate chat render mocks 2026-07-04 10:11:31 +02:00
xingzhou
741d9524be fix: outbound recovery can replay already sent replies (#99600)
* fix(outbound): avoid replaying sent recovery deliveries

* fix(outbound): persist recovery send state before ack

Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com>

* fix(outbound): preserve partial send evidence across adapters

* test(line): cover multi-send delivery progress

* fix(outbound): preserve repeated receipt result multiplicity

* test(heartbeat): expect delivery progress callback

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-04 01:09:12 -07:00
github-actions[bot]
2abad575d2 chore(i18n): refresh native locales 2026-07-04 08:06:04 +00:00
Vincent Koc
2be9e32a59 chore(release): refresh 2026.7.1 beta.2 changelog 2026-07-04 01:03:25 -07:00
Vincent Koc
c61039bead fix(release): preserve target merge PR in changelog ledger 2026-07-04 01:03:21 -07:00
Vincent Koc
1e20f15581 fix(ci): batch i18n locale refresh commits 2026-07-04 00:50:21 -07:00
github-actions[bot]
8f9e1635a1 chore(i18n): refresh native uk locale 2026-07-04 07:50:19 +00:00
github-actions[bot]
305715c725 chore(i18n): refresh native tr locale 2026-07-04 07:49:26 +00:00
github-actions[bot]
531af42246 chore(i18n): refresh native it locale 2026-07-04 07:48:44 +00:00
github-actions[bot]
6bd1a4b89f chore(i18n): refresh native ar locale 2026-07-04 07:47:40 +00:00
github-actions[bot]
43fe5cc890 chore(i18n): refresh native hi locale 2026-07-04 07:47:03 +00:00
github-actions[bot]
4352eaf6ad chore(i18n): refresh native fr locale 2026-07-04 07:45:49 +00:00
Peter Steinberger
384828770b feat: declutter the Control UI shell — reasoning effort slider, borderless composer controls, version out of the sidebar (#99838)
The chat composer's model picker and provider-usage pill become quiet borderless text controls; the reasoning flyout swaps its button list for a discrete Faster–Smarter slider (native range input) with stop dots, filled track, inherited-default marker, ghosted off-scale defaults, live value label, and one-click 'Use default' reset — single-level models render a toggle instead. The persistent sidebar VERSION pill is replaced by a slim connection-status line; the gateway version remains in Settings' Quick Settings footer. Includes review fixes from Codex autoreview (singleton level selectable) and the GitHub Codex review (off-scale default thumb), plus a 40px mobile touch target.

Closes #99837
2026-07-04 00:45:44 -07:00
github-actions[bot]
7838bc82b6 chore(i18n): refresh native ko locale 2026-07-04 07:45:27 +00:00
Ayaan Zaidi
16861088b7 refactor(usage): fold pricing fingerprint check into cache read 2026-07-04 00:44:36 -07:00
Dex
6103b359cb perf(usage): shrink durable usage cache entries
Store the pricing fingerprint once on the cache root and stop persisting redundant filePath/sessionId metadata in each cache entry. Pricing changes still invalidate cached entries before refresh, and v5 caches rebuild through the schema version bump.

Fixes #99511

Co-authored-by: weco.ai <noreply@weco.ai>
2026-07-04 00:44:36 -07:00
github-actions[bot]
9eb1a05c49 chore(i18n): refresh native ja-JP locale 2026-07-04 07:44:13 +00:00
github-actions[bot]
4381c29494 chore(i18n): refresh native es locale 2026-07-04 07:43:53 +00:00
github-actions[bot]
2dc7bd19cb chore(i18n): refresh native de locale 2026-07-04 07:42:31 +00:00
github-actions[bot]
4997802eb0 chore(i18n): refresh native pt-BR locale 2026-07-04 07:42:17 +00:00
github-actions[bot]
db72ffd5d4 chore(i18n): refresh native zh-TW locale 2026-07-04 07:40:47 +00:00