Shakker
37aa0b964e
docs: correct dashboard auth precedence ( #119785 )
2026-08-06 02:21:54 +01:00
Shakker
47591e7b11
docs: document control ui owner handoff
2026-08-06 02:21:45 +01:00
HughTang
a1064adb68
fix(diagnostics-otel): propagate exported span context ( #112283 )
...
* fix(diagnostics-otel): harness.run root span adopts diagnostic trace context
Fall back to internalOrTrustedParentContext when there is no active
tracked parent, so the openclaw.harness.run root span (and its whole
OTel subtree) adopts the diagnostic traceId instead of minting a new
OTel root. This lets spans propagated via the diagnostic traceparent
(e.g. a2a-gateway a2a.call / downstream a2a.task) share one trace with
the run internals.
* fix(diagnostics-otel): propagate exported span context
Co-authored-by: HughTang <44694613+HughTang@users.noreply.github.com >
* fix(diagnostics): break propagation import cycle
* fix(diagnostics): preserve trace propagation contracts
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-06 08:41:20 +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
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
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
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
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
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 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
ragesaq
5cd2c5b07b
fix: keep ClickClack discussion rooms durable
...
Separate durable ClickClack room identity from replaceable exact-session attachments. Session archive, reset, deletion, and recreation retain the existing room and history while rotating local routing authority and preserving fail-closed exact-incarnation grants.
Pin ambiguous room recovery to the originating account and credential, and retain prior attachments when persistence fails.
Closes #119300
Co-authored-by: Chisel <chisel@psiclawops.dev >
2026-08-05 16:38:59 +01:00
Jesse Merhi
95d7d95515
feat(tools): support batched tool search queries ( #118623 )
...
* feat(tools): support batched tool search queries
* fix(tools): harden batched tool search
* fix(tools): preserve batch search contracts
* fix(tools): bound batch search processing
* fix(tools): bound batch candidate metadata
* fix(tools): preserve callable batch candidates
* docs(tools): align batch search QA proof
* refactor(tools): isolate search request parsing
* test(qa): strengthen structured search proof
* test(qa): align structured directory proof
* fix(tools): preserve scalar search compatibility
* test(qa): disable batch scenario retries
* test(qa): allow direct-only tools in structured proof
* test(qa): verify nested catalog call result
* test(qa): remove obsolete result scanner
2026-08-05 16:28:10 +10:00
Syu
b316c9cacf
fix(channels): honor explicit preview streaming settings
...
Explicit Telegram and Discord preview modes now override inherited block streaming while explicit channel block settings remain authoritative.
Co-authored-by: Syu <zhuqimo@gmail.com >
2026-08-05 09:04:49 +05:30
Vincent Koc
e35d22807e
perf(xai): lazy-load optional capability runtimes ( #119374 )
...
Punchcard-Session: coral-workshop-workshop-3f
2026-08-05 11:26:40 +08:00
Vincent Koc
fd1662f49c
fix(cli): retire invalid secret flags and prove doctor recovery ( #118926 )
...
* test(qa): add doctor CLI recovery coverage
* test(qa): secure doctor exec SecretRef proof
* test(qa): gate doctor systemd recovery proof
* test(qa): normalize doctor terminal output
* test(qa): close doctor probe sockets
* test(qa): classify doctor probe as foreign
* test(qa): track doctor probe sockets
* test(qa): retain doctor instance narrowing
* test(qa): preserve observed doctor recovery proof
* test(qa): keep doctor recovery on stable dist
* test(qa): honor Windows exec ACL blocking
* test(qa): use canonical home for systemd recovery
* test(qa): follow bounded gateway recovery
* test(qa): accept lifecycle service label
* test(qa): align doctor recovery contract
Punchcard-Session: crisp-lantern-orchard-nv
* docs(secrets): remove retired provider bypasses
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor recovery target
Punchcard-Session: crisp-lantern-orchard-nv
* fix(cli): retire invalid secret provider flags
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor supervisor mode
Punchcard-Session: crisp-lantern-orchard-nv
* fix(plugins): remove dead secret path bypass
Punchcard-Session: crisp-lantern-orchard-nv
* chore: drop release-owned changelog entry
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor sudo scope
Punchcard-Session: crisp-lantern-orchard-nv
* fix(secrets): remove dead path bypass
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate systemd user bus
Punchcard-Session: crisp-lantern-orchard-nv
2026-08-05 11:20:23 +08:00
Vincent Koc
17ef7771a6
fix(ci): stabilize TUI PTY proof ownership ( #119420 )
...
* fix(ci): stabilize TUI PTY proof ownership
Punchcard-Session: cobalt-brook-meadow-m9
* fix(test): align TUI PTY event typings
Punchcard-Session: cobalt-brook-meadow-m9
2026-08-05 11:08:56 +08:00
Peter Steinberger
22de30f998
fix(media): decouple playback cache retention ( #119417 )
2026-08-04 19:57:48 -07:00
Vincent Koc
392e1c0620
fix(ci): preserve cache warmer shard envelopes ( #119403 )
...
Punchcard-Session: amber-orchard-valley-s4
2026-08-05 10:20:55 +08:00
Dinesh H Suthar
50c7444edf
fix(sessions): preserve compatible auth profiles on model changes ( #117550 )
...
* fix(model-picker): preserve compatible auth profiles
* chore(plugin-sdk): refresh API baseline
* fix(model-picker): keep profile policy core-owned
* fix(model-picker): preserve profiles across auth aliases
* chore(plugin-sdk): update public surface budgets
* fix(model-picker): honor explicit profile clearing
* fix: preserve compatible auth profiles on model changes
* perf: reuse prepared auth profile metadata
* docs(plugin-sdk): document direct model persistence fallback
* test: expose auth snapshot in directive mock
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
Co-authored-by: Dinesh Suthar <dineshsld20@gmail.com >
2026-08-05 07:40:00 +05:30
Vincent Koc
8f2850d83e
fix(ci): isolate cache warmer configs ( #119381 )
...
Punchcard-Session: amber-orchard-valley-s4
2026-08-05 09:12:28 +08:00
Josh Avant
618fba92bf
feat(audit): add execution identity inspection ( #117034 )
...
* feat(audit): add opt-in execution identity inspection
* fix(audit): gate recovery identity retention
* fix(audit): keep recovery identity type private
* test(audit): type internal recovery fixture
* test(audit): split recovery identity coverage
* docs(audit): define operator read trust boundary
* test(qa): register identity scenario child
* fix(audit): enforce shared identity retention bounds
* fix(audit): seal public ingress identity boundary
* fix(audit): keep ingress guard lint-clean
* fix(gateway): preserve advertised method order
* chore(protocol): sync advertised method order
* fix(protocol): encode audit selector invariants
* test(audit): prove exact execution guard
* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05:00
Peter Steinberger
58025dd33c
fix(fs): adopt fs-safe 0.5.2 untrusted filename sanitization ( #119363 )
...
* fix(fs): adopt fs-safe 0.5.2 untrusted filename sanitization
* fix(media): classify pre-open identity drift as access denial
* chore(checks): refresh SDK baseline and env-var budget for fs-safe adoption
* test(media): compact sanitizer cases under max-lines
* fix(agents): keep workspace symlink contract under fs-safe 0.5.2
* fix(infra): align path normalization and atomic-write proofs with fs-safe 0.5.2
* fix(fs): keep operator symlink contracts on config, control-ui, skills, hooks
* fix(fs): restore sandbox and session-lock contracts under fs-safe 0.5.2
* test(claws): expect symlink diagnostic for tampered plan parents
* fix(agents): canonicalize apply-patch mutations through contained aliases
* test(agents): split alias-update regression into focused file
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-04 17:53:44 -07:00
Vincent Koc
9ff9aac71a
fix(ci): isolate built TUI PTY fixture ( #119339 )
...
Run the built local TUI PTY lane after the other artifact checks so its real Gateway fixture has exclusive process and event-loop capacity.
Punchcard-Session: cobalt-brook-meadow-m9
2026-08-05 08:00:29 +08:00
Charles
c81aee5a96
docs: add ChromeOS (Crostini) platform install guide ( #107663 )
...
* docs: add ChromeOS (Crostini) platform install guide
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* docs: correct ChromeOS Linux container setup path
* docs: add zh-CN glossary entries for ChromeOS page terms
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-04 15:41:42 -07:00
Dallin Romney
7c93cff84a
fix(release): accept trusted extended-stable validation evidence ( #119264 )
...
* fix(release): accept trusted extended-stable validation evidence
* fix(release): document trusted candidate promotion
* docs(release): clarify validation evidence recovery
2026-08-05 04:14:30 +08:00
Vincent Koc
e99c289f3b
fix(ci): avoid duplicate Matrix release QA runs ( #119171 )
...
* fix(ci): gate reusable Matrix QA runs
* docs(ci): document Matrix release QA budget
2026-08-05 03:31:00 +08:00
Vincent Koc
d06fc25a0c
fix(agents): protect private memory in shared chats ( #119198 )
...
* fix(agents): protect private memory in shared chats
Fixes #84466
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(agents): propagate shared chat type across runtimes
* fix(agents): enforce bootstrap privacy after hooks
* test(agents): cover final bootstrap filtering
* fix(agents): filter private memory before allowlists
* fix(agents): preserve bootstrap source identity
* refactor(agents): simplify bootstrap source identity
* fix(agents): keep bootstrap source identity private
* fix(agents): unify CLI runtime chat type
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-04 23:01:38 +08:00
vovapetry
b5876a1086
fix(telegram): route reactions to their originating forum topics
...
Recover Telegram forum reaction topics from provider-observed message context before authorization, and drop unknown topics instead of routing them to General. Serialize each forum message with its reaction update to avoid cache races. Thanks @vovapetry.
2026-08-04 18:49:57 +05:30
joshavant
8393b37779
fix(setup): keep compatible Claude wrappers selectable
2026-08-04 02:08:23 -05:00
joshavant
d636f5f8e0
fix(agents): gate Claude live session protocol
2026-08-04 02:08:23 -05:00
Peter Steinberger
25e3b6c9b7
fix(cli): honor local port in gateway call ( #119046 )
2026-08-03 18:50:21 -07:00
Michael Christenson II
7f7a709b1d
fix: Ollama missing from onboarding when its service is reachable ( #118020 )
2026-08-03 17:49:31 -06:00
clawSean
5cd6694349
docs(sms): add Twilio A2P delivery guidance ( #88743 )
...
* docs(sms): add A2P delivery guidance
* fix(docs): correct Twilio A2P guidance
---------
Co-authored-by: clawSean <260045960+clawSean@users.noreply.github.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-04 07:43:21 +08:00
Vincent Koc
15b23cfc2d
fix(docker): use authenticated gateway health command ( #118996 )
...
* fix(docker): use authenticated gateway health command
* test(docker): prove documented compose health command
2026-08-04 07:10:36 +08:00
Vincent Koc
0758316883
feat(sms): track Twilio delivery status ( #118665 )
...
* feat(sms): track Twilio delivery status
* fix(sms): preserve Twilio delivery callbacks under inbound load
* fix(sms): correct delivery status contracts
* fix(sms): retry transient Twilio callback reads
* fix(sms): bound delivery callback admission
* docs(sms): clarify delivery callback recovery
2026-08-04 06:39:17 +08:00
Peter Steinberger
c83dcc2bc0
fix(security): harden network tool output at canonical owner boundaries ( #118984 )
...
* fix(security): bound external tool content at its canonical owner boundary
* fix(plugin-sdk): document supported security boundary and restore facade parity
2026-08-03 15:34:33 -07:00
Vincent Koc
1d446ad2cc
fix(plugins): remove stale load paths during uninstall ( #118930 )
...
* test(qa): prove marketplace plugin updates
* fix(plugins): clean exact install load paths on uninstall
* fix(ci): register marketplace lifecycle assertions
2026-08-03 21:57:54 +00:00
Peter Steinberger
14fe739ee9
fix(feishu): enforce exact signed webhook request boundaries ( #118758 )
...
* fix(feishu): enforce exact signed webhook request targets
* fix(feishu): preserve explicitly configured signed webhook query targets
* fix(feishu): preserve shipped relative webhook paths
* fix(feishu): normalize and migrate legacy webhook callback paths
* fix(feishu): preserve transformed webhook schema defaults
* fix(feishu): require canonical webhook paths before runtime startup
* docs(feishu): document canonical webhook routes and doctor recovery
2026-08-03 14:52:58 -07:00
Vincent Koc
554a6f3bbf
feat(sms): add Twilio MMS support ( #118664 )
...
* feat(sms): add Twilio MMS support
* fix(sms): harden hosted media bearer handling
* fix(sms): discard staged media before dispatch
* fix(sms): close staged media cleanup races
* fix(sms): finalize MMS metadata and race proof
* fix(media): bind local reads to authorized descriptors
* fix(sms): close MMS review gaps
* fix(media): make inbound root matching type-safe
* fix(media): route bounded reads through fs-safe facade
* test(media): satisfy async lint contracts
2026-08-04 05:46:37 +08:00
Peter Steinberger
108cec388e
fix(skills): provide safe workspace-specific malicious skill remediation ( #118969 )
2026-08-03 14:39:02 -07:00
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