Commit Graph

81313 Commits

Author SHA1 Message Date
RoboClaw a4007c58fd chore(protocol): leave changelog to release tooling 2026-08-21 12:26:33 -04:00
RoboClaw 11f4026a32 fix(protocol): expose authoritative session routing contract 2026-08-21 12:26:33 -04:00
Vincent Koc d993742d2c test(gateway): repair release-validation fixtures (#127263)
* test(onboard): preserve prompt defaults in inference E2E

* test(clawhub): identify skill fixture source
2026-08-21 09:20:56 -07:00
ClawSweeper 975027aee9 fix(ui): remove redundant mobile header alerts (#127235)
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-21 09:18:52 -07:00
Vincent Koc a2f0b84e8a fix(release): report blockers before diagnostics finish (#127014)
* fix(release): separate decisions from diagnostic drain

* test(release): align decision drain fixtures

* fix(release): pin artifact downloads to valid v8 SHA

* fix(release): default empty evidence paths in plans

* fix(release): bind complete evidence reuse selection

* fix(release): harden retry artifact integrity

* fix(release): canonicalize reused validation evidence

* fix(release): bind manifest children to execution plan

* test(release): fix validation fixture types

* fix(release): retry transient decision artifact reads
2026-08-21 09:14:39 -07:00
Dallin Romney 8091f7ceb3 test(qa): align failed-tool recovery oracle (#127077)
* test(qa): bound OTEL runtime timeout evidence

* test(qa): identify OTEL runtime wait stage

* test(qa): align failed-tool recovery oracle

* test(qa): bound recent OTEL trace evidence

* test(qa): keep trace summary type private
2026-08-21 09:11:17 -07:00
Dallin Romney ef91c818c4 fix(agents): preserve built plugin artifacts in prepared runtimes (#125957)
* fix(agents): preserve built plugin artifacts in prepared runtimes

* test(agents): update prepared runtime loader contract

* fix(agents): preserve built preference for deferred plugins

* fix(plugins): carry artifact preference through load context

* fix(plugins): keep artifact context optional

* test(plugins): prove prepared built artifact projection

* fix(agents): scope built artifacts to gateway runtimes

* test(agents): preserve standalone loader call shape

* fix(agents): retain prepared artifact choice on reuse

* test(plugins): update prepared load context expectation

Amp-Thread-ID: https://ampcode.com/threads/T-01a023b8-1041-7686-975f-c9f3ef91755d

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 09:10:48 -07:00
Dallin Romney 566b0e53d5 fix(ai): retain compaction-only replay checkpoints (#127106)
* test(gateway): publish runtime in agent E2Es

* test(gateway): leave replay fix to owner PR

* fix(ai): retain compaction-only replay checkpoints

* fix(ai): preserve empty compaction replay checkpoints
2026-08-21 09:10:10 -07:00
Peter Steinberger 7085604a26 fix(ui): correct Automations row semantics (#127252)
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 09:05:52 -07:00
Dallin Romney 8531da1993 fix(gateway): run transcript cursor E2E with full startup (#127094)
* test(gateway): publish runtime in agent E2Es

* test(gateway): leave replay fix to owner PR
2026-08-21 09:05:05 -07:00
Dallin Romney 2fe6b67871 fix(test): read migrated Codex auth from shared owner (#127097) 2026-08-21 09:04:39 -07:00
WhatsSkiLL 407930cb6a feat(wear): add direct agent, session, and model pickers (#126863)
* feat(wear): add searchable context pickers

* fix(wear): simplify context picker rows

* fix(wear): prioritize chat actions over context

* fix(wear): keep chat follow above context controls

* fix(wear): keep context labels localized

* fix(wear): refine context picker layout and close

* fix(wear): sync picker locale resources

* fix(wear): negotiate picker search support

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-08-21 11:54:47 -04:00
Peter Steinberger 870f936851 perf(sessions): avoid full key tokenization (#127249)
Amp-Thread-ID: https://ampcode.com/threads/T-01a02481-e149-77dd-a132-a2797e238ef8

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 08:52:12 -07:00
Dallin Romney 9c64ed87e9 test(agents): keep fallback E2E runtime coherent (#127079) 2026-08-21 08:50:34 -07:00
Yuval Dinodia 5eb28a3b40 fix(outbound): retry queued deliveries when a channel adapter is unavailable (#126800)
* fix(outbound): retry queued deliveries when a channel adapter is unavailable

Delivery queue recovery classified "Outbound not configured for channel" as a
permanent provider rejection, so a queued message and its spooled attachment
were dead-lettered on the first attempt whenever the channel adapter was
momentarily unresolvable. That string is a local adapter-resolution failure
thrown by createChannelHandler, not a provider verdict, and the live send path
already treats it as retryable.

Remove the pattern so adapter unavailability consumes the normal retry budget.

* fix(outbound): type adapter lookup failures

---------

Co-authored-by: Altay <altay@hey.com>
2026-08-21 18:41:42 +03:00
Peter Steinberger 0095168ae6 fix(cli): render Nodes validation failures (#127223) 2026-08-21 08:38:57 -07:00
Shakker f65b7e06ea fix: persist manual Codex compactions (#127230) 2026-08-21 16:24:53 +01:00
Shakker 7b5430a2d3 test: cover durable compaction activity 2026-08-21 16:24:53 +01:00
Shakker a5bac03e51 fix: preserve Codex compaction activity 2026-08-21 16:24:53 +01:00
Peter Steinberger 3ae7ba3194 fix(ui): copy Lobsterdex links through clipboard fallback (#127194)
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 08:13:49 -07:00
Vincent Koc 15664db855 refactor(approvals): unify native client setup (#127189) 2026-08-21 07:56:38 -07:00
Vincent Koc 7833e242cb fix(ci): isolate performance candidate trust (#127160) 2026-08-21 07:54:56 -07:00
Vyctor H. Brzezowski 03d4b8a9c3 fix(ui): expose active split pane to assistive tech (#127213) 2026-08-21 11:37:36 -03:00
Peter Steinberger 7d83ff7c8f improve(terminal): speed up fitting table rendering (#127221)
* test(terminal): cover fitting table cell rendering

Amp-Thread-ID: https://ampcode.com/threads/T-01a0242a-0302-708f-a777-ec7c0a5c9c60

* perf(terminal): skip wrapping work for fitting ASCII cells

Amp-Thread-ID: https://ampcode.com/threads/T-01a021f5-984a-7628-a30c-491c166ff247

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 07:37:16 -07:00
Peter Steinberger 2cbfade48b fix(ui): copy task results through clipboard fallback (#127181)
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 07:31:58 -07:00
Yiğit ERDOĞAN ff83e3efe8 test(extensions): close cached agent databases before removing fixture state dirs (#126352)
Doctor migrations and auth-profile writes open per-agent and shared state
databases under the fixture's temporary directory. Clearing the plugin
state store or the runtime auth snapshots does not release those handles,
so Windows fails the directory removal with EBUSY while Linux unlinks the
open files and stays green.

Close the cached databases before each removal, matching the ordering the
zalouser and zalo fixtures already use.
2026-08-21 07:22:57 -07:00
ClawSweeper f94f945314 improve(ui): declutter Automations across desktop and mobile (#127198)
* improve(ui): declutter automations list

* test: align automation UI and process cleanup

Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>

---------

Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-21 06:56:43 -07:00
ClawSweeper 7498391c81 improve: show condition activity in automation history (#127200)
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-21 06:55:32 -07:00
ClawSweeper ebdb6115dd feat(ui): compact mobile chat header (#126788)
* feat(ui): compact mobile chat header

* refactor(ui): move mobile status into session menu

* fix(ui): close mobile status menu before details

* test(ui): follow compact header actions

Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>

---------

Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-21 06:54:41 -07:00
Peter Steinberger 2644dfd651 perf(agents): avoid duplicate tool catalog fingerprinting (#127188)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 06:49:31 -07:00
ClawSweeper 9050d9b0a7 fix(ui): align configured automation trigger status (#126784)
Vertically center the configured trigger label with the Advanced heading and cover the rendered geometry in Chromium.

Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-21 06:23:18 -07:00
Hüseyin 6132c6f6cb fix: exec treats empty workdir from models as omitted (#126509)
* fix(exec): treat exact empty workdir as omitted

Small tool-calling models fill every optional field of the exec schema,
so exec arrives with workdir: "" instead of omitting the field. The
empty string was treated as a literal path and the command was refused,
wasting agent turns and surfacing misleading failures (e.g. the model
concluding the runtime is unavailable).

Normalize only the exact empty string to omitted at the workdir input
boundary; whitespace-only and nonempty invalid paths remain fail-closed.

Closes #126390

* fix(exec): align exec schema with empty-workdir behavior

The shared model-facing schema still declared blank and whitespace
workdirs invalid while the resolver now treats an exact empty string as
omitted. Update the schema description to state that an empty string
means omitted and only whitespace-only values are invalid, and update
the schema assertion accordingly.
2026-08-21 06:14:42 -07:00
ruel225 587c7524e5 fix(normalization-core): preserve non-Error object causes with extra keys in formatErrorMessage (#126654)
* fix(normalization-core): preserve non-Error object causes with extra keys

The cause-chain branch of formatErrorMessage called only
formatStatusAndCode(cause) with no stringifyUnknown fallback, while the
top-level branch used formatStatusAndCode(value) ?? stringifyUnknown(value).
formatStatusAndCode returns undefined for any object whose keys are not
exactly status/code, so a non-Error object cause carrying extra keys (e.g.
{ statusCode: 429 } or { status: 503, code: "UNAVAILABLE", requestId: "abc" })
was silently dropped — appendCauseMessage(undefined) no-op'd and the loop
broke, losing the diagnostic/retryable detail.

Mirror the top-level branch: appendCauseMessage(formatStatusAndCode(cause) ??
stringifyUnknown(cause)). Behavior-neutral for causes that already render;
restores the dropped detail for the asymmetric case. stringifyUnknown is a
local helper in the same file.

Closes #126652

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

* test(normalization-core): assert structured cause metadata

---------

Co-authored-by: ruel225 <ruel225@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Altay <altay@hey.com>
2026-08-21 16:09:25 +03:00
Jesse Merhi efbcb57569 fix(control-ui): autocomplete model thinking levels (#123507)
* fix(control-ui): autocomplete model thinking levels

* fix(control-ui): keep thinking options model-current

* fix(control-ui): execute catalog thinking levels

* fix(control-ui): close stale think picker

---------

Co-authored-by: Jesse Merhi <openclaw@users.noreply.github.com>
2026-08-21 23:02:33 +10:00
Peter Steinberger e66d7c5cac fix(qa): index scenario execution paths (#127185) 2026-08-21 05:49:27 -07:00
Goutam Adwant 17d1204b76 fix(gateway): avoid session lookup for stream events (#125872) 2026-08-21 15:31:24 +03:00
Ayaan Zaidi e8d2b8cb18 fix(mantis): keep Telegram proof running and honest (#127108)
Make long, free-form Telegram proof runs truthful and resilient. Keep the trusted mock harness current across historical SUTs, preserve intentional silence and blocked outcomes, remove fixed attempt/lifetime caps, and export cropped motion proof without the prior memory spike.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-21 17:53:54 +05:30
Peter Steinberger 085044cd5f perf(plugins): reuse provider ownership metadata (#127178)
Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 05:21:44 -07:00
Peter Steinberger 02bba8ee84 fix(heartbeat): honor configured session for monitor wakes (#127153)
Sessionless interval heartbeat monitor and task wakes now defer to the
configured heartbeat session, while explicit user sessions and ordinary cron
event queue ownership remain unchanged.

Maintainer replacement for #116373 because the external fork cannot satisfy
the strict Clownfish landing transaction. The replacement preserves the
accepted patch exactly on current main.

Fixes #116205.
Thanks @sloptop-the-terrible for the original patch and @QQSHI13 for the report.

Co-authored-by: sloptop-the-terrible <310909503+sloptop-the-terrible@users.noreply.github.com>
2026-08-21 05:11:01 -07:00
Peter Steinberger 498471396f fix(gateway): refresh health after runtime inspection failure (#127174) 2026-08-21 05:04:20 -07:00
Peter Steinberger 1dbcbb2fb0 fix(ui): keep segmented selections visible in forced colors (#127165)
* test(ui): cover segmented controls in forced colors

Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b

* fix(ui): preserve segmented selection in forced colors

Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b

* fix(ui): separate forced-color selection and focus

Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 04:53:52 -07:00
Peter Steinberger cb563bb16d perf(test): speed up board provider snapshot observations (#127163) 2026-08-21 04:26:39 -07:00
Peter Steinberger 096a970820 perf(sessions): lazily scan transcript matches (#127162)
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f5-984a-7628-a30c-491c166ff247

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 04:20:02 -07:00
Peter Steinberger 75c44b2b98 fix(ui): recover cloud worker saves after reconnect (#127150)
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f4-b547-7788-a916-d4a94cbd3e3b

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 03:50:40 -07:00
Peter Steinberger 7fd243326f fix(process): retain live children after signal errors (#127154) 2026-08-21 03:49:55 -07:00
Vincent Koc 67630f6854 fix(ci): isolate candidate cache authority (#127149) 2026-08-21 03:47:41 -07:00
wanyongstar 2c7936414e fix(comfy): forward req.timeoutMs in music generation (#123444)
The Comfy music provider dropped req.timeoutMs when calling
runComfyWorkflow, while the image and video providers forward it.
Request-level timeouts (mediaModels.music.timeoutMs, tool parameter)
were silently ignored: shorter values had no effect and longer ones
still failed at the hardcoded 300s default.

Punchcard-Session: coral-harbor-river-yv
2026-08-21 03:46:42 -07:00
Peter Steinberger 5016e6519f perf(clickclack): avoid duplicate upload buffer (#127152)
Amp-Thread-ID: https://ampcode.com/threads/T-01a021f5-984a-7628-a30c-491c166ff247

Co-authored-by: Amp <amp@ampcode.com>
2026-08-21 03:43:21 -07:00
Peter Steinberger 7ecc9f6049 perf(test): speed up server preference observations (#127144) 2026-08-21 03:40:30 -07:00
mjzcng 8f8895c141 Cron: bound cross-tick admission (#119195)
* 修复 Cron 跨批次有界准入

* 修复 Cron 收据冲突后的容量唤醒

* 适配最新主线的 Cron 运行态测试

* 拆分 Cron 容量边界测试

* 满足 Cron 即时重检返回类型约束

* fix(cron): track independent timer tick roots

Amp-Thread-ID: https://ampcode.com/threads/T-01a0223e-d6cf-70c1-b0f8-5ea0193d09c0

* fix(cron): retain delayed capacity wake ownership

Amp-Thread-ID: https://ampcode.com/threads/T-01a0223e-d6cf-70c1-b0f8-5ea0193d09c0

* test(cron): await deferred cleanup runs

Amp-Thread-ID: https://ampcode.com/threads/T-01a0223e-d6cf-70c1-b0f8-5ea0193d09c0

* fix(cron): keep admission helper within lint budget

Amp-Thread-ID: https://ampcode.com/threads/T-01a0223e-d6cf-70c1-b0f8-5ea0193d09c0

* test(mcp): restore stderr routing after supervision tests

Amp-Thread-ID: https://ampcode.com/threads/T-01a0223e-d6cf-70c1-b0f8-5ea0193d09c0

* fix(cron): restore partial wake admission context

Amp-Thread-ID: https://ampcode.com/threads/T-01a0223e-d6cf-70c1-b0f8-5ea0193d09c0

---------

Co-authored-by: zhangcheng <zhangcheng@cpe-fund.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: mjzcng <6001731+mjzcng@users.noreply.github.com>
2026-08-21 03:37:13 -07:00