Commit Graph

78555 Commits

Author SHA1 Message Date
Vincent Koc d3d25737cf fix(qa): recognize portable Slack commentary lane (#119698)
Punchcard-Session: silver-meadow-lantern-vx
2026-08-06 07:18:12 +08:00
Vincent Koc b269e652bc chore(codex): bump app-server to 0.146.1 2026-08-06 07:11:37 +08:00
Ayaan Gazali 11757fecd4 docs(slack): document retired Socket Mode tuning cleanup (#119328)
* docs(slack): drop retired socketMode transport tuning

channels.slack.socketMode is rejected by Slack config validation, pinned by
the 'rejects retired Socket Mode ping/pong transport tuning' schema test, and
the client pong timeout is now a hardcoded 15s constant. The page still told
operators to configure it.

* fix(slack): migrate retired socketMode with doctor instead of hand-editing

The retired object fails schema validation at root and account scope, so the
docs previously left manual removal as the only recovery. Slack already owns
legacyConfigRules and normalizeCompatibilityConfig, so the strip belongs there.

* test(slack): narrow the doctor contract config record for check-test-types

normalizeCompatibilityConfig returns a possibly-absent channel entry, so the
socketMode assertions need expectDefined before indexing.

* docs(slack): describe socketMode retirement by observed behavior

openclaw config validate reports a config carrying the retired object as valid,
so the earlier 'validation rejects it / fails to load' wording was wrong. The
observable facts are that it is not read and that doctor --fix removes it.

* revert(slack): drop the duplicate socketMode doctor migration

Core already strips channels.slack.socketMode at root and account scope in
legacy-config-migrations.runtime.retired.ts via visitChannelEntries, so the
plugin-side rule was duplicate policy. Keeps this PR to the docs correction.

* docs(slack): state what doctor actually cleans up for socketMode

Doctor flags retired layout knobs with a general notice, and --fix removes the
three named fields and drops the object only once empty, so an unknown key
inside it survives.
2026-08-05 16:02:57 -07:00
Vito Cappello 2a835768ae fix(auth): limit inline key cooldowns to credential failures (#119147)
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
2026-08-05 16:02:05 -07:00
Vincent Koc b4e82951e7 perf(agents): isolate concurrency benchmark workers (#119749) 2026-08-06 06:49:36 +08:00
Vincent Koc 397a60582a fix(diagnostics): preserve OTEL startup failure (#119747) 2026-08-06 06:41:24 +08:00
Jacqueline Henriksen 5ec4d9f82a fix(agents): seed fresh session identity before transcript append (#119473)
* fix(agents): seed fresh session identity before transcript append

* test(agents): prove fresh session persistence through gateway

* fix(agents): seed session identity on first transcript write

* fix(agents): atomically seed fresh session identity
2026-08-05 15:30:30 -07:00
Jason (Json) 6d2ba0d562 fix: steering reaches active runs across agent harnesses (#119594)
* fix steering delivery across harnesses

* fix steering across moving transcript leaves

* test: align steering queue expectations

* fix: harden active steering ownership

* fix: retain steering fallback admission

* fix: reject late copilot steering

* fix: prevent replay of accepted steering

* fix: bind acquired chat work admission

* fix: bind steering to active transcript branch
2026-08-05 16:02:04 -06:00
Peter Steinberger 97505b723c fix(cli): report accurate filtered node totals (#119744) 2026-08-05 14:58:48 -07:00
Peter Steinberger ad80956428 fix(skills): keep installed verdicts scoped to publisher (#119672)
* fix(skills): preserve owner-qualified security verdicts

* fix(skills): keep verdict helper internal

* fix(skills): bound legacy verdict fallbacks
2026-08-05 14:57:56 -07:00
Vincent Koc 92b4757227 fix(diagnostics): honor signal-specific OTLP protocols (#119708)
* fix(diagnostics): honor signal-specific OTLP protocols

* fix(docker): forward signal-specific OTLP protocols
2026-08-06 05:39:26 +08:00
Vincent Koc 7b8bba26c9 fix(qa): report cleanup failures truthfully (#119727)
* fix(qa): report cleanup failures truthfully

Punchcard-Session: silver-valley-valley-dt

* fix(qa): satisfy cleanup runner static checks

Punchcard-Session: silver-meadow-lantern-vx
2026-08-06 05:16:35 +08:00
Peter Steinberger e9e6ef3edb fix: keep completed actions visible after settled finalization (#119726)
* fix(agents): preserve settled finalization evidence

* fix(agents): retain cron denial after finalization
2026-08-05 14:04:05 -07:00
Vincent Koc 2db3431f4a fix(agents): rearm yielded requester wake (#119696)
Punchcard-Session: silver-valley-valley-dt
2026-08-06 03:59:51 +08:00
Vincent Koc 880dde979b fix(diagnostics): preserve telemetry during service shutdown (#119705)
* fix(diagnostics): preserve otel service shutdown lifecycle

* test(diagnostics): type OTEL unsubscribe callback

* test(diagnostics): normalize async stop assertion

* fix(plugins): preserve ordinary stop handling
2026-08-06 03:58:06 +08:00
sunlit-deng 66bfafa416 fix(clickclack): preserve MIME extension for unnamed uploads (#119646) 2026-08-05 12:52:07 -07:00
Vincent Koc 5eb7eddce6 fix(memory): keep post-ready RPCs responsive (#119710)
Punchcard-Session: coral-workshop-workshop-3f
2026-08-06 03:35:32 +08:00
Peter Steinberger d6233c29b9 fix(browser): preserve locale, timezone, and device overrides (#119695)
* fix(browser): make device emulation transitions atomic

* test(browser): verify device presets in packaged profile

* fix(browser): retain page emulation overrides
2026-08-05 12:29:26 -07:00
Yuval Dinodia e69c3df236 fix(agents): stop messaging dedupe from dropping final replies that quote a short tool send (#118178)
The forward substring check in isMessagingToolDuplicateNormalized treated any
reply containing a prior message-tool send as a duplicate, with no length
floor. A short interim update sent via the message tool then suppressed the
entire final reply that restated it, and the user never received the answer.
The reverse direction already carried a 0.5 length ratio floor. Apply the same
floor to the forward direction so a reply is only deduped when the prior send
covers at least half of it.
2026-08-05 11:21:40 -07:00
Peter Steinberger 9b02ea3c7e test(agents): batch code mode budget proof (#119699)
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-05 11:20:34 -07:00
Vincent Koc 824d170680 fix(memory): keep gateway RPCs responsive during startup (#119676)
* fix(memory): defer startup manager warmup

* test(plugins): register memory stop hook contract
2026-08-06 02:07:57 +08:00
Jason (Json) 462f8c4f29 improve(ui): trail transient session status beside row actions (#119560)
* improve(ui): trail transient session status

* fix(ui): swap running state for row actions on hover

* fix(ui): reserve only visible sidebar state width

* fix(ui): ensure actions override state spacing

* test(ui): await activated service-worker controller
2026-08-05 12:06:07 -06:00
Peter Steinberger 1f0269eda5 refactor(msteams): consolidate channel action target resolution (#119632)
* refactor(msteams): consolidate channel action target resolution

* fix(msteams): honor configured group read policy

* fix(msteams): explain delegated channel access recovery
2026-08-05 10:52:13 -07:00
ℭ𝔥𝔢𝔯𝔫𝔬𝔣𝔣 e17bc58877 fix: tail context answers the current user message (#117364)
* fix(agents): apply image context to current turn

* fix(agents): align runtime context with prompt order

* fix(agents): make turn context position independent

* fix(agents): bind internal context to the active user turn

Keep current-turn runtime context position-independent while preserving the shared privacy notice, runtime events, prompt-cache placement, and historical preface sanitization. Consolidate header detection in its existing owner and retain the original real turn-boundary regression.

Fixes #110672

Co-authored-by: chernoff-code <221717140+chernoff-code@users.noreply.github.com>

---------

Co-authored-by: chernoff-code <221717140+chernoff-code@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-05 10:44:28 -07:00
Peter Steinberger 6aee2792d9 fix(whatsapp): exercise descriptor-safe credential persistence (#119621) 2026-08-05 10:36:36 -07:00
Darren2030 d8c2407815 fix(diagnostics-otel): route OTLP endpoints by signal (#101655)
Keep shared endpoint routing signal-aware while preserving explicit signal-specific URLs exactly. Cover the resolver through mocked constructors and real OTLP/HTTP trace, metric, and log exporters.

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-06 01:33:37 +08:00
Peter Steinberger 412a1a3167 refactor(skills): consolidate workshop transcript and record normalization (#119643) 2026-08-05 10:26:03 -07:00
Peter Steinberger 414616f583 fix(video): harden DashScope task and media lifecycle (#117303)
* fix(video): validate DashScope task outputs and release request guards

* fix(video): validate DashScope task outputs and release request guards

* refactor(video): use shared empty-asset validation

* fix(video): align DashScope Wan request contracts

* refactor(video): use shared empty-asset validation

* fix(video): enforce catalog modes before provider calls

* fix(video): keep model checks fallback-aware

* fix(video): centralize fallback-aware capability checks

* docs(video): document Wan 2.7 fixed audio

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-05 10:19:09 -07:00
Peter Steinberger 0a99a85ef4 refactor(transcripts): consolidate persistence and export ownership (#119634) 2026-08-05 10:16:15 -07:00
ragesaq 0f65e5e02f fix: preserve ClickClack discussion state contracts (#118851)
Why: managed discussion reconciliation must tolerate current ClickClack response shapes without persisting undefined plugin state or stale display titles.

Co-authored-by: Chisel <chisel@psiclawops.dev>
2026-08-05 18:15:10 +01:00
Vincent Koc a3419d4a4b fix(matrix): retire shared E2EE clients safely (#119570)
* fix(qa): bound Matrix E2EE client shutdown

Punchcard-Session: silver-valley-valley-dt

* fix(qa): drain Matrix decryptions before SDK shutdown

Punchcard-Session: silver-valley-valley-dt

* fix(matrix): retire shared E2EE clients safely

Punchcard-Session: silver-valley-valley-dt

* fix(matrix): satisfy lifecycle lint gate

Punchcard-Session: silver-valley-valley-dt
2026-08-06 01:14:31 +08:00
Peter Steinberger 9ef94e4ef9 refactor(cron): unify catch-up persistence and payload encoding (#119636) 2026-08-05 10:07:22 -07:00
Peter Steinberger 7e5c02ccfe refactor(ui): centralize composer attachment and capability controls (#119650) 2026-08-05 09:57:48 -07:00
Peter Steinberger 36554c2820 refactor(daemon): consolidate managed service lifecycle ownership (#119647) 2026-08-05 09:49:12 -07:00
Peter Steinberger 21b6478c6f fix(browser): honor explicit navigation timeouts across browser drivers (#119654)
* fix(browser): propagate bounded navigation timeouts end to end

* fix(browser): share shipped navigation limits across all drivers
2026-08-05 09:44:27 -07:00
Peter Steinberger 1eca944ed6 refactor(outbound): unify conversation binding ownership (#119638) 2026-08-05 09:41:02 -07:00
Peter Steinberger b0d8dd3866 fix(qa): reject deleted replies and failed streaming outcomes (#119660) 2026-08-05 09:30:42 -07:00
Vincent Koc eba4487b3a improve(anthropic): reduce session catalog startup memory (#119619)
* perf(anthropic): lazy-load session catalog runtime

Punchcard-Session: coral-workshop-workshop-3f

* fix(anthropic): keep session catalog helpers private

Punchcard-Session: coral-workshop-workshop-3f

* docs(plugin-sdk): document catalog create target

Punchcard-Session: coral-workshop-workshop-3f

* fix(plugins): continue catalog target selection

Punchcard-Session: coral-workshop-workshop-3f
2026-08-06 00:28:56 +08:00
Peter Steinberger 89014305f1 fix(telegram): reject retired native button input
Prevent stale top-level buttons arguments from silently sending text-only Telegram messages. Point model guidance and docs to typed presentation actions, and reject retired input before delivery.
2026-08-05 21:57:36 +05:30
Peter Steinberger 221df8cdc6 fix(testing): resolve Playwright browser cache before UI install (#119658) 2026-08-05 09:25:24 -07:00
Masato Hoshino 33eac548de fix(system-agent): a failed reset leaves the old conversation in context (#116247)
* fix(system-agent): a failed reset leaves the old conversation in context

`openclaw.chat` with `reset: true` discards the live session and disposes its
engine before verifying inference and building the welcome. The durable reset
marker was only written after both of those steps, so an inference outage during
a reset destroyed the session without recording the boundary. The next ordinary
session then seeded model context from the pre-reset transcript, because seeding
reads only the turns after the newest reset marker.

Record the boundary in a finally around the disposal, so it survives both a
rejected disposal and a replacement that fails to initialize, and drop the later
write. Disposal still runs first, so a failed marker write cannot leak the engine.

* fix(system-agent): persist resets before discarding live sessions

Persist the durable reset marker before deleting the live session so a failed SQLite write leaves the session, engine, and pending approval untouched. Preserve the original real-SQLite privacy-boundary regression coverage.

Co-authored-by: Masato Hoshino <g515hoshino@gmail.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-05 09:25:16 -07:00
Peter Steinberger b6a4e6e2a6 refactor(agents): unify media generation task lifecycles (#119645)
* refactor(agents): unify media generation task lifecycles

* fix(agents): defer media duplicate guard lookup until action execution
2026-08-05 09:22:45 -07:00
Peter Lee 3d669c7616 fix(sessions): maxDiskBytes 0 no longer deletes all session history (#119422)
* fix(sessions): treat maxDiskBytes 0 as disabled disk budget

* fix(sessions): treat zero maxDiskBytes as disabled budget and document the contract
2026-08-05 09:16:58 -07:00
Peter Steinberger 1b5dbd3bb4 fix(heartbeat): deliver structured replies and clear completed recovery (#119655)
* fix(heartbeat): preserve structured replies and delivery recovery

* test(heartbeat): isolate structured delivery regressions
2026-08-05 09:15:58 -07:00
Peter Steinberger c2215d0504 refactor(gateway): consolidate chat abort authorization (#119642) 2026-08-05 09:15:31 -07:00
Peter Steinberger 9e47563d78 test(skills): reuse workshop state fixtures (#119673)
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-05 09:14:50 -07:00
Jason (Json) 40b0b3da39 fix(diagnostics): bound recent phase attribution (#119625) 2026-08-05 10:14:33 -06:00
Peter Steinberger 36dbbd72ed refactor(cli): consolidate skill workshop command dispatch (#119640) 2026-08-05 09:07:06 -07:00
Peter Steinberger 21bc2c43f2 fix(discord): explain failed form openings instead of silently doing nothing (#119657)
* fix(discord): report failed modal presentation to the operator

* refactor(discord): reuse canonical interaction failure recovery
2026-08-05 09:02:59 -07:00
Peter Steinberger 40a3bd2e10 refactor(agents): unify guarded subagent lifecycle cleanup (#119637) 2026-08-05 09:00:50 -07:00