Commit Graph

66940 Commits

Author SHA1 Message Date
Agustin Rivera
8b0eac7927 fix(plugins): enforce install policy in wrappers (#93357) 2026-06-15 13:59:37 -07:00
Josh Lehman
efa9a6110b refactor: add transcript runtime identity contract (#89201) 2026-06-15 13:04:03 -07:00
Michael Appel
32af1c0697 Control Telegram group history context (#89547)
* fix(telegram): control group history context

* fix(telegram): keep history mode type local

* fix(telegram): respect history mode during forum recovery
2026-06-15 12:37:04 -07:00
Vincent Koc
b3128ba93d fix(cron): require explicit poll delivery targets 2026-06-16 03:09:36 +08:00
Shakker
eb67ac5cbe fix: trim whatsapp admission sender identity 2026-06-15 20:06:16 +01:00
Marcus Castro
ef6b7e3659 docs(plugins): record whatsapp admission compatibility 2026-06-15 20:06:16 +01:00
Marcus Castro
a355825060 refactor(whatsapp): deprecate admission top-level fields 2026-06-15 20:06:16 +01:00
Marcus Castro
2cc25aa909 test(whatsapp): cover inbound admission contract 2026-06-15 20:06:16 +01:00
Marcus Castro
2758140607 refactor(whatsapp): add inbound admission envelope 2026-06-15 20:06:16 +01:00
Agustin Rivera
55d1324c7d fix(flock): bind allow-always to wrapped command (#93362)
* fix(flock): bind allow-always to wrapped command

* fix(flock): handle wrapper option aliases

* fix(flock): handle wrapper option aliases
2026-06-15 11:56:15 -07:00
Shakker
dc573a38dc fix: update dependency pins 2026-06-15 19:48:43 +01:00
Agustin Rivera
9dbe25e0f6 fix(outbound): guard cross-context message mutations (#93358) 2026-06-15 11:46:16 -07:00
Vincent Koc
e3ca10438a fix(agents): recognize bare-ok broadcast sends 2026-06-16 02:45:41 +08:00
Vincent Koc
68cbd1ae63 test(agents): align fallback delivery mock 2026-06-16 02:45:41 +08:00
Vincent Koc
0ea08076c3 fix(agents): preserve CLI message delivery evidence 2026-06-16 02:45:41 +08:00
Agustin Rivera
04d8a96b6c fix(ci): verify performance workflow downloads (#93355) 2026-06-15 11:43:55 -07:00
Shakker
5c2487dc9a test: type cli test mocks 2026-06-15 19:34:16 +01:00
Shakker
c40db057da fix: clean ios release signing lint 2026-06-15 19:29:26 +01:00
Chunyue Wang
df521a6459 fix(gateway): guard fast-path startup migrations (#93118)
* fix(cron): run legacy cron store migration in gateway fast path

* fix(cli): run gateway startup migrations

* fix(gateway): guard startup migrations and config selection

* fix(gateway): reconcile final startup environment

* fix(gateway): preserve guarded startup env semantics

* fix(gateway): guard service-mode recovery candidates

* fix(config): reconcile normalized env precedence

* fix(cli): clear replaced proxy signal handlers

* fix(gateway): reject invalid final config

* test(gateway): cover invalid future config reset guard

* test(cli): remove unused recovery state
2026-06-16 01:54:29 +08:00
Alix-007
a0b16f37e8 fix(sessions): cache validated transcripts across turns (#90412)
Avoid repeated full JSONL parsing and cloning on every embedded-agent turn by keeping a bounded, validated transcript cache and advancing repair incrementally.

The final implementation preserves lock ownership and exact fingerprint validation, publishes only verified writes, handles header rewrites and unterminated JSONL safely, and adds focused regression coverage.

Fixes #83943.

Co-authored-by: Alix-007 <li.long15@xydigit.com>
2026-06-15 10:32:35 -07:00
Michael Appel
cc000e0ffe fix(cron): preserve scheduled turn tool policy [AI] (#91499)
* fix(cron): preserve creator tool policy for scheduled turns

* fix(cron): cap edited scheduled turns

* fix(cron): preserve scheduled turn allowlists

* fix(cron): cap filtered tool surfaces

* fix(cron): cap scheduled turn conversions

* fix(cron): include bundled scheduled tools
2026-06-15 10:29:11 -07:00
joshavant
9092578d8d feat: configure ios app store release upload 2026-06-15 19:27:55 +02:00
joshavant
a23de348b2 feat: configure ios app store release signing 2026-06-15 19:27:55 +02:00
joshavant
7650397a22 fix: align ios agent rows 2026-06-15 19:27:55 +02:00
joshavant
5a2641fc41 test: add ios screenshot automation 2026-06-15 19:27:55 +02:00
joshavant
377f6181a9 feat: add ios screenshot fixture mode 2026-06-15 19:27:55 +02:00
joshavant
b896e22e10 fix: stabilize ios screenshot status bar 2026-06-15 19:27:55 +02:00
joshavant
1ffda5d3ca fix: migrate ios identifiers to openclawfoundation 2026-06-15 19:27:55 +02:00
joshavant
ec2788cf80 fix: launch configured ios bundle 2026-06-15 19:27:55 +02:00
joshavant
379de52b59 fix: use canonical ios bundle identifiers 2026-06-15 19:27:55 +02:00
joshavant
0944045b75 chore: prefer canonical ios signing team 2026-06-15 19:27:55 +02:00
joshavant
c932bf377b chore: update ios configuration 2026-06-15 19:27:54 +02:00
Agustin Rivera
ddb07fc597 fix(plugins): require owner for plugin writes (#93353) 2026-06-15 10:22:28 -07:00
Yuval Dinodia
caab343461 fix(reply): project preflight compaction gate by next-input on fresh tokens (#91488)
The fresh-tokens path of runPreflightCompactionIfNeeded fed the prompt-only
entry.totalTokens snapshot straight into the budget threshold check, dropping
the current user prompt estimate and the previous turn's output. The sibling
memory-flush gate and this function's own stale branch already project
base + output + estimate via resolveEffectivePromptTokens, so the preflight
gate under-triggered and let over-budget requests through to overflow-retry.

Project the fresh persisted base the same way: read transcript output when near
the threshold (mirroring the memory-flush gate's buffer) and run the fresh base
through resolveEffectivePromptTokens before the threshold check.
2026-06-16 01:10:42 +08:00
ZZ.No.1
8e55348ff9 fix(agents): canonicalize node binding selectors (#66985) 2026-06-16 01:09:01 +08:00
Bakhtiyar
8e56cf591d fix(cli): disable ScheduleWakeup/CronCreate in --print claude runs (#84434)
Claude Code built-ins ScheduleWakeup and CronCreate schedule a deferred
re-invocation managed by the persistent CLI runtime. In OpenClaw's
one-shot `claude -p` invocations the process exits at end_turn, so any
wakeup or cron registered during the run has no host to fire into and is
silently lost. Symptom: a CLI session spawns a background sub-agent,
calls ScheduleWakeup to poll for completion, ends the turn, and never
picks up the result — the work finishes unreviewed.

Append `--disallowedTools "ScheduleWakeup,CronCreate"` to both `args`
and `resumeArgs` in the anthropic CLI backend so the model cannot reach
for tools that don't survive the run mode. The right pattern in CLI
sessions is Monitor on the background output file, or a synchronous
sub-agent.
2026-06-16 01:08:51 +08:00
Peter Steinberger
40f1190c8b fix(configure): remove duplicate password wrapper 2026-06-15 12:54:54 -04:00
Josh Lehman
8ded756284 refactor: add transcript reader seam (#89121)
Merged via squash.

Prepared head SHA: 7ea7ea47ef
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-15 09:41:50 -07:00
Vyctor H. Brzezowski
f00de6b06a docs(cli): add agent selector to cli backend quick start (#74613) 2026-06-16 00:39:48 +08:00
Harjoth Khara
158d3db85a fix(gateway): pass managed inbound PDFs through chat.send (#90115)
* fix(gateway): pass managed inbound PDFs through when sandbox staging fails

chat.send force-stages offloaded non-image media into the sandbox workspace when
one exists. If that optional staging was unavailable or incomplete,
prestageMediaPathOffloads deleted the media buffers and failed the whole send
with a 5xx — even for already-managed inbound PDFs that are safe to read
host-side. A Control-UI-uploaded PDF could fail to send.

When staging throws or is incomplete, fall back to the absolute managed paths
iff every non-image offloaded ref is a managed-inbound application/pdf (reusing
the existing resolveInboundMediaReference allow-check + the PDF mime type). This
mirrors the existing no-sandbox passthrough: with MediaWorkspaceDir unset the
managed media dir is a default media-understanding local root, so the absolute
path resolves host-side. Gated all-or-nothing so a single non-managed or non-PDF
ref keeps the previous delete + 5xx behavior. Success path and oversized 4xx are
unchanged; managed buffers are not deleted on the fallback.

Fixes #90097

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(gateway): exempt managed PDFs from staging cap

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 00:39:17 +08:00
Alix-007
6cd6e3f39e fix(plugins): serialize binding approval saves (#88945) 2026-06-16 00:39:01 +08:00
Gio Della-Libera
4bb4252042 fix(cli): report Gemini CLI runtime auth status (#86544) 2026-06-16 00:38:27 +08:00
Spencer Fuller
95da644f6d docs(windows): fix WSL gateway-autostart recipe for WSL ≥ 2.6.1.0 idle-termination (#90992)
* docs(windows): fix WSL gateway-autostart recipe for WSL ≥ 2.6.1.0

Replace /bin/true with dbus-launch true to work around the WSL ≥ 2.6.1.0
idle-termination regression (microsoft/WSL #13416): the distro exits 15-20 s
after the last wsl.exe client detaches even with loginctl linger and an active
user service. dbus-launch true keeps a child-of-init process alive (workaround
from microsoft/WSL discussion #9245, validated on WSL 2.7.3.0).

Also replace /ru SYSTEM with /ru "$env:USERNAME". Per-user WSL distros (the
default setup) are not enumerable by the SYSTEM account — the task runs
silently without starting the distro. Running as the installing user account
fixes this; Windows prompts for the password at task creation time.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* docs(windows): add dbus-x11 prerequisite for WSL keepalive

dbus-launch is provided by dbus-x11, which is not installed by default
on fresh Ubuntu WSL distros. Without it the scheduled task hits
command-not-found silently. Add the apt-get install step before the
linger and gateway-install steps so the recipe is self-contained.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-06-16 00:38:03 +08:00
ToToKr
6451550cd7 fix(heartbeat): refresh stale Current time line on every helper call (#44993) (#75025)
Rebase onto current upstream/main (head 4780546c12). Resolves the conflict from upstream's two-line Current time + Reference UTC helper output: appendCronStyleCurrentTimeLine now refreshes/collapses any prior helper-injected block via CURRENT_TIME_LINE_RE instead of returning early on a stale base.includes('Current time:') match. Preserves upstream-added doc comments. 16/16 current-time.test.ts pass; tsgo core clean.
2026-06-16 00:37:40 +08:00
Josh Lehman
10a4c7c10b feat(status): surface plugin health (#91952)
Merged via squash.

Prepared head SHA: 2cd914cec1
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-15 09:36:13 -07:00
Ayaan Zaidi
fa9b8c8c6b test(telegram): cover raw rich progress output 2026-06-15 22:02:39 +05:30
Ayaan Zaidi
f5a9456219 fix(telegram): preserve rich progress command output 2026-06-15 22:02:39 +05:30
ZengWen-DT
7208567382 fix(control-ui): respect agents.defaults.timeFormat for timestamps (#93297)
Thread the existing agents.defaults.timeFormat setting through the Control UI
bootstrap config so WebChat/Control UI timestamps render in the configured
12h/24h clock instead of always using the browser locale default. "auto"
keeps the browser default, so existing deployments are unchanged.

Closes #58147

Co-authored-by: zengwen <zeng_wen@foxmail.com>
2026-06-16 00:29:44 +08:00
fsdwen
b90f7d2fd0 fix(cron): trust agent output when channel is unresolved without explicit delivery (#92817)
resolveCronChannelOutputPolicy checked deliveryRequested === false
when there is no channel. Since deliveryRequested is optional
(?: boolean), undefined and missing opts both returned false,
blocking the hasRecoveredToolWarning rescue path for --no-deliver
cron runs whose agent recovered successfully.

Change === false to !== true: when no channel exists, prefer the
agent's final visible text unless delivery was explicitly
requested.

Fixes #90664

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-16 00:28:22 +08:00
Sash Zats
1e2363b687 fix(ios): refresh permission rows after grants (#91776) 2026-06-16 00:26:54 +08:00