Commit Graph

78555 Commits

Author SHA1 Message Date
Vincent Koc 13823c85fb refactor(agents): centralize typed activity event emission (#122188) 2026-08-12 04:16:46 +08:00
Peter Steinberger 627e83d4f7 fix(ui): effort slider matches selected level after model switches (#122125)
* fix(ui): align effort picker after model switches

Publish ordered per-model effort profiles from the Gateway and reconcile new-session effort overrides so labels, slider positions, and create payloads stay consistent.

* fix(ci): align model profile contracts
2026-08-11 13:14:11 -07:00
Peter Steinberger 32a43960c6 fix(backup): keep large file reads from false-timeout (#122235)
* fix(backup): track file read progress

* fix(backup): keep progress type internal
2026-08-11 13:09:40 -07:00
Peter Steinberger a40df57bae refactor(agent-runner): split run policy ownership (#122209)
* refactor(agent-runner): split tool-call normalization ownership

* refactor(agent-runner): split incomplete-turn ownership

* test(agent-runner): hide incomplete-turn test helper

* test(ci): route split incomplete-turn tests

* test(ci): enumerate split incomplete-turn tests

* test(vitest): route split incomplete-turn tests to their serial shard
2026-08-11 13:06:29 -07:00
Jason (Json) 09c39e0ec5 fix(scripts): keep bundled channel smoke standalone (#122212) 2026-08-11 13:05:46 -07:00
Peter Steinberger a1846dbebc feat(ui): session-reset dividers + boundary markers for DB-backed sessions (#122222)
* feat(ui): show session-reset dividers and fix boundary markers on DB-backed sessions

/reset now leaves a durable 'Session reset' divider at the transcript
boundary in the Control UI. Root-cause fix underneath: the SQLite
transcript projection only selected message events, so compaction (and
now reset) markers never reached clients for DB-backed sessions; marker
synthesis now has one owner (session-transcript-message.ts) consumed by
both storage backends across full/recent/paged/by-id/anchor reads.
Additive __openclaw marker kind 'reset' documented in clients.md.

* fix(gateway): keep history readers out of the plugin SDK barrel and fix CI gates

Direct imports for the sqlite history readers (the session-accessor barrel
is SDK-reachable via session-transcript-lock-runtime); reset marker added
to the kept-tail chat.history expectation; lint naming fixes; marker tests
split into session-transcript-readers.markers.test.ts.
2026-08-11 12:59:11 -07:00
Peter Steinberger 7eed2c3f21 feat(google): add current-turn native video input (#122074)
* feat(agents): add current-turn Gemini video handoff

* test(google): add live native video regression

* build(ai): emit provider types entrypoint

* fix(google): preserve video shedding on retry
2026-08-11 12:58:32 -07:00
Vincent Koc 01cd9cc2a8 test(browser): isolate shared fixture state (#122216)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-12 03:57:39 +08:00
Peter Steinberger 69b08c4460 test(cli): trim duplicate cold-command process cases (#122236)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-11 12:57:35 -07:00
Vyctor H. Brzezowski 6c485842b1 fix(ui): calm composer focus treatment (#122232) 2026-08-11 16:53:30 -03:00
Peter Steinberger 7a1d5a86c7 test(cli): replace redundant ACP process cases (#122229)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-11 12:40:03 -07:00
Peter Steinberger 73ae583263 refactor(tasks): simplify subagent activity tracking (#122198)
* refactor(tasks): simplify subagent activity tracking

* fix(android): single-source subagent activity expiry clock

* chore(i18n): refresh native source baseline
2026-08-11 12:30:49 -07:00
Peter Steinberger 8c567306ba fix(openai): remove duplicate GPT-5.6 picker entry (#122178)
* fix(openai): remove duplicate GPT-5.6 picker entry

* test(gateway): split OpenAI model picker coverage

* test(openai): align canonical model fixtures

* chore(plugin-sdk): refresh agent harness API baseline
2026-08-11 12:29:36 -07:00
Vyctor H. Brzezowski a1a1c791fc improve(ui): blend chat header into transcript (#122220) 2026-08-11 16:28:22 -03:00
Vincent Koc e8885eefcd fix(update): migrate plugin config before final validation (#122199)
Stage transitional plugin install-record writes without plugin-schema validation, then require fresh doctor and strict validation for every aggregate plugin change.

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-12 03:16:22 +08:00
Ayaan Zaidi 746a188c90 refactor(media): collapse attachment byte classification into media-core (#122168)
Attachment MIME gating and extraction dispatch used nine separate byte policies across five files; the allowlist could approve one MIME while dispatch observed another after a second sniff. @openclaw/media-core/attachment-classify now owns byte sniffing, text heuristics, extension mapping, and the seven attachment classes; the cache stores one classification that gates and dispatch share. Channel-declared MIME leads with the transport Content-Type as a byte-arbitrated hint, normalizeMimeType folds YAML/XML synonyms so existing configured allowlists keep matching, and input_file API callers keep declared-MIME precedence over cosmetic filenames. Net -135 production LOC.

Proof: 2,153 focused tests across media-core/media-understanding/media plus boundary-contract and deadcode-mirror suites; ClawSweeper local review clean (round 5, zero findings); live Telegram default-turn probe green.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-11 19:10:49 +00:00
Peter Steinberger 2e6c693177 fix(backup): prevent false archive stalls during active traversal (#122213)
* fix(backup): track archive producer progress

* chore(backup): leave release notes to release flow
2026-08-11 12:08:37 -07:00
Peter Steinberger b955a7b989 test(cli): remove duplicate update dry-run process cases (#122218)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-11 12:07:43 -07:00
Alix-007 d76f71cee7 fix(auto-reply): omit heartbeat inbound metadata (#122075)
* fix(auto-reply): omit heartbeat inbound metadata

Prevent synthetic heartbeat routes from appearing as user-role Conversation info while preserving delivery routing. Fixes #97067. Reported by @xxtyyq.

* test(auto-reply): use complete heartbeat model state

* test(qa): prove heartbeat metadata boundary

* test(auto-reply): deduplicate heartbeat metadata coverage

Co-authored-by: Alix-007 <li.long15@xydigit.com>
Punchcard-Session: frost-cedar-harbor-2n

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-12 03:02:22 +08:00
Peter Steinberger 79701dfc84 fix: speed up streamed assistant output (#122206)
* fix: speed up streamed assistant output

* fix: preserve plan stream invalidation
2026-08-11 12:01:14 -07:00
Vincent Koc 7fe75acb5f fix(compaction): recover overflow from sparse assistant history (#122159)
Prevent overflow recovery from dereferencing missing assistant usage metadata while preserving explicit unavailable and legacy CLI barriers.

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-12 02:54:01 +08:00
Josh Lehman 2f4dff7428 fix(context-engine): long sessions continue past 20k events (#122149)
* oc-5b3: canonicalize durable commitTurn

* oc-deb: remove stale commitTurn test fields
2026-08-11 11:53:11 -07:00
Peter Steinberger 9836148970 test(cli): remove redundant process composites (#122197)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-11 11:50:08 -07:00
Peter Steinberger 2d6a5d7356 refactor(gateway): split worker environment service by ownership (#122138)
* refactor(gateway): split worker environment service by ownership

* refactor(gateway): derive environment intent at the contract owner

* chore(lint): ratchet max-lines baseline after worker-service split

* style(gateway): prune unused symbols after worker-service split

* refactor(gateway): narrow worker-service seam exports

* chore(plugin-sdk): refresh API baseline
2026-08-11 11:48:28 -07:00
Peter Steinberger 5179e12352 fix(macos): deliver provisional notifications (#122179)
* fix(macos): accept provisional notifications

* fix(macos): return notification permission labels

* fix(macos): preserve notification inventory
2026-08-11 11:42:06 -07:00
Peter Steinberger cfd6807915 improve: remove redundant slow heartbeat admission test (#122095)
* test(infra): remove redundant heartbeat admission composite

* test(agents): format OAuth issuer cases

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-08-11 11:40:26 -07:00
Peter Steinberger 0771787da2 fix(state): repair mis-stamped v17 agent databases (#122171)
* fix(state): repair mis-stamped v17 agent databases

* refactor(state): keep lease repair helpers internal
2026-08-11 11:34:46 -07:00
Kevin Lin 2d0c30fd65 fix(slack): keep previously joined threads active beyond 24 hours (#121708)
* fix(slack): keep participated threads active beyond 24 hours

* fix(plugin-state): reject transient TTLs after durable migration

* fix(slack): keep channel entrypoint on narrow plugin API

* chore(sdk): refresh sharded durable-state API baselines

* fix(slack): preserve existing thread expiration without migration

* fix(slack): preserve hydrated legacy thread expiration

---------

Co-authored-by: kevinlin-openai <kevinlin@openai.com>
2026-08-11 11:31:07 -07:00
Vincent Koc bd6ff17d4d refactor(mcp): centralize requester runtime materialization (#122151) 2026-08-12 02:30:53 +08:00
Peter Steinberger 508265cb4f docs: add operator backups guide covering archives, snapshots, scheduling, and continuous replication (#122196) 2026-08-11 11:29:02 -07:00
Peter Steinberger 4f6a6d9819 fix(cron): record stream failures before alerts (#122187)
Ensure exhausted stream-source restarts finalize durable cron run history before the existing generic failure alert is delivered.
2026-08-11 11:27:10 -07:00
tharuntejmeta a57e8c70f5 feat(meta): add Muse Spark 1.2 models (#120373)
* feat(meta): add Muse Spark 1.2 models

* fix(meta): verify Muse Spark 1.2 catalog metadata

* fix(meta): verify Muse Spark 1.2 contracts

* docs(meta): quote discounted services terms

* fix(meta): preserve replay fields for simple completions

* test(meta): align stream host adapter types

* fix(meta): apply catalog cap for zero max tokens

* fix(meta): preserve omitted output cap

* fix(meta): scope responses stream wrapper

* fix(ai): preserve source API for stream wrappers

* fix(ai): distinguish hook and dispatch APIs

* test(ai): adapt plugin streams synchronously

* chore(plugin-sdk): refresh API baseline

* chore(plugin-sdk): refresh sharded API baseline

---------

Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-11 11:26:58 -07:00
Peter Steinberger d498daa26b test(core): remove duplicate stream cases (#122190) 2026-08-11 11:21:08 -07:00
Peter Steinberger 3d76246792 refactor: eliminate final export name collisions (#122083)
* refactor: resolve final export name collisions

* refactor: update remaining collision rename consumers

* style: format rebased auth helpers

* test: update remaining session entry mocks

* test: update remaining runtime mock exports

* test: update delivery info path mock

* refactor: reconcile combined collision sweeps

* chore: regenerate collision and sdk baselines
2026-08-11 11:18:24 -07:00
Ayaan Zaidi d2825c70a5 refactor(telegram): consolidate bot handlers into named modules (#122174)
The bot-handlers family was 22 files behind a 22-line fan-out: six files holding one callback switch, four holding one inbound pipeline, every interface a derived ReturnType, processMessage taking 8 positional args, and its params type declared inside bot-native-commands.ts. Three named coordinators (inbound pipeline, callback router, event bindings) now sit behind the same registerTelegramHandlers entry with hand-written leaf contracts; the factory graph, 16 slice/barrel files, and the type shim are deleted. Behavior-neutral: bot.test.ts and the ingress e2e byte-identical to main (SHA-256-pinned) and green; +185 production LOC accepted as the written-contract tradeoff.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-11 18:18:16 +00:00
Vincent Koc 5bc7efe746 fix(test): keep CLI process suites in owner lane (#122160) 2026-08-12 02:07:51 +08:00
Vyctor H. Brzezowski 2c636dda0c fix(ui): hide unavailable session changes action (#122152) 2026-08-11 15:02:58 -03:00
Peter Steinberger 063ebec5a9 test(cli): stabilize run-main fault injection (#122173) 2026-08-11 11:01:59 -07:00
Peter Steinberger 86bc5aa726 test(plugins): remove stale test plumbing (#122175) 2026-08-11 11:01:05 -07:00
Vincent Koc 0e52f4c4ce fix(update): avoid duplicate configured plugin installs (#122161)
Make updater doctor phases explicit so only post-plugin finalization marks post-core convergence, and strip ambient convergence state from fresh child environments.

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-12 01:56:40 +08:00
WhatsSkiLL d9766c3d57 fix(wizard): honor remote password auth in probes (#118134)
* fix(wizard): honor remote password auth in probes

* fix(wizard): preserve remote probe auth policy

* test(wizard): keep remote probe coverage focused

* fix(gateway): preserve remote probe secret refs

* fix(gateway): isolate remote probe credentials

* fix(wizard): authenticate remote health checks

* fix(gateway): unify remote probe auth precedence

* test(gateway): align remote probe auth coverage

* fix(gateway): preserve disabled exec-ref guard

* fix(gateway): block failed remote ref fallback

* test(gateway): follow consolidated probe coverage

* fix(wizard): stop health after unresolved remote auth

* fix(gateway): preserve configured sibling probe auth

* fix(wizard): bind remote health target

* docs(gateway): clarify remote probe auth precedence

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
Co-authored-by: Dallin Romney <dallinromney@gmail.com>
2026-08-12 00:46:25 +07:00
Peter Steinberger b3369840b1 refactor(agents): unify CLI spawn/live failure policy lanes (#122164) 2026-08-11 10:46:14 -07:00
Peter Steinberger ebb2770000 refactor: eliminate export name collisions (#122084)
* refactor: eliminate export name collisions

* chore(scripts): burn resolved collision baselines

* refactor: narrow legacy session load options

* chore: refresh SDK and session debt baselines

* refactor: adopt upstream secrets collision fix

* test(plugin-sdk): mock renamed session store core

* fix(scripts): track renamed session accessor core
2026-08-11 10:41:50 -07:00
Vincent Koc 653ab3b2aa fix(ci): restore duplicate scans with jscpd 5 (#122124) 2026-08-12 01:39:40 +08:00
wanyongstar 90dbede056 fix(browser): bound snapshot tree rendering depth (#119217)
Both snapshot renderers walked accessibility trees recursively with no
default depth bound: the chrome-mcp builder only honored maxDepth when
callers passed one, and the CDP renderRoleTree had no limit at all. A
pathologically nested page could overflow the call stack and grow
indent output quadratically before any output truncation ran. Add a
generous hard depth bound (100) to both traversal paths.
2026-08-12 00:38:29 +07:00
Peter Steinberger 0855e491de fix(agents): report copied auth profiles accurately (#122162) 2026-08-11 10:35:33 -07:00
Vincent Koc 80435aa0de refactor(state): centralize keyed audit record mutations (#122116) 2026-08-12 01:27:25 +08:00
Peter Steinberger eef860d972 feat(ui): unify system notices in chat with a minimal line family (#122144)
* feat(ui): unify system notices in chat with a minimal line family

Class A (model-facing system turns: restart recovery, gateway restarted,
generic internal_system fallback) and class B (lifecycle facts: compaction)
now share one hairline+icon+label rendering; known kinds show operator
summaries instead of raw injected prompts. Core producers share one
formatSystemTurnPrompt owner for the [System] prefix; subagent resume copy
unified from "gateway reload" to "gateway restart". No protocol, channel,
or marker changes.

* fix(ui): keep system-turn prompt helper out of the plugin SDK surface

Relocate formatSystemTurnPrompt to src/sessions/system-turn-prompt.ts so the
core-internal [System] convention does not widen the SDK API baseline; drop
the unused prefix/type exports; use var(--cursor-action) per cursor policy.
2026-08-11 10:24:38 -07:00
Vincent Koc 1fb715853c fix(qa): resolve Docker harness script entrypoints (#121548)
Punchcard-Session: amber-workshop-workshop-36
2026-08-12 01:23:20 +08:00
Peter Steinberger cad77fb39c refactor: consolidate remaining coercion helpers (#122020) 2026-08-11 10:22:01 -07:00