Ayaan Gazali
347398311a
docs: fix stale 2gb session disk budget default on chrome extension page ( #110624 )
2026-08-04 05:24:23 +08:00
Peter Steinberger
76cc60a452
docs: correct onboarding risk flags and Google Chat credential shapes ( #118936 )
2026-08-03 13:59:29 -07:00
kiranmagic7
682f60ce56
fix(config): reject unsupported diagnostics otel grpc ( #93087 )
2026-08-03 16:28:08 -04:00
Peter Steinberger
990fdcf6fd
fix(providers): recognize configured media credentials across provider boundaries ( #118761 )
...
* fix(providers): honor configured media credentials across owner boundaries
* test(providers): align configured auth fixtures and derived SDK surfaces
* fix(providers): enforce shared DashScope media credential policy
2026-08-03 13:26:31 -07:00
Peter Steinberger
f9d9d1225a
refactor(channels): own the lifecycle status contract in SDK patch factories ( #118795 )
...
* refactor(sdk): add channel lifecycle patch factories
* refactor(channels): adopt lifecycle patches in a-m
* refactor(channels): adopt lifecycle patches in n-z
* refactor(runtime): lifecycle-own ambient registries
* test(slack): assert lifecycle factory fields
* fix(sdk): preserve lifecycle patch extras types
* test(zalouser): widen lifecycle status sink
* test(irc): avoid shadowed status patch
* fix(zalo): reuse account-agnostic media route
* fix(gateway): accept explicit channel ready recovery
* test(qa): assert terminal Slack block fact
* test(qa): restore Slack blocked lifecycle scenario
* test(gateway): lock explicit lifecycle recovery contract
2026-08-03 12:39:48 -07:00
Peter Steinberger
bbde865b9c
docs(gateway): fix invalid heartbeat visibility examples ( #118827 )
2026-08-03 11:17:14 -07:00
Vincent Koc
21a767639f
fix(plugins): unify HTTP route conflict handling ( #118203 )
...
* fix(plugins): unify HTTP route conflict handling
* fix(plugins): preserve source-less route replacement
* test(line): type webhook route source
2026-08-04 02:15:00 +08:00
Peter Steinberger
2efac6c999
feat(cli): add session archive and delete commands ( #118791 )
...
* feat(cli): add session lifecycle commands
* fix(deps): update brace-expansion security pin
* chore: defer session lifecycle release note
2026-08-03 11:00:17 -07:00
Pavan Kumar Gondhi
f63f2fd3db
fix(reef): restrict management commands to owners [AI] ( #118578 )
...
* fix(reef): require owner for management commands
* fix(reef): preserve general command access
* fix: preserve explicit owner authority
* fix(discord): separate voice admission from ownership
* docs(reef): explain owner command recovery
* docs(reef): clarify owner recovery paths
2026-08-03 23:18:05 +05:30
Peter Steinberger
e7950261b6
docs(openrouter): repair invalid canonical configuration examples ( #118747 )
2026-08-03 09:53:01 -07:00
Vincent Koc
f9baa3e894
fix(channels): generate discovery docs from catalog ( #118106 )
2026-08-03 23:42:55 +08:00
Peter Steinberger
7fafaf50f4
fix(onboard): keep referenced provider secrets out of plaintext ( #118702 )
...
* fix(onboard): keep referenced provider secrets out of plaintext
* fix(onboard): retain public credential owner type usage
* docs(onboarding): explain preserved credential profiles in reference mode
2026-08-03 08:34:47 -07:00
Peter Steinberger
1e06fd4430
docs: show canonical agent roster configuration ( #118722 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-03 08:24:40 -07:00
Peter Steinberger
a6f9da8bdb
refactor: centralize cron, doctor, and TUI ownership ( #118515 )
...
* refactor(cron): centralize queued run activation
* refactor(doctor): share session SQLite report scaffolding
* refactor(tui): unify slash command registry
* fix(tui): satisfy command registry lint
* fix(tui): align shared command usage help
* fix(btw): preserve outbound usage placeholder
2026-08-03 04:08:54 -07:00
Peter Steinberger
6d8c1ed30d
fix(voice-call): prevent unrelated session recall in fast context ( #118498 )
...
* fix(talk): authorize fast session context
* test(plugins): preserve memory runtime mock types
* fix(plugins): preserve memory authorizer binding
* fix(memory): forward search authorization in lazy runtime
* test(memory): verify lazy authorizer host binding
* docs(plugins): define memory search authorization contract
2026-08-03 03:38:02 -07:00
Peter Steinberger
deb682abfe
refactor(plugins): consolidate extension runtime helpers ( #118509 )
...
* refactor(plugins): consolidate extension runtime helpers
* fix(ci): satisfy extension type and lint checks
* chore(plugin-sdk): regenerate API baseline for #118509
2026-08-03 02:56:43 -07:00
Peter Steinberger
ecc49b5a87
refactor(tts): absorb speech core package ( #118513 )
...
* refactor(tts): absorb speech core package
* fix(tts): preserve runtime SDK exports
* refactor(tts): remove private package exports
* test(tts): align canonical runtime mocks
* test(tts): complete canonical settings mocks
* chore(plugin-sdk): regenerate API baseline for #118513
2026-08-03 02:25:48 -07:00
joshavant
d9393bd3cb
fix: make subagent completion delivery durable
2026-08-03 02:48:34 -05:00
Peter Steinberger
fad7632a51
docs: explain model usage events and supported usage APIs ( #118483 )
2026-08-02 23:52:11 -07:00
Mislav Ivanda
a98852c938
docs: add Daytona hosting guide ( #116411 )
...
Adds a Daytona hosting guide covering sandbox creation, onboarding, secure preview-URL dashboard access, channel setup, updates, and troubleshooting, and links it from the hosting navigation.
Prepared head SHA: 4faf05211b
Co-authored-by: Mislav Ivanda <72461767+mislavivanda@users.noreply.github.com >
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com >
Reviewed-by: @shakkernerd
2026-08-03 07:17:18 +01:00
Peter Steinberger
5de84bfc4d
fix(openai): support the current speech model snapshot ( #118475 )
...
* fix(openai): support the current speech model snapshot
* docs(openai): clarify speech instructions apply to the model family
2026-08-02 23:00:46 -07:00
Peter Steinberger
e04caa6aee
fix(openai): support flexible GPT Image 2 dimensions ( #118476 )
...
* fix(openai): support flexible GPT Image 2 dimensions
* docs(openai): explain flexible GPT Image 2 dimensions
2026-08-02 22:40:07 -07:00
Dallin Romney
d985d771d9
docs: refresh maturity scorecard from full QA evidence ( #118074 )
...
* docs: refresh maturity scorecard
* docs: remove incomplete evidence notice
2026-08-03 12:43:12 +08:00
Alex Knight
d7def97638
fix(cli): one-shot agent --local runs never export OTel diagnostics ( #100845 )
...
Diagnostics exporters are plugin services that only ever start inside the
Gateway process, so embedded `openclaw agent --local` turns emitted
diagnostic events in the CLI process with no subscriber: zero spans,
metrics, or logs reached the OTLP collector while identical Gateway-
dispatched turns exported fine.
The CLI now starts the `diagnostics-otel` service around embedded agent
runs via a scoped, non-activating plugin load that honors the same
plugin-enablement config as the Gateway, and flushes before exit: drain
the async diagnostic-event queue, then shut the SDK down (force flush).
Each step is bounded separately (5s drain, 10s flush) so an unreachable
collector cannot hold the CLI open, and a stalled drain cannot consume
the flush window and discard telemetry that was already buffered.
When OTel is configured but the plugin is absent, the run now says so
instead of exporting nothing with nothing explaining why.
`diagnostics-prometheus` stays Gateway-only: it is a pull-based scrape
server that is useless in a short-lived process and would race the
Gateway for its port. No new config surface; configs without OTel enabled
short-circuit before any plugin load.
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com >
2026-08-03 13:29:46 +10:00
Peter Steinberger
b0e023a241
fix: Control UI avatars load with Tailscale identity auth ( #118353 )
...
* fix(gateway): allow Tailscale-authenticated avatar reads
* fix(gateway): enforce avatar request origins
* fix(gateway): reject wildcard ambient avatar origins
2026-08-02 20:05:45 -07:00
Peter Steinberger
b438b9605f
fix: dashboards fail to load and interrupted first-time setup never recovers ( #118388 )
...
* fix: recover dashboards and interrupted first-time setup
* fix: clarify managed proxy bypass boundary
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-02 19:56:40 -07:00
Peter Steinberger
357087b9c7
refactor(gateway): lifecycle-owned ambient state via factory-registered drains ( #118271 )
...
* refactor(runtime): own ambient state lifecycle cleanup
* chore(plugin-sdk): refresh additive API baseline
* fix(runtime): restore agent wait listener lifecycle
Keep agent-job data process-shared while preserving module-local event subscription ownership. Ratchet the public wildcard budget down after replacing text-runtime's wildcard singleton export with named exports.
2026-08-02 18:06:46 -07:00
Peter Steinberger
e1c71fab4f
docs: add stable gateway HTTPS guide ( #118340 )
2026-08-02 18:05:42 -07:00
Peter Steinberger
ec7e5dd769
fix(gateway): recover channel autostart after crash loops ( #118311 )
...
* fix(gateway): recover channel autostart after crash loops
* docs(gateway): clarify crash-loop recovery steps
* test(gateway): type crash-loop recovery context
* test(gateway): correct recovery mock context
* test(gateway): keep recovery monitor coverage compact
* chore: leave crash-loop note to release flow
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-02 18:01:39 -07:00
Peter Steinberger
cef675233b
docs(memory): explain overlapping hook and transcript indexing ( #118299 )
2026-08-02 17:06:32 -07:00
Peter Steinberger
e9d88696b5
feat(cron): add webhook SSRF policy ( #118237 ) ( #118286 )
2026-08-02 17:02:20 -07:00
Peter Steinberger
181da6f69c
fix(cron): reject ambiguous multi-channel announce jobs ( #118272 )
...
* fix(cron): reject ambiguous announce delivery (#118236 )
* test(cron): move implicit announce ambiguity coverage to the service owner
2026-08-02 16:25:30 -07:00
Jason (Json)
8df95ccd08
fix: recover Control UI access after device-auth upgrades ( #118231 )
...
* fix: recover Control UI pairing from dashboard
* test: prove dashboard credential rotation
* test: complete gateway auth generation fixture
* test: restore QR device token verifier
* fix: preserve headless dashboard recovery
2026-08-02 16:40:53 -06:00
Jason (Json)
01565bdc47
fix(agents): make requested threads sidebar-visible ( #118073 )
...
* fix(agents): make requested threads sidebar-visible
* fix(agents): preserve visible spawn authority
2026-08-02 14:26:24 -06:00
Peter Steinberger
0c32879d45
feat(channels): publish recorded lifecycle from bundled channel transitions ( #118110 )
...
* feat(channels): publish recorded lifecycle from bundled channel transitions
* chore: remove lifecycle changelog entry
2026-08-02 13:04:49 -07:00
Peter Steinberger
08d0952df2
feat(cron): auto-disable repeatedly failing recurring jobs ( #118113 )
...
Refs #118089
Release note: recurring automations now auto-disable after 10 consecutive run failures, record the reason, and notify their owning agent.
2026-08-02 11:51:17 -07:00
Peter Steinberger
d02101d7ce
docs(plugins): document session-end shutdown drain deadline ( #118099 )
2026-08-02 11:23:10 -07:00
Peter Steinberger
c28b524f38
refactor(auth): move Copilot OAuth ownership to plugin ( #118063 )
...
* refactor(auth): move Copilot OAuth ownership to plugin
* test(auth): cover plugin-owned Copilot OAuth
* test(auth): align OAuth runtime mocks
* refactor(auth): extract session OAuth adapter
* refactor(auth): centralize session OAuth dispatch
* test(auth): type OAuth refresh mock
* chore(plugin-sdk): regenerate API baseline for provider oauth dispatch
2026-08-02 10:59:28 -07:00
Shakker
64b6f21948
chore: refresh plugin sdk api baseline
2026-08-02 18:32:19 +01:00
Peter Steinberger
ad53d4419e
fix: make gateway token recovery usable from macOS onboarding ( #118051 )
...
* fix(gateway): add safe token recovery
Co-authored-by: 宇宙熊Yzx <53250620+849261680@users.noreply.github.com >
* chore: move gateway release note to PR
* test(cli): classify gateway token output
---------
Co-authored-by: 宇宙熊Yzx <53250620+849261680@users.noreply.github.com >
2026-08-02 10:06:50 -07:00
Peter Steinberger
4133fe925f
docs(browser): note mcporter auto-detects the extension relay ( #118066 )
...
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-08-02 09:51:06 -07:00
Vincent Koc
2844876be3
fix(google): align unsupported CLI auth paths ( #118034 )
2026-08-03 00:13:19 +08:00
ruel225
f2b3d1588f
fix(workboard): diagnose archived cards still in an active status ( #116359 ) ( #117290 )
...
* fix(workboard): diagnose archived cards still in an active status
An archived card with an active status (ready/running/blocked/etc.) was
silently excluded from dispatch with no signal on any surface —
workboard show rendered it normally, dispatch returned count:0 with empty
startFailures, and computeCardDiagnostics returned [] for archived cards.
Operators could only find it by reading the database directly.
Add an archived_but_active diagnostic kind to WORKBOARD_DIAGNOSTIC_KINDS
and an unarchive action. In computeCardDiagnostics, when a card has
archivedAt set but status is not done, emit the warning so workboard show
and store.diagnostics report it. Done+archived cards stay silent (no
diagnostic) as before. The diagnostic is transient — refreshDiagnostics
still skips archived cards, so their stored metadata is not rewritten.
Fixes #116359
Co-Authored-By: Claude <noreply@anthropic.com >
* fix(workboard): expose archived active cards
* ci: re-trigger after sqlite flip-proof e2e flake
Unrelated to workboard diagnostic changes; sqlite session/transcript
flip-proof e2e failed with array mismatch on an untouched path.
Co-Authored-By: Claude <noreply@anthropic.com >
---------
Co-authored-by: ruel225 <ruel225@users.noreply.github.com >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-02 07:30:52 -07:00
Jesse Merhi
0181ba67c2
feat(diagnostics): configure OTEL metric name prefixes ( #116687 )
...
* feat(diagnostics): support OTEL metric name prefixes
* feat(diagnostics): replace the default metric prefix
* docs(diagnostics): explain metric prefix migration impact
* fix(diagnostics): validate metric name prefixes
2026-08-03 00:29:05 +10:00
Peter Steinberger
d720d78fee
fix(cli): preserve shell profiles when completion install fails ( #117987 )
...
* fix(cli): publish completion profiles atomically
Closes #117980
* fix(ci): restore environment variable budget
* fix(cli): preserve dangling completion profile symlinks
* fix(cli): narrow completion readlink failures
2026-08-02 06:36:43 -07:00
Peter Steinberger
5739f42c48
fix(nodes): preserve screen output on write failure ( #117973 )
...
* fix(nodes): publish screen output atomically
Closes #117970
* fix(nodes): keep output schema unchanged
2026-08-02 05:22:34 -07:00
Dallin Romney
e9b25aa21d
refactor(cua-computer): replace daemon MCP with CUA Driver SDK ( #117205 )
...
* chore(cua-computer): freeze CUA Driver 0.14.1 fixtures
* refactor(cua-computer): use CUA Driver SDK directly
* fix(cua-computer): repair CUA CI checks
* style(cua-computer): format driver cleanup
* fix(cua-computer): migrate retired driver path
* fix(cua-computer): start direct driver sessions
2026-08-02 20:03:24 +08:00
clawsweeper[bot]
8f46e31994
fix(nvidia): hide retired models while preserving live vendor discovery ( #117620 )
...
* fix(model-catalog): preserve manifest lifecycle metadata on refresh
* fix(nvidia): simplify Qwen model lifecycle
* test(nvidia): avoid map-spread lint
* docs(nvidia): clarify retired Qwen models
* fix(models): preserve NVIDIA lifecycle states
* fix(models): keep NVIDIA lifecycle plugin-owned
* fix(nvidia): retain fresh featured catalog models
---------
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@macos.shared >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-02 04:40:17 -07:00
Peter Steinberger
85e4094529
fix(cli): publish TTS output atomically ( #117962 )
2026-08-02 04:08:55 -07:00
Peter Steinberger
de0fa7c208
feat(webchat): expand truncated assistant messages inline ( #117936 )
...
* feat(webchat): expand truncated assistant messages inline
Replace the per-message Open in canvas button with an inline Show more /
Show less disclosure on truncated assistant messages that fetches full
content via chat.message.get on demand.
* test(webchat): stabilize inline expansion e2e
* fix(ui): satisfy lint and export gates for inline show-more
* test(ui): update shared disclosure selector
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-02 03:35:07 -07:00