Commit Graph

78472 Commits

Author SHA1 Message Date
joshavant 5751562bfe fix(ui): retain shared Activity status copy 2026-08-11 18:44:38 -05:00
joshavant 9008f9b0e2 fix(ui): paginate ambiguous run candidates 2026-08-11 18:44:38 -05:00
joshavant 5f7ea6b548 fix(ui): lazy-load run inspector copy 2026-08-11 18:44:38 -05:00
joshavant acb7f7192a fix(ui): support exact run execution selection 2026-08-11 18:44:38 -05:00
joshavant 0f1a549a51 fix(ui): label Activity tab panel 2026-08-11 18:44:38 -05:00
joshavant a2ca2ac8e7 fix(ui): use shared Activity tabs 2026-08-11 18:44:38 -05:00
joshavant 7ab5d99a6c feat(ui): add durable run inspector 2026-08-11 18:44:38 -05:00
Peter Steinberger db9bdb4a11 fix(gateway): preserve session identity through archive transitions (#121169)
* fix(sessions): fence lifecycle mutations by identity

* fix(sessions): finalize lifecycle identity fences
2026-08-11 16:43:10 -07:00
Peter Steinberger d8ae7278b9 fix(browser): publish snapshot output atomically (#122327) 2026-08-11 16:31:17 -07:00
Mariano bf3644966e fix(gateway): resolve combined store paths in title batches (#122338)
Co-authored-by: mbelinky <mbelinky@users.noreply.github.com>
2026-08-12 01:25:21 +02:00
Peter Steinberger 25f7fc0ec5 test(ci): skip unrelated Bun launcher builds (#122333)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-11 16:21:44 -07:00
Vincent Koc b3cb8f7ab2 fix(qa): preserve nested tool success evidence (#122189)
Record successful logical target tools at the attempt owner so Code Mode exec receipts retain the nested tool evidence needed by release qualification.

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-12 07:19:56 +08:00
Shakker 9c9ab5836d refactor: name companion SQLite expressions (#122329) 2026-08-12 01:17:18 +02:00
Shakker 5ee067cb76 chore: refresh companion API baselines 2026-08-12 01:17:17 +02:00
Shakker 24ad2e5d43 fix: bound companion settlement context 2026-08-12 01:17:17 +02:00
Shakker 8dc5016460 fix: make companion context fail closed 2026-08-12 01:17:17 +02:00
Shakker 72528033b2 refactor: preserve companion context boundaries 2026-08-12 01:17:17 +02:00
Shakker 281fe1e502 refactor: use canonical companion context owners 2026-08-12 01:17:17 +02:00
Shakker 6932cd6980 fix: reconcile companion progress ownership 2026-08-12 01:17:17 +02:00
Shakker 70fbc35da2 fix: ground session companion context 2026-08-12 01:17:17 +02:00
Vyctor H. Brzezowski d8488a9406 fix(ui): keep short JSON code blocks visible (#122313) 2026-08-11 20:08:43 -03:00
Vincent Koc f30e67298a fix(agents): preserve reply cleanup when cancellation throws (#122252)
* refactor(agents): canonicalize reply abort cleanup

* refactor(agents): document reply abort cleanup invariant
2026-08-12 07:04:03 +08:00
Vyctor H. Brzezowski ec86b02b9e fix(ui): render disallowed link schemes as plain text (#122311)
Preserve readable Markdown labels while removing link wrappers for destinations the Control UI will not navigate.
2026-08-11 20:03:08 -03:00
Vincent Koc 1982aaa351 fix(test): isolate gateway helper env stubs (#122319) 2026-08-12 06:57:44 +08:00
Vyctor H. Brzezowski 944b81b2dc fix(ui): keep chat Markdown block rhythm consistent (#122289)
Fixes #122269
2026-08-11 19:57:11 -03:00
Peter Steinberger 6fa87b0185 test(cli): trim duplicate Hooks process cases (#122278)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-11 15:55:40 -07:00
joshavant b76b9e1a75 fix(ui): retain identity while agent roster loads 2026-08-11 17:54:28 -05:00
joshavant 2fbf4fdbe6 fix(ui): preserve configured agent labels 2026-08-11 17:54:28 -05:00
Mariano 3851849eea fix(plugins): keep startup convergence read-only (#122330)
Prevent gateway startup verification from re-persisting an unchanged plugin install-record baseline. This keeps startup convergence read-only while preserving update-time persistence and the existing fail-closed check for real migration input changes.
2026-08-12 00:49:26 +02:00
Josh Lehman 585503896d fix: preserve WebChat reply context after reloads (#122169) 2026-08-11 15:42:01 -07:00
Vyctor H. Brzezowski 89df45c0f5 fix(ui): make DONE moves visibly reversible (#122303)
* fix(ui): make group category moves reversible

* fix(ui): address native Groups drag review
2026-08-11 19:39:07 -03:00
Vyctor H. Brzezowski 67262b70dc fix(ui): keep inline-code punctuation attached (#122291)
* test(ui): cover inline code punctuation spacing

* fix(ui): tighten inline code punctuation spacing

* test(ui): tolerate browser font metrics
2026-08-11 19:30:14 -03:00
Peter Steinberger c4fd5ad551 fix(google-meet): publish exports atomically (#122306) 2026-08-11 15:29:08 -07:00
Peter Steinberger b350f76484 fix(channels): preserve failed agent run reactions (#122009) 2026-08-11 15:26:44 -07:00
Vyctor H. Brzezowski 285e58e5ef fix(ui): label patch file operations accurately (#122287) 2026-08-11 19:23:27 -03:00
Peter Steinberger c525f1a549 fix(windows): preserve Unicode LAN route aliases (#122263) 2026-08-11 15:21:37 -07:00
Peter Steinberger 9a8a65b9ea test(media): synchronize transcode pool completion (#122279) 2026-08-11 15:20:16 -07:00
Peter Steinberger 896e3fb0ac fix(android): keep completed subagent activity visible for sixty seconds (#122089)
* fix(android): retain terminal subagent activity locally

* chore(android): preserve native i18n inventory
2026-08-11 15:19:57 -07:00
Vyctor H. Brzezowski 65f4320147 fix(ui): humanize bare GitHub item links (#122285) 2026-08-11 19:16:07 -03:00
Sliverp 84c7d45f15 refactor(qqbot): install plugin from Tencent package (#107295)
* refactor(qqbot): remove bundled extension source

Mechanical deletion half of the #107295 squashed rebase; the catalog
repoint and host integration land in the follow-up commit.

Co-authored-by: sliverp <870080352@qq.com>

* refactor(qqbot): install plugin from Tencent package

Squashed rebase of #107295 onto current main. Repoints the official
external channel catalog at @tencent-connect/openclaw-qqbot@2.0.1 and
adapts onboarding, doctor migrations, secrets, build guards, and tests.

Documents the known limitation that the external package does not
support structured SecretRef clientSecret values; operators move those
to QQBOT_CLIENT_SECRET or clientSecretFile before upgrading.

Co-authored-by: sliverp <870080352@qq.com>

* fix(doctor): reuse shared hasOwnKey record helper

The rebased QQBot migration carried its own hasOwnKey export, colliding
with the one main now ships in legacy-config-record-shared.ts.

Co-authored-by: sliverp <870080352@qq.com>

* fix(plugins): carry catalog integrity through the update bridge

The externalized-bundled-plugin bridge dropped the official catalog's
expectedIntegrity pin, so bundled-user updates installed the external
npm package without integrity verification. The bridge now carries the
pin for the catalog's exact npm spec and both bridge install calls pass
it through; update-channel spec overrides intentionally skip the pin
since it only covers the pinned version.

Co-authored-by: sliverp <870080352@qq.com>

* chore(plugin-sdk): refresh per-entrypoint API baselines

The QQBot compat export and bundled-type removal shift 26 entrypoint
closure hashes in the new split baseline layout.

Co-authored-by: sliverp <870080352@qq.com>

* refactor(qqbot): drop helper reintroduced during rebase

Main's coercion consolidation added this file after the deletion
commit's base; its only consumers were the removed qqbot sources.

Co-authored-by: sliverp <870080352@qq.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-11 15:10:27 -07:00
Josh Lehman d035dba6c7 chore: scope SQLite session lifecycle CI (#121917)
* oc-358: scope SQLite lifecycle CI

* chore(ci): cover shared session lifecycle owner
2026-08-11 15:06:46 -07:00
tangtaizong666 4ccbdf58bf fix(plugins): refresh stale source plugin registry (#96046) (#96080)
* fix(plugins): refresh stale source plugin registry

* fix(plugins): port registry snapshot to core manifest loader

---------

Co-authored-by: tangtaizong666 <212687958+tangtaizong666@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-12 06:05:01 +08:00
Vincent Koc bc030544ee refactor(gateway): unify terminal chat broadcasts (#122211)
* refactor(gateway): unify terminal chat broadcasts

* test(gateway): cover node terminal chat fanout
2026-08-12 06:04:17 +08:00
Peter Steinberger 87b3c0e5df refactor(agents): split subscribe leaf ownership (#122249)
* refactor(agents): split embedded tool result ownership

* refactor(agents): split embedded message ownership
2026-08-11 15:04:07 -07:00
Peter Steinberger 01804a7531 feat(apps): Android chat adopts the system-notice family (#122268)
* feat(apps): Android chat adopts the system-notice family

Decode internal_system provenance and __openclaw markers in parseHistory,
classify into SystemNotice/SystemDivider timeline variants with web-parity
kinds, render minimal Compose rows, round-trip metadata through the
transcript cache textPartsJson envelope (no Room change), and extend the
deterministic screenshot fixture.

* fix(apps): keep generated locale artifacts out of the source PR

The native locale refresh workflow owns NativeStringResources.kt and
values-*/strings.xml; ship source strings plus the regenerated
apps/.i18n/native-source.json inventory only.
2026-08-11 15:03:15 -07:00
Peter Steinberger 459c70e14a fix(worker): stop Gateway RTT from pacing live previews (#122258)
* fix(worker): decouple live previews from gateway acknowledgements

* test(worker): track fault harness temp directories

* fix(worker): preserve finishing after preview rejection

* fix(worker): recover finishing after early preview failure

* test(worker): model terminal resync decisions
2026-08-11 14:55:08 -07:00
Vincent Koc 642fe77624 refactor(gateway): unify terminal restriction tracking (#122228) 2026-08-12 05:54:15 +08:00
bᵣᵢₐₙ 8d034a7b61 fix(cron): stop advertising trigger-gated fields when cron triggers are disabled (#122052)
* fix(cron): stop advertising trigger-gated fields when cron triggers are disabled

When cron.triggers.enabled is off (the documented default posture), the
cron tool still advertised job.trigger/patch.trigger, schedule.kind
"stream" with its stream-only fields, and payload.kind "script" — all of
which the scheduler unconditionally rejects. Schema-eager models attach
junk triggers to plain reminder requests, get rejected, and retry-loop
without ever creating the job.

Gate those surfaces on the resolved config so they are only advertised
when the runtime can actually accept them, and swap the trigger guidance
for a short unavailable notice so the model tells the user instead of
polling or silently degrading the request. Config-less construction
paths keep the full surface.

Related: #119455

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(cron): restore config type import and regenerate schema contracts

Repairs rebase fallout and CI-contract consequences of the trigger gating:

- Re-import OpenClawConfig from config/types.openclaw.js; the rebase crossed
  #121768 which removed the re-export from config/config.js, stranding
  resolveCronTriggersEnabled's signature.
- Guard the destructured tool in the MCP gating test for
  noUncheckedIndexedAccess.
- Collapse the hookContext merge object to one line: the added config
  pass-through tipped openclaw-tools.ts over the max-lines ratchet (701/700).
- Regenerate prompt snapshots (cron description narrowed under
  triggers-disabled harness config; ~3k chars per prompt) and the plugin-sdk
  API baseline (CronToolOptions gained the optional config member, visible
  via codex-mcp-projection).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(cron): align schema contracts with current main

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Josh Lehman <550978+jalehman@users.noreply.github.com>
2026-08-11 21:48:14 +00:00
Peter Steinberger cb51cf7d3e feat(apps): Apple chat adopts the system-notice family (#122255)
* feat(apps): adopt the system-notice family in Apple chat (OpenClawChatUI)

Decode internal_system provenance and __openclaw history markers, classify
once into message/notice/divider rows (web-parity kinds), render minimal
hairline notice/divider SwiftUI rows, preserve metadata through history
reconciliation, live transport, and the transcript cache, and align the
transcript exporter with visible classification instead of leaking raw
[System] prompts.

* fix(apps): satisfy OpenClawKit periphery gate

Remove the dead visibleMessages projection (rows path replaced its
consumers) and annotate the provenance test-fixture initializer with the
repo-standard periphery:ignore rationale.

* fix(apps): refresh native i18n inventory after periphery cleanup
2026-08-11 14:47:19 -07:00
Mariano edb7a1692e fix(telegram): expose live location updates to hooks (#122185)
* fix(telegram): expose live location updates to hooks

* test(telegram): keep location coverage focused

* fix(telegram): emit stopped live locations

* test(plugin-sdk): refresh location hook contracts

* docs(changelog): note Telegram live location hooks

* fix(telegram): complete live-location observer path

---------

Co-authored-by: mbelinky <mbelinky@users.noreply.github.com>
2026-08-11 23:26:23 +02:00