Commit Graph

66965 Commits

Author SHA1 Message Date
Sahibzada
7cf3a56ade fix(agents): warn on cron announce skip (#90566)
* fix(agents): warn on cron announce skip

* fix(agents): gate cron announce skip warnings
2026-07-01 01:08:11 -07:00
pick-cat
302524bbd0 fix(infra): guard delivery queue inflate against corrupted entry_json (#98354)
* fix(infra): guard delivery queue inflate against corrupted entry_json

* fix(infra): use toSorted in delivery queue test
2026-07-01 01:07:44 -07:00
Harjoth Khara
de50acd749 fix(ui): collapse duplicate assistant groups during segmented streaming (#92063)
Fold a contiguous run of in-flight stream/reading-indicator items into one
assistant group (one avatar/footer, segments stacked as bubbles) so a segmented
streaming reply no longer flashes a separate avatar+footer per segment.
Render-layer only: the shared ChatItem types and build-chat-items.ts are
untouched, and a message/group/divider breaks the run so interleaved tool calls
keep their own groups.

Refs #63956

AI-assisted (Claude Code).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 01:05:51 -07:00
ooiuuii
53557f9618 Fix extension exec process-tree termination (#98340) 2026-07-01 01:05:41 -07:00
joshavant
491a6c846d fix(android): hide status bar in release screenshots 2026-07-01 03:04:52 -05:00
dwc1997
cc8a454d7e test(infra): add unit tests for SQLite user_version pragma helper (#98369)
* test(infra): add unit tests for SQLite user_version pragma helper

* ci: trigger re-review
2026-07-01 01:04:29 -07:00
TUARAN
fadf76d05f fix(gateway): hint missing external plugin for web login (#90517)
* fix(gateway): hint missing official plugin for web login

* fix(gateway): keep missing web login hints actionable
2026-07-01 01:04:09 -07:00
Masato Hoshino
76f9b6d837 fix(gateway): surface systemd start-limit exhaustion (#98291)
* fix(gateway): surface systemd start-limit exhaustion

* fix(gateway): avoid start-limit false positive for exit 78
2026-07-01 01:01:15 -07:00
Spencer Fuller
a9945d1e7d Fix active-memory stale ops summaries (#95888)
Co-authored-by: costaff <costaff-lapclaw-001@efiducian.com>
2026-07-01 00:59:47 -07:00
Sergio Cadavid
1f754189b4 fix(agents): preserve runtime settings overrides (#92237) 2026-07-01 00:59:05 -07:00
Vincent Koc
6f908262cc Merge branch 'main' of https://github.com/openclaw/openclaw
* 'main' of https://github.com/openclaw/openclaw:
  fix(status): surface unregistered memory embedding providers (#97968)
2026-07-01 00:53:07 -07:00
Vincent Koc
8516018956 refactor(sessions): centralize export transcript parsing 2026-07-01 00:48:20 -07:00
Vincent Koc
7b313e4cc1 refactor(security): centralize safe-bin config normalization 2026-07-01 00:48:20 -07:00
Vincent Koc
e731d4078f refactor(agents): reuse process stdin writer 2026-07-01 00:47:54 -07:00
Vincent Koc
10d1af6867 refactor(sessions): centralize scoped store path resolution 2026-07-01 00:47:54 -07:00
Masato Hoshino
0a9708ed0f fix(status): surface unregistered memory embedding providers (#97968) 2026-07-01 00:46:49 -07:00
snowzlmbot
b63e06f68a fix(llm): preserve structured tool result replay
Preserve structured tool-result replay text across provider transports while keeping provider-facing redaction and Anthropic media ordering intact.

Thanks @snowzlmbot!
2026-06-30 23:44:02 -07:00
Peter Steinberger
b2355ef6a2 fix(ios): improve light and dark appearance contrast (#98443) 2026-07-01 07:31:42 +01:00
Josh Avant
6495358f17 fix: Android setup codes accept local mDNS gateway hosts (#98439)
* Fix Android mDNS setup-code cleartext policy

* Align Android gateway diagnostics cleartext guidance
2026-07-01 01:18:49 -05:00
Josh Avant
0c7bac34ae fix(ios): classify TLS fingerprint timeouts (#98429)
* fix(ios): classify gateway TLS fingerprint timeouts

* Add discovered TLS trust regression test
2026-07-01 01:06:13 -05:00
Ayaan Zaidi
fc5ba0e58b test(gateway): remove cron redaction casts 2026-06-30 22:52:26 -07:00
snowzlmbot
a68f7200d8 fix(cron): strip nested job diagnostics from webhook payloads 2026-06-30 22:52:26 -07:00
snowzlmbot
94e949f46d fix(cron): preserve action-required command output 2026-06-30 22:52:26 -07:00
Peter Steinberger
c52583a022 feat(openai): add GPT-5.6 series support (#98333)
* feat(openai): add GPT-5.6 series support

* docs: refresh map for GPT-5.6

* fix(openai): preserve GPT-5.6 thinking metadata

* fix(codex): sync managed app server version

* fix(codex): sync managed app server version

* fix(openai): account for GPT-5.6 cache writes

---------

Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
2026-07-01 06:48:57 +01:00
Masato Hoshino
2c7e989686 fix(doctor): recover legacy cron archive across devices (#98217)
* fix(doctor): recover legacy cron archive across devices

* fix(doctor): harden legacy cron archive retries

* fix(doctor): canonicalize shipped cron retry shape

* fix(doctor): persist legacy cron migration receipts

---------

Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
2026-07-01 06:39:11 +01:00
Peter Steinberger
c230ab3c92 improve(ios): clarify Control and Talk visual hierarchy (#98423)
* feat(ios): refine control and talk visual hierarchy

* feat(ios): refine control and talk visual hierarchy

* feat(ios): refine control and talk visual hierarchy
2026-07-01 06:19:58 +01:00
Dallin Romney
9003042c5f fix(cli): explain how to recover from device approve deadlock (#98146)
* fix(cli): explain how to recover from device approve deadlock

`openclaw devices approve` could fail two ways with no path forward:

- When the calling device can't approve its own scope upgrade (it lacks
  operator.approvals) and no loopback local fallback is available (e.g. a
  remote --url gateway), the raw "scope upgrade pending approval" error
  propagated with no guidance.
- When the request id wasn't found in pending state (already approved,
  expired, or superseded), it printed only "unknown requestId".

Surface actionable guidance instead:

- On an authorization failure, explain that the device can't approve its
  own upgrade and point to `--token`/`--password` (gateway owner creds) or
  approving from a device that already holds operator.approvals.
- On a missing request, point to `openclaw devices list` and
  `openclaw devices approve --latest`.

AI-assisted (Claude Code).

* fix(cli): clarify device approval recovery

* fix(cli): avoid unusable approval credential advice
2026-06-30 22:17:42 -07:00
Josh Avant
ad59492d3c fix: show actionable mobile protocol mismatch recovery (#98385)
* Fix mobile protocol mismatch recovery

* Test iOS protocol mismatch connect failures

* Fix iOS protocol mismatch problem actions
2026-07-01 00:11:03 -05:00
Paul Frederiksen
d68ba5edc5 Suppress expired exec approval followup warnings (#66685)
* fix(agents): suppress expired approval followup warnings

* fix(agents): suppress expired approval followup warnings

---------

Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
2026-07-01 05:39:06 +01:00
Peter Steinberger
d0f655811c fix(ios): use Gateway speech providers in Talk (#98376)
* fix(ios): route gateway speech through talk.speak

* fix(ios): preserve realtime fallback state

* fix(ios): satisfy audio delegate concurrency

* fix(ios): ignore stale audio callbacks

* fix(ios): ignore stale audio callbacks

---------

Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
2026-07-01 05:33:51 +01:00
Brian Snyder
9f98b6e174 fix(gateway): emit stale exec approval followup diagnostics (#98293)
* fix(gateway): emit stale exec approval followup diagnostics

* fix(gateway): cover approval suppression diagnostics in ci

* fix(logging): preserve approval ids in stability bundles

* docs(exec): document suppression diagnostics

---------

Co-authored-by: BSnizND <199837910+BsnizND@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
2026-07-01 05:20:53 +01:00
ooiuuii
5a5913a98b fix(ios): avoid transient duplicate final replies (#98117)
* Fix iOS final reply dedupe

* fix(ios): scope final message reconciliation

* docs(ios): explain final message reconciliation key

---------

Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-06-30 23:05:33 -05:00
Momo
59df350f3c fix: retry image describe fallback models (#98347)
Summary:
- Merged fix: retry image describe fallback models after ClawSweeper review.

Automerge notes:
- Addressed earlier ClawSweeper review findings before merge.

Validation:
- ClawSweeper review passed for head 55b26bd373.
- Required merge gates passed before the squash merge.

Prepared head SHA: 55b26bd373
Review: https://github.com/openclaw/openclaw/pull/98347#issuecomment-4850122718

Co-authored-by: momothemage <niuzhengnan@163.com>
Approved-by: momothemage
2026-07-01 04:00:39 +00:00
Momo
f5d0c370d6 fix(security): warn on agent skill MCP boundary drift (#98352)
Summary:
- Merged fix(security): warn on agent skill MCP boundary drift after ClawSweeper review.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head ab3c29ef4c.
- Required merge gates passed before the squash merge.

Prepared head SHA: ab3c29ef4c
Review: https://github.com/openclaw/openclaw/pull/98352#issuecomment-4850104358

Co-authored-by: momothemage <niuzhengnan@163.com>
Approved-by: momothemage
2026-07-01 03:56:28 +00:00
Brian Snyder
63dc9201c6 fix(ios): open app on chat by default (#98353)
Co-authored-by: BSnizND <199837910+BsnizND@users.noreply.github.com>
2026-06-30 23:54:01 -04:00
Josh Avant
21d1e1f0fc Fix Android TLS fingerprint timeout handling (#98366) 2026-06-30 22:35:45 -05:00
Gio Della-Libera
a1cddbdb57 doctor: expose device pairing findings (#97366) 2026-06-30 20:34:05 -07:00
Ben Badejo
180a970ac0 fix(heartbeat): scope commitment fan-out prompts (#98169)
* fix(heartbeat): scope commitment fan-out prompts

* fix(heartbeat): isolate commitment fan-out runs

* fix(heartbeat): isolate commitment fan-out runs

---------

Co-authored-by: Benjamin Badejo <ben@benbadejo.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-30 20:25:28 -07:00
Momo
8c5d1dca78 fix: prevent skill-creator from bypassing workshop proposals (#98346)
Summary:
- The branch adds bundled skill-creator guidance to route durable OpenClaw skill work through Skill Workshop proposals and removes the direct `init_skill.py` scaffold helper plus its test.
- PR surface: Docs +6, Other -429. Total -423 across 3 files.
- Reproducibility: yes. source-level: current main has `init_skill.py` writing a live `SKILL.md` directly, whi ... `. I did not run the direct helper as a repro because this review was read-only and that path writes files.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head 8eca165447.
- Required merge gates passed before the squash merge.

Prepared head SHA: 8eca165447
Review: https://github.com/openclaw/openclaw/pull/98346#issuecomment-4849855806

Co-authored-by: momothemage <niuzhengnan@163.com>
Approved-by: momothemage
2026-07-01 03:24:22 +00:00
Marcus Castro
fa3c9de459 test(qa-lab): harden whatsapp qa scenarios (#95622)
* fix(whatsapp): preserve group participant identity in QA driver

* fix(whatsapp): infer same-chat action targets

* test(qa-lab): record whatsapp scenario posture

* test(qa-lab): harden whatsapp live scenario coverage

* docs(qa): describe whatsapp qa lane coverage
2026-07-01 00:01:09 -03:00
Gio Della-Libera
4ac5cf8636 Doctor: expose workspace status findings (#97358)
* doctor: expose workspace status findings

* fix(doctor): pass workspace drift into lint

* fix(doctor): pass allow-exec into workspace lint drift
2026-06-30 19:33:52 -07:00
Gio Della-Libera
816038e97a doctor: add memory search lint findings (#97137)
* doctor: add memory search lint findings

* fix(doctor): quiet memory lint for auth-profile sources

* fix(doctor): require provider-specific auth source for memory lint

* fix(doctor): preserve qmd memory lint warnings

* fix(doctor): validate auth source credentials
2026-06-30 18:54:57 -07:00
liuhao1024
92a2681a0d fix(agents): estimate harness role sizes in context guard char estimator (#97928)
The in-loop context-overflow guard (installToolResultContextGuard) sizes
transcript messages via estimateMessageChars, which only handled user,
assistant, and toolResult roles. Harness roles (bashExecution,
compactionSummary, branchSummary, custom) fell through to a flat 256-char
return, causing the guard to undercount summary- and bash-dominated
context by orders of magnitude.

This is the sibling defect of the just-merged #97861 which fixed the same
class in estimateMessageTokenPressure (the pre-prompt precheck). This
commit applies the identical pattern to the live in-loop guard estimator.

Fixes #97927
2026-06-30 18:51:59 -07:00
Yuval Dinodia
54e6afdc29 fix(auto-reply): stop level directives from eating the next message word (#97929)
matchLevelDirective consumed the token after a level directive
(/think, /verbose, /trace, /fast, /reasoning, /elevated) as the level
argument unconditionally, and extractLevelDirective stripped it from the
body whether or not it was a valid level. So a message like
"/verbose explain quantum computing" reached the agent as
"quantum computing", silently dropping the user's first word, and the
whitespace scan crossed newlines so "/verbose\nSummarize this" lost
"Summarize".

Treat the trailing token as the directive argument only when it
normalizes to a valid level or is the sole remaining token (preserving
the unrecognized-level hint and the default/inherit clear sentinels).
When two or more words follow, the directive acts argument-less and the
message text is preserved intact, matching the exec and queue parsers
that stop at an unrecognized token.
2026-06-30 18:51:51 -07:00
Hannes Rudolph
6603437afb docs: refresh docs map for v2026.6.11 (#98325) 2026-06-30 19:50:42 -06:00
Yuval Dinodia
d9aedc32a1 fix(gateway): keep provider-owned CLI sessions across the daily default reset (#97931)
The gateway agent.run freshness decision called evaluateSessionFreshness
directly at both of its decision sites with no provider-owned guard, so a
provider-owned CLI session (claude-cli, codex, gemini-cli) under the default
reset config was rotated after the daily boundary when a turn ran through the
gateway path (webchat, openclaw agent, ACP, control UI, cron, heartbeat). The
rotation cleared the CLI session binding and split the transcript, violating
the documented exemption that the inbound auto-reply path and the canonical
session helper already honor.

Route both gateway freshness decisions through the same
resetPolicy.configured !== true && hasProviderOwnedSession(entry) skip the
inbound path uses, and export hasProviderOwnedSession so the predicate has one
shared definition instead of a third copy. Explicit session.reset and /reset
still cut these sessions.
2026-06-30 18:50:20 -07:00
scotthuang
bc8fa1393b fix: show in-progress status for channel runs (#98257)
Summary:
- Merged fix: show in-progress status for channel runs after ClawSweeper review.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head 08eec41769.
- Required merge gates passed before the squash merge.

Prepared head SHA: 08eec41769
Review: https://github.com/openclaw/openclaw/pull/98257#issuecomment-4849525931

Co-authored-by: scotthuang <scotthuang@tencent.com>
Approved-by: takhoffman
2026-07-01 01:50:12 +00:00
Hannes Rudolph
7ceaf0ece3 docs: publish release notes for v2026.6.11 (#98319) 2026-06-30 19:42:12 -06:00
ooiuuii
c5bc35de12 Redact bare Fireworks API keys (#98226)
* Redact bare Fireworks API keys

* fix(logging): harden Fireworks key redaction

* fix(logging): harden Fireworks key redaction

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-30 18:40:25 -07:00
Yuval Dinodia
150ca2fedd fix(agents): keep merged delivery routes account-bound (#98240)
* fix(agents): keep merged delivery routes account-bound

mergeDeliveryContext gated route-field crossing on channel only, so a
completion origin that knew its account but not a concrete target
inherited a different account's to/threadId on the same channel. A
subagent, cron, or media completion for bot-a could be addressed to
bot-b's chat but sent through bot-a (cross-account misroute) or dropped.

This restores the account-bound guard added in 1ed8592467 and removed as
collateral by 025db6cf9e (PR #89949); same-account and missing-account
merges still backfill so the media route-pin path is preserved. Restores
the deleted regression test.

* fix(agents): centralize account-bound completion routes

---------

Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
2026-06-30 18:32:35 -07:00