Commit Graph

76838 Commits

Author SHA1 Message Date
Peter Steinberger 70f84286c9 fix(telegram): preserve inbound quote attribution
Preserve native Telegram quote attribution in agent-visible input and terminate quotes before following ordinary text.

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-06 21:11:02 +05:30
Peter Steinberger 9213792cdf refactor(qa): derive scenario runtime API from deps (#119974) 2026-08-06 08:40:53 -07:00
Vincent Koc 75e5c2694f fix(qa): enforce scenario provider lane metadata (#119908)
Punchcard-Session: cobalt-valley-meadow-mg
2026-08-06 23:33:17 +08:00
wangmiao0668000666 978f9b15eb fix(test): zalo lifecycle suites fail Windows teardown with EBUSY on agent state DB (#119809)
* fix(test): close zalo agent state databases before lifecycle temp-dir removal (#119796)

* fix(test): close zalouser agent state databases before ingress temp-dir removal (#119796)

* fix(test): close zalouser fixture databases before restoring parent state env (#119796)

ClawSweeper re-review finding: the ingress fixture restored
OPENCLAW_STATE_DIR before closing cached per-agent databases, so lease
release could open a shared-state write against the parent fixture env.
Move both closes ahead of the env restore (canonical fixture order) and
add a nested-environment regression asserting the parent state dir stays
untouched.
2026-08-06 23:26:38 +08:00
Vincent Koc f5add8197f test(qa): provide Matrix module-flow fixture (#119953)
Punchcard-Session: cobalt-valley-meadow-mg
2026-08-06 21:56:41 +08:00
Vincent Koc a914682467 fix(release): stream JSON preparation output (#119951) 2026-08-06 21:54:26 +08:00
Peter Steinberger 08a3f5f949 test(docker): shorten Unix socket fixture paths (#119952) 2026-08-06 06:44:37 -07:00
Peter Steinberger 913b53ad80 fix(channels): preserve bundled delivery contracts
Preserves pending Telegram replies, Discord webhook preview policy, forwarded Slack file context, and QQBot target recognition.
2026-08-06 18:44:15 +05:30
hyuga611 cd009e72f0 docs: openclaw-refactor-docs points at a skill renamed in 0dabb70 (#119394)
* docs: point openclaw-refactor-docs at technical-documentation

The openclaw-docs skill was removed in 0dabb7010b,
which replaced it with technical-documentation. openclaw-refactor-docs was not
updated and still told the agent to read ../openclaw-docs/SKILL.md first, so the
read returned nothing and the refactor proceeded without the style and page-type
rules it was supposed to apply.

* docs: use a workspace-relative path for the technical-documentation read

OpenClaw resolves relative read paths from the session workspace cwd
(resolveReadPath -> resolveToCwd -> resolvePath(cwd, path) in
src/agents/sessions/tools/path-utils.ts), not from the directory holding
the skill file. ../technical-documentation/SKILL.md therefore resolved
outside the workspace and the read still failed.

Use .agents/skills/technical-documentation/SKILL.md, which is the path
that exists from the workspace root.

* docs: resolve technical-documentation support files via {baseDir}

The skill names ten support files relatively (six references/*.md and four
agents/*.md). read resolves relative paths from the session workspace cwd,
so none of them resolved: they exist only under the skill directory.

{baseDir} is the documented mechanism for exactly this and resolves against
the skill own directory, so it works regardless of where the skill is
installed. CONTRIBUTING.md is left alone: it is a workspace-root file and
already resolves.

* Revert the {baseDir} rewrite: it was cleanup, not a fix

The skills catalog prompt already instructs the model to resolve a relative
reference against the skill directory and use the resulting absolute path
(src/skills/loading/skill-contract.ts). These ten references were therefore
never broken, and rewriting them does not belong in a rename follow-up.

Restores this file to its state on main.

* Restore the sibling-relative read path

The skills catalog prompt resolves a relative reference against the skill
directory, so ../technical-documentation/SKILL.md resolves to
.agents/skills/technical-documentation/SKILL.md and was already correct.
Rewriting it workspace-relative was churn on a line whose only defect was
the retired skill name.

This leaves the PR as what it claimed to be: three references to a skill
that was renamed in 0dabb70.
2026-08-06 20:57:25 +08:00
Vincent Koc 95fd4d3dc9 fix(device-pair): keep notifier poll off Gateway startup (#119936)
Punchcard-Session: frost-harbor-willow-ev
2026-08-06 20:51:20 +08:00
Vincent Koc 52b8f9be80 fix(plugins): migrate Fish Audio plugin identity (#119900)
* fix(plugins): migrate Fish Audio plugin identity

* fix(plugins): tighten Fish Audio identity migration

* fix(plugins): follow catalog selector for id replacements

* fix(plugins): reject replacement install collisions

* refactor(plugins): reuse skipped update outcomes
2026-08-06 20:50:36 +08:00
Vincent Koc c4292bc8b2 fix(diagnostics): report exporter health in doctor and status (#119816)
* fix(diagnostics): report exporter health transitions

* fix(diagnostics): retire exporter health on shutdown

* test(diagnostics): enforce OTLP protobuf content type

* test(diagnostics): satisfy exporter test type contracts

* fix(diagnostics): redact endpoint-like exporter codes

* fix(diagnostics): coordinate exporter route health

* test(diagnostics): satisfy exporter health static gates

* fix(diagnostics): keep exporter health internal
2026-08-06 20:50:18 +08:00
Peter Steinberger b0c368ae34 test(agents): isolate lifecycle registry persistence (#119931) 2026-08-06 05:24:57 -07:00
Ayaan Zaidi 90e39c49e4 feat(skills): reviewer patch contract, active learning bias, shallow-turn accumulation
Self-learning reviewer edits existing skills via targeted patches: it quotes the exact live text (or appends a section) and the service composes the full body inside the receipt-pinned read that hash-binds the proposal — untouched content survives by construction, and patches auto-apply through the scanner-gated pipeline. Full-body rewrites and oversized-skill edits stay pending for the operator. The review prompt shifts to active capture within the existing evidence gates, and shallow same-sender turns accumulate per session (provider-identity scoped, zero-iteration and duplicate-run contracts honored, aborted provenance carried, bounded state) so quick corrections get reviewed with their own transcripts. Replaces closed #119856.
2026-08-06 17:52:03 +05:30
openclaw-mantis[bot] d5668d83c0 chore(i18n): refresh native locales (#119669)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-06 20:08:30 +08:00
Vincent Koc 4d9c249d40 test(qa): allow restart startup diagnostics (#119928)
Punchcard-Session: quiet-valley-meadow-gq
2026-08-06 19:56:22 +08:00
Peter Steinberger 4d91d44d00 fix(telegram): preserve callback action ownership
Keep Telegram native and typed callback routes under their owning handlers. Expired or malformed typed buttons now clear their controls and return visible unavailable feedback while legacy raw plugin callbacks remain compatible.
2026-08-06 17:23:32 +05:30
Dallin Romney d6fc4a2a95 refactor(qa): make module flows implementation-aware (#118069) 2026-08-06 19:51:28 +08:00
sinner c7de4413a9 fix(cron): reject unsupported generic timeout edits (#119899)
Co-authored-by: zyw02 <zyw02@users.noreply.github.com>

Punchcard-Session: cobalt-willow-summit-z1

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-06 19:45:59 +08:00
Vincent Koc d73eb23b29 fix(release): report seeded changelog provenance truthfully (#119897)
* fix(release): report seeded changelog provenance truthfully

* fix(release): reject legacy provenance formatting

* fix(release): enforce complete provenance records
2026-08-06 19:22:16 +08:00
Dallin Romney 8c64ca24b1 fix(qa): include pinned gateway restart in core runtime proof (#118009)
* fix(qa): run pinned gateway restart runtime pair

* fix(qa): run pinned pair before advisory report
2026-08-06 18:52:20 +08:00
Peter Steinberger f7f270555c test(compaction): provide post-compact usage evidence (#119911) 2026-08-06 03:45:43 -07:00
openclaw-mantis[bot] d7d3dbc3d9 chore(ui): refresh control ui locales (#117315)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-06 18:44:22 +08:00
Vincent Koc a3b0982148 perf(tasks): benchmark durable task registration churn (#119828)
* perf(tasks): add durable registry churn benchmark

* test(tasks): cover registry churn benchmark contract

* chore(tasks): wire registry churn benchmark
2026-08-06 18:37:30 +08:00
Vincent Koc 7321c44246 fix(agents): isolate spawn benchmark samples (#119859) 2026-08-06 18:10:35 +08:00
Vincent Koc f73eb88eda fix(pr): fail fast when temporary storage is unavailable (#119890) 2026-08-06 17:49:19 +08:00
Pavan Kumar Gondhi 818190bd26 fix(gateway): reject capabilities from invalidated clients (#119848) 2026-08-06 15:14:35 +05:30
Dirk f64d7fab21 fix(gateway): preserve plain-text HEAD metadata (#119822)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-06 17:39:16 +08:00
Vincent Koc 01ae9d40fc chore(release): add protected npm placeholder publishing (#119875)
Adds a protected, dry-run-by-default workflow for reserving release-enabled external plugin package names with verified npm 0.0.0 placeholders.
2026-08-06 17:37:09 +08:00
Lu Wang 5a8c27ca41 fix(telegram): verify provider topic delivery
Verify Telegram accepted-message topics before follow-up sends, preserving partial-delivery evidence instead of trusting requested routing.

Co-authored-by: Lu Wang <7668944+wangwllu@users.noreply.github.com>
2026-08-06 15:06:39 +05:30
ruel225 4e141a0523 fix(config): use real newline in invalid-config log message (#119871)
formatInvalidConfigLogMessage used \\n (literal backslash-n) in a
template literal, producing literal text instead of a line break in
gateway startup logs. The sibling createInvalidConfigError already used
a real newline. Operators saw a single-line message with \n text
instead of a readable multi-line block.

Fixes #119870

Co-authored-by: ruel225 <ruel225@users.noreply.github.com>
2026-08-06 17:32:55 +08:00
Vincent Koc beda1e97c6 fix(onboarding): honor external gateway supervision (#119846)
Punchcard-Session: quiet-meadow-timber-mj
2026-08-06 17:26:43 +08:00
Peter Steinberger 83d586083d test(ci): assert timeout signals from supervisor log (#119889) 2026-08-06 02:15:56 -07:00
clawsweeper[bot] bc1f917163 fix(qqbot): remove stale data-directory diagnostic (#119849)
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-08-06 17:09:36 +08:00
Pavan Kumar Gondhi 528c5e0817 fix(feishu): honor cross-context limits for message mutations [AI] (#119845)
* fix(feishu): guard native mutation targets

* fix(outbound): preserve direct resource actions
2026-08-06 14:38:24 +05:30
Vincent Koc c67556df31 fix(tooling): stop pnpm from reconciling shared worktree deps (#119863) 2026-08-06 16:58:01 +08:00
w33d 2ea567972c fix(diagnostics): attribute plugin LLM usage spans (#107937)
Emit usage once at the shared plugin completion boundary and expose host-derived plugin identity only on OTel usage spans. Preserve aggregate metric labels and cover the redacted Gateway path end to end.

Refs #98968

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>
2026-08-06 16:55:53 +08:00
Ayaan Zaidi f99b6a48f7 fix(reply): dedupe room-event prompt envelope and make ambient turns cache-stable
Room-event turns now send the persisted attributed chat line as the active model body, so the turn replays byte-identically and the provider prefix cache survives ambient traffic. The room-event context block keeps only the marker, room backlog, and reply-policy directive: the duplicate marker, bare inbound_event_kind line, and Current event copy of the chatter are gone, and the dead Current event goal anchor is removed from inbound-meta. Net -18 production LOC; quiet-room behavior unchanged (message tool still required for visible replies).
2026-08-06 14:12:18 +05:30
Peter Steinberger d8147f81b7 test(models): align list mocks with prepared runtime (#119876) 2026-08-06 01:35:26 -07:00
Peter Steinberger 245dbacbe0 fix: agent exec loads installed harnesses locally (#119855)
* fix(agents): bind local plugin harness registry (#119852)

* test(agents): isolate local registry in command suites
2026-08-06 00:26:02 -07:00
clawsweeper[bot] ed40d0599b fix(plugins): keep targeted official updates on the core channel (#119799)
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-08-06 15:06:49 +08:00
joshavant e4968af845 test: type CLI gate hook mock 2026-08-06 01:48:09 -05:00
joshavant 779eeaf1b2 fix: preserve auth health for blocked CLI runs 2026-08-06 01:48:09 -05:00
joshavant 43b1e375a9 fix: preserve healthy incompatible auth profiles 2026-08-06 01:48:09 -05:00
joshavant 9702134882 fix: settle Gemini CLI auth preparation failures 2026-08-06 01:48:09 -05:00
joshavant f461701d00 fix: quarantine expired CLI auth profiles 2026-08-06 01:48:09 -05:00
Onur Solmaz 1f10ef8050 fix(agents): recover once from critical tool loops (#118647)
* feat(agents): add bounded tool-loop recovery

* feat(agents): wire loop detection into batch recovery

* test(agents): cover bounded tool-loop recovery

* fix(agents): enforce loop thresholds within tool batches

* fix(agents): retain rejected loop batch evidence

* test(agents): update embedded session recovery fixture

* fix(agents): surface terminal loop recovery failures

* fix(agents): preserve loop recovery across retries

* fix(agents): isolate rejected loop evidence

* fix(agents): terminate native critical tool loops

* fix(agents): canonicalize tool loop actions

* fix(agents): preserve tool loop recovery guidance

* fix(agents): preserve code mode tool identity

* fix(agents): preserve prebatch loop evidence

* fix(agents): order native loop termination

* fix(agents): clean up rebased tool validation

* fix(agents): interrupt codex side turns on critical tool loops

* fix(agents): tighten loop recovery batch lifecycle

* fix(agents): drop unconsumed loop detector type export

* fix(agents): drop unconsumed loop relay exports

* test(agents): add agent subscribe to embedded session doubles

* fix(agents): scope critical loop recovery to embedded runs
2026-08-06 14:09:10 +08:00
Ayaan Zaidi 874c63318b fix(skills): remove regex correction capture; self-learning is reviewer-only
Deletes the deterministic regex capture path that templated raw chat text into skill proposals (junk like a proposal whose whole procedure was one slugified user message). All autonomous learning now flows through the isolated experience reviewer: it sees a bounded workspace skill list, prefers revising pending proposals or updating the governing skill over creating new ones, and treats durable user corrections as first-class evidence. Update proposals are reviewer-only (explicit opt-in) and never auto-apply, since the reviewer drafts them without the live skill body. Removes the producerless pending-suggestion session machinery. Regression test proves the junk path is gone; real-Telegram E2E verdict in the PR body.
2026-08-06 11:01:59 +05:30
Patrick Erichsen 355c107c09 fix(macos): unblock first-launch gateway setup (#119831)
* fix(macos): stop writing retired config metadata

* fix(macos): guard packaged CLI bootstrap versions

* chore(macos): refresh native i18n inventory

* fix(macos): repair retired metadata before gateway start
2026-08-05 22:25:17 -07:00
Jerry-Xin b8f6086411 fix(tts): deliver Telegram final speech without text churn
Defer Telegram final-mode text until speech settles, then deliver one captioned voice note or a proven-safe text fallback.

Co-authored-by: Jerry-Xin <jerryxin0@gmail.com>
2026-08-06 10:41:40 +05:30