Commit Graph

59105 Commits

Author SHA1 Message Date
Vincent Koc
e71cf0ffcb fix(release): tolerate npm propagation after publish 2026-06-16 09:51:47 +08:00
Vincent Koc
3c65127827 fix(qa): preserve WhatsApp live failure diagnostics 2026-06-16 03:42:26 +02:00
Vincent Koc
a4e7d9a0db test(plugin-sdk): ratchet SQLite helper surface 2026-06-16 09:36:32 +08:00
Vincent Koc
ac8a3f367c fix(sqlite): disable WAL on network filesystems 2026-06-16 09:36:32 +08:00
openclaw-clownfish[bot]
8694fe7e81 fix(gateway): block internal HTTP session overrides
Reject HTTP session-key overrides that target reserved internal session namespaces while preserving normal explicit session keys.

Co-authored-by: RichardCao <4612401+RichardCao@users.noreply.github.com>
2026-06-16 09:30:27 +08:00
openclaw-clownfish[bot]
073343e2e2 fix(outbound): ignore schema-padded poll metadata on send
Ignore schema-padded poll metadata on plain send actions unless content-bearing poll fields are present.

Co-authored-by: 鄧 偉程 <148790968+weichengdeng@users.noreply.github.com>
2026-06-16 09:29:16 +08:00
Vincent Koc
aa0d710085 fix(release): bound artifact package scans 2026-06-16 03:24:57 +02:00
Vincent Koc
c70b9849d9 fix(agents): handle string assistant message content 2026-06-16 09:23:40 +08:00
Vincent Koc
919c5b7c7b fix(plugin-sdk): calibrate callable surface budget 2026-06-16 03:19:24 +02:00
Vincent Koc
5296dc378f fix(release): bound postpublish dist scans 2026-06-16 03:15:52 +02:00
Shakker
a447f9a43d fix: guard session message cache payloads 2026-06-16 02:08:24 +01:00
Vincent Koc
04b7e192af fix(release): require full validation child run urls 2026-06-16 03:06:01 +02:00
Dallin Romney
450060d7a2 test(qa): expand smoke-ci and release categories and coverage (#93175)
* test(qa): add smoke ci primary coverage evidence

* test(qa): remove overstated primary coverage claims

* test(qa): make release profile include smoke ci

* test(qa): trim taxonomy formatting churn

* test(qa): avoid hardcoded profile names in coverage test

* test(qa): make release profile cover taxonomy

* test(qa): type profile fixture all category flag

* test(qa): include channel delivery in smoke ci profile
2026-06-15 18:05:52 -07:00
Vincent Koc
6bc57ca73a fix(migrate-hermes): snapshot live SQLite archive 2026-06-16 03:01:37 +02:00
Vincent Koc
ea346f4361 fix(sqlite): close databases after failed initialization 2026-06-16 03:00:23 +02:00
Vincent Koc
d5c9e7ea99 test(plugin-sdk): ratchet surface budget checks 2026-06-16 02:56:41 +02:00
Vincent Koc
9eed9c5758 fix(e2e): derive lifecycle proc units 2026-06-16 02:56:41 +02:00
Vincent Koc
1c2363def6 fix(plugin-sdk): refresh QA self-check API baseline 2026-06-16 02:56:41 +02:00
Vincent Koc
b7d53800d6 fix(release): require beta smoke run url 2026-06-16 02:55:19 +02:00
Vincent Koc
6326395c0a fix(state): make SQLite sidecar archives retriable
Archive the canonical legacy database before SQLite sidecars, then detect and finish pending sidecar cleanup on retry without reopening the migrated database.
2026-06-16 02:52:29 +02:00
Vincent Koc
568f2d5631 fix(sessions): guard unsafe transcript serialization cache 2026-06-16 02:43:58 +02:00
Vincent Koc
e94b666e45 fix(mac): isolate dmg image cleanup 2026-06-16 02:43:16 +02:00
Dirk
ee3b7eb7c0 fix(telegram): forward Bot API 10.1 rich_message content to agent (#93418)
* fix(telegram): surface unsupported inbound rich messages

* fix(telegram): isolate rich message placeholders

* fix(telegram): accept typed rich message inputs

* fix(telegram): preserve rich message cache marker

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 08:42:48 +08:00
Alex Knight
2365a137d8 fix(mattermost): keep message tool replies in threads (#93424)
* fix(mattermost): keep message tool replies in threads

* fix(outbound): preserve one-root reply threading

* fix(outbound): preserve explicit reply target precedence

* fix(mattermost): mirror inherited replies to root session

* test(outbound): align reply transport contract

* fix(mattermost): align mirrored thread root

---------

Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 08:36:59 +08:00
Alex Knight
dc09d148bb fix(guards): allow auth profile sqlite reader (#93448)
Allow the auth-profile read-only SQLite bootstrap path through the Kysely guardrail. The runtime already wraps reads with Kysely; the raw DatabaseSync boundary is the short-lived read-only bootstrap.

Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-06-16 10:34:13 +10:00
Gio Della-Libera
55263b3dfa feat(policy): cover exec approvals artifact (#90003)
Add exec approvals artifact evidence to Policy.

- add the execApprovals policy namespace and check IDs for required artifact presence, default/per-agent security posture, autoAllowSkills, and allowlist drift
- read the active exec-approvals.json artifact only when execApprovals policy rules are configured, honoring OPENCLAW_STATE_DIR before the default ~/.openclaw path
- emit redacted posture evidence and stable oc:// references without socket tokens, command text, resolved paths, timestamps, or approval-session details
- document the public policy surface and add focused scanner, doctor, conformance, and CLI coverage

Validation:
- GitHub Actions for head b82eefe492 are green, including Real behavior proof.
- ClawSweeper re-review completed for the same head with proof: sufficient and status: ready for maintainer look.
- Maintainer artifact-boundary acceptance is recorded in the PR discussion and body.

Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com>
2026-06-15 17:30:48 -07:00
ZengWen-DT
01acb34bdb fix(tui): show activity indicator for system-injected runs (#93427)
* fix(tui): show activity indicator for system-injected runs

System-injected runs (bridge-notify, webhook, cron) never go through the
TUI submit path, so no active/pending run id exists when their lifecycle
"start" event arrives. handleAgentEvent dropped events for untracked runs,
leaving the status bar idle until the response landed.

Adopt an untracked lifecycle "start" for the current session (lifecycle
events always carry sessionKey) so the activity indicator shows work is
happening, mirroring how chat deltas adopt runs in handleChatEvent. Local
side-question (btw) runs never claim the active slot.

Closes #51825

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

* fix(tui): preserve concurrent injected run activity

---------

Co-authored-by: zengwen <zeng_wen@foxmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 08:27:59 +08:00
zengLingbiao
03e3ef86af fix(agents): resolve configured default model in runEmbeddedAgent (fixes #93419) (#93428)
* fix(agents): honor configured default model in embedded runs

* fix(agents): resolve embedded defaults from runtime config

* fix(agents): preserve embedded model routing semantics

* test(agents): model current embedded attempts explicitly

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 08:27:19 +08:00
Harjoth Khara
eac3e08cfd fix(line): cap carousel column text at 60 chars when a title or image is set (#93429)
* fix(line): cap carousel column text at 60 chars with title or image

LINE limits a carousel column's text to 60 characters when the column has
a title or thumbnail image, and 120 characters otherwise. createCarouselColumn
always truncated to 120, so a column with a title/image and 61-120 char text
exceeded the limit and made LINE reject the entire carousel reply (HTTP 400).
Apply the conditional limit (mirroring the buttons template) and drop the now
redundant slice in createProductCarousel.

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

* fix(line): apply conditional text limits across templates

* fix(line): truncate template text by code point

* fix(line): preserve grapheme clusters when truncating

* fix(line): apply compact limit for default actions

* fix(line): follow title and thumbnail text limits

* fix(line): truncate template text within UTF-16 limits

* fix(line): preserve required text within template limits

* fix(line): preserve carousel product prices

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 08:23:05 +08:00
NianJiu
a375d6c849 fix(telegram): gate rich messages behind opt-in (#93279)
Restore readable standard Telegram text delivery by default after Bot API 10.1 rich messages rendered as unsupported in current clients. Keep native rich tables and structured messages available through the account-level richMessages opt-in, with account-aware capability advertising and documented structural limits.

Fixes #93263.
2026-06-15 17:22:41 -07:00
Vincent Koc
9dbf8f718f fix(sessions): guard append cache after extension serialization 2026-06-16 08:13:38 +08:00
Vincent Koc
fd806ada64 fix(agents): bound autoreview scope (#93435) 2026-06-16 07:58:07 +08:00
Vincent Koc
4ca8bf086c fix(proxy): close cached SQLite stores by path
Track debug proxy capture stores per database path so replacing or concurrently leasing capture paths cannot orphan SQLite handles and WAL checkpoint timers.
2026-06-16 01:54:09 +02:00
Vincent Koc
b41c0b6746 fix(cli): preserve gateway request errors in json mode 2026-06-16 01:52:23 +02:00
Marcus Castro
52d9d16e1b fix(whatsapp): preserve auth on terminal disconnects (#93076)
* fix(whatsapp): preserve auth on passive terminal stops

* fix(whatsapp): recover stale web auth during relink

* fix(gateway): defer channel stop until qr takeover
2026-06-15 20:50:22 -03:00
Vincent Koc
0ef8620746 fix(auth): wait through SQLite read contention
Apply the canonical SQLite busy timeout to short-lived read-only auth profile reads so a brief rollback-journal exclusive lock cannot make valid persisted credentials appear missing.
2026-06-16 01:41:05 +02:00
Vincent Koc
74c6f175c7 fix(ci): skip transcript guard for older release targets 2026-06-16 07:40:47 +08:00
Alix-007
0d50ec77de fix(memory): swap rollback-journal sidecar during atomic reindex (#93295)
The atomic reindex file ops hardcoded the WAL sidecar pair (-wal/-shm)
when moving, removing, and backing up index files. NFS-backed memory
stores run SQLite under journal_mode=DELETE, which produces a
rollback-journal (-journal) sidecar instead. As a result an index swap
left the previous targets stale -journal next to the freshly published
2026-06-16 07:37:17 +08:00
Dr Rushindra Sinha
eccfacb02c fix(whatsapp): stop markdownToWhatsApp dropping code spans followed by a digit (#93409)
The inline-code/fence restore step matched the placeholder index with a
greedy `(\d+)`, so a digit in user text immediately after a code span
(e.g. `code`5) was absorbed into the index, resolved to undefined, and
`?? ""` deleted both the code span and the digit. Terminate the
placeholder index with the existing NUL marker so the index boundary is
unambiguous.

Co-authored-by: Dr Rushindra Sinha <5796457+rushindrasinha@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 07:35:28 +08:00
Matt Gunnin
f08b24e63c fix(discord): suppress tool progress for message-tool replies (#93412)
* fix(discord): suppress tool progress for message-tool replies

* fix(discord): preserve explicit status reactions for tool-only replies

* fix(discord): keep explicit status reactions private

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 07:35:15 +08:00
Vincent Koc
c32ba171db fix(qa): fail unsuccessful self-checks 2026-06-16 01:32:47 +02:00
Shakker
e64379dddb fix: stabilize transcript cache and CLI env isolation 2026-06-16 00:27:53 +01:00
Josh Lehman
127e174c9e refactor: route auto-reply sessions through session seam (#89124)
* clawdbot-6f0: route agent runtime session writes through seam

* clawdbot-6f0: route command entry persistence through seam

* test: ratchet auto-reply session accessor writes

* refactor: scope embedded attempt quota reads

* test: ratchet session store save writer
2026-06-15 15:50:38 -07:00
joshavant
21e3cfa5e9 Add Apple Watch screenshot pipeline 2026-06-16 00:40:40 +02:00
Vincent Koc
c8e70708e9 fix(ci): restore main checks 2026-06-16 06:36:10 +08:00
Harjoth Khara
0bb415bf66 fix(sessions): preserve behavior overrides across rollover
Carry user behavior overrides across implicit daily/idle session rollover while preserving existing model fallback clearing behavior.
2026-06-16 06:35:26 +08:00
Dr Rushindra Sinha
00c58b6613 fix(whatsapp): notify when trailing media send fails
Notify users when a later WhatsApp media attachment fails instead of silently dropping it.
2026-06-16 06:35:09 +08:00
Vincent Koc
50dbd46aa6 test(agents): mark runtime contract delivery as sent 2026-06-16 06:31:06 +08:00
Keeley Hoek
baeedaa316 fix(discord): reject malformed realtime consult calls
Catch malformed realtime consult tool-call args, return a tool error, and avoid crashing Discord voice handling. Includes e2e coverage.
2026-06-16 06:27:49 +08:00
litang9
0f71a665ed fix(logging): avoid stalled warnings for active model calls
Classify owned silent model calls as long-running until the abort threshold while preserving stalled handling for ownerless stale activity, with diagnostics tests and docs.
2026-06-16 06:27:40 +08:00