Commit Graph

15881 Commits

Author SHA1 Message Date
Peter Steinberger
b828692089 refactor(webhooks): use native Zod schemas 2026-07-13 18:50:14 -07:00
Peter Steinberger
56e9d3b05f refactor(browser): scope async route lint exception 2026-07-13 18:37:46 -07:00
Peter Steinberger
b9c4815403 refactor(config): add canonical group-policy scope-tree resolver and migrate the first six channels (#106846)
* feat(config): add canonical group-policy scope-tree resolver

* chore(plugin-sdk): refresh API baseline hash for scope-tree exports

* refactor(channels): migrate googlechat, imessage, and whatsapp group policy onto the scope tree

* chore(plugin-sdk): refresh API baseline hash for groups scope-tree builder

* refactor(channels): migrate line, qqbot, and mattermost group policy onto the scope tree

* chore(plugin-sdk): refresh API baseline hash for case-insensitive scope key helper

* chore(plugin-sdk): refresh API baseline hash after rebase onto current main

* chore(plugin-sdk): refresh API baseline hash after rebase

* chore(plugin-sdk): refresh API baseline hash after rebase

* chore(plugin-sdk): refresh API baseline hash after rebase
2026-07-13 18:24:52 -07:00
Peter Steinberger
3442825e6b refactor(browser): use Express 5 async routes 2026-07-13 18:21:52 -07:00
sunlit-deng
7aa1aacb8e fix(reef): prevent oversized guard responses from consuming memory (#106439)
* fix(reef): bound guard provider response reads

* test(reef): strengthen guard response bound proof

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 18:02:11 -07:00
Marcus Castro
0934c445d3 refactor(whatsapp): use retryAsync for outbound delivery retries (#105579)
* refactor(whatsapp): reuse shared outbound retry runtime

* refactor(whatsapp): narrow outbound retry classification

* refactor(whatsapp): remove obsolete sleep export
2026-07-13 21:19:32 -03:00
zw-xysk
bdd060a40c fix(slack): add 30s timeout to directory client API calls (#106643)
* fix(slack): add 30s timeout to directory client API calls

* fix(slack): bound directory lookups

* fix(slack): reject delayed lookup retries

* fix(slack): preserve directory timeout contract

* fix(slack): keep lookup policy internal

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 17:07:41 -07:00
Peter Steinberger
f693ac1b65 refactor(config): share canonical deep merge 2026-07-13 17:06:26 -07:00
Leon-SK668
5864fa2dbf fix(onepassword): preserve Unicode in audit reason truncation (#106424)
* fix(onepassword): preserve Unicode in audit reason truncation

* test(onepassword): strengthen Unicode audit boundary proof

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 17:01:14 -07:00
Vincent Koc
cb705226ff test(telegram): avoid promise executor return (#106900) 2026-07-14 07:38:48 +08:00
Peter Steinberger
d361b4ccb8 feat(reef): headless openclaw reef CLI for agent-driven registration and pairing
Adds a non-interactive command surface (openclaw reef register|status|friend code|request|list|remove) so an agent can claim a handle and manage guarded friendships when its owner asks, without the interactive wizard. --json emits machine-readable output for automation. Registration is crash-safe and idempotent: guard defaults are provider-coupled, the full config is validated before the single-use magic-link token is consumed, a duplicate-handle claim recovers by proving key ownership and reconciling the relay's request policy, the exchanged session is cached scoped to relay+email (never printed) so reruns recover, one state dir is pinned to one identity, and friend removal revokes both the pin and the allowlist entry. Manifest gains commandAliases/onCommands so the CLI resolves; docs cover the agent-driven path.
2026-07-13 16:23:13 -07:00
Peter Steinberger
33f4856875 refactor(telegram): privatize pure helper surface (#106892) 2026-07-14 00:21:51 +01:00
Marcus Castro
3f94c647f7 refactor(whatsapp): reuse SDK tool result helper (#105574)
* refactor(whatsapp): reuse SDK agent-tool utilities

* fix(whatsapp): preserve call audio cleanup errors
2026-07-13 20:19:59 -03:00
Vincent Koc
b952394bd0 fix(ci): heal current main blockers 2026-07-13 16:10:55 -07:00
Peter Steinberger
d5a9602b41 refactor(browser): privatize proxy request type (#106883) 2026-07-14 00:08:22 +01:00
Marcus Castro
3079ac27b2 fix(whatsapp): honor mediaUrls precedence in channel payloads (#105576)
* fix(whatsapp): align channel media payload precedence

* fix(whatsapp): unify reply payload media precedence

* refactor(whatsapp): reuse media URL normalization
2026-07-13 20:07:09 -03:00
Galin Iliev
93bad8de2a fix: restore GitHub Copilot turns and account context limits (#106198)
* fix: restore GitHub Copilot runtime routing

Refs #106170

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6053811e-f081-436b-8741-54c5cab6c016

* fix: bind Copilot metadata to resolved credentials

Refs #106170

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6053811e-f081-436b-8741-54c5cab6c016

* refactor: split Copilot runtime helpers

* fix: satisfy Copilot runtime static gates

* fix: satisfy Copilot runtime lint

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Galin Iliev <galin.iliev@microsoft.com>
2026-07-13 16:04:34 -07:00
Peter Steinberger
055f6649f9 fix(web-readability): resolve relative article links 2026-07-13 15:49:57 -07:00
Vincent Koc
9f06eb23e8 refactor(googlechat): privatize monitor access helpers (#106871) 2026-07-14 06:44:42 +08:00
Peter Steinberger
2e0f6d5304 fix: recover browser routing and Discord voice context 2026-07-13 23:38:56 +01:00
Peter Steinberger
5c9e09af3a style(codex): format prompt projection 2026-07-13 15:32:59 -07:00
Peter Steinberger
51fece4960 fix(codex): preserve failure-path ownership 2026-07-13 15:32:59 -07:00
Peter Steinberger
323a9fbe29 refactor(codex): split app server run attempt 2026-07-13 15:32:59 -07:00
Peter Steinberger
4319ddbe8c feat(control-ui): import Codex and Claude Code memory (#106406)
* feat(control-ui): import coding assistant memory

* test(migrate): clean memory import temp dirs

* chore: move memory import note to PR body

* build: refresh memory import generated artifacts

* fix(control-ui): complete memory import checks

* build(control-ui): localize memory recovery labels

* fix(control-ui): harden memory import recovery

* refactor(migrate): keep memory import surfaces bounded

* fix(control-ui): use canonical agent row type

* fix(codex): drop dead migration type exports

* fix(migrate): restrict imported memory permissions

* fix(control-ui): preserve memory import recovery state

* fix(control-ui): retain memory import results

* build(control-ui): preserve translation memory history

* fix(control-ui): bind memory import state to agent

* fix(control-ui): unlock memory import after refresh

* test(gateway): preserve memory method suffix

* fix(migrate): bind reviewed memory imports

* fix(migrate): make memory imports retry-safe

* perf(ui): keep memory import lazy

* build: refresh generated artifacts after rebase

* chore: keep migration runtime within LOC guard

* build: refresh Swift protocol model
2026-07-13 15:30:06 -07:00
Peter Steinberger
4568606490 refactor(telegram): privatize doctor helpers (#106861) 2026-07-13 15:29:06 -07:00
Peter Steinberger
95da05ddce fix(oc-path): preserve JSONC insertion formatting 2026-07-13 15:25:53 -07:00
Peter Steinberger
dc8ef09bbe refactor(diagnostics-otel): keep extracted helpers private 2026-07-13 15:25:11 -07:00
Peter Steinberger
6454b07b17 refactor(diagnostics-otel): slim service orchestration 2026-07-13 15:25:11 -07:00
Peter Steinberger
00af5a5989 refactor(diagnostics-otel): extract event recorders 2026-07-13 15:25:11 -07:00
Peter Steinberger
351c069ed2 refactor(diagnostics-otel): extract telemetry foundations 2026-07-13 15:25:11 -07:00
wangmiao0668000666
5f681a1cb8 fix(memory-core): clear pending-update wait timer after update settles (#106173)
* fix(memory-core): clear pending-update wait timer after update settles

* test(memory-core): wrap setImmediate Promise executor in block body

`oxlint(no-promise-executor-return)` (enabled in the bundled-extension
config used by `pnpm lint:extensions:bundled` /`check-lint` /
`check-additional-extension-bundled`) flags the implicit return from
`new Promise((resolve) => setImmediate(resolve))`. The arrow function
is expression-bodied and returns the Immediate handle, which the rule
treats as a return inside a Promise executor.

Switch both occurrences in the regression guard to block bodies so the
executor callback does not return a value. Behavior is unchanged:
setImmediate still fires resolve on the next macrotask; the regression
assertion (process.getActiveResourcesInfo() delta) still passes.

* test(memory-core): track pending wait timer cleanup

* refactor(memory-core): keep timer cleanup LOC-neutral

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
2026-07-13 15:16:19 -07:00
ruel225
b6330edbe4 fix(sdk): add prototype-pollution guard to migration config merge (#103059) (#106116)
* fix(sdk): add prototype-pollution guard to migration config merge

mergeMigrationConfigValue and writeMigrationConfigPath had no
isBlockedObjectKey guard, allowing __proto__/constructor/prototype
keys from imported config files to trigger prototype pollution.

Add the same guard used by the sibling config-path writer
(setConfigValueAtPath/parseConfigPath) to reject blocked object
keys before they reach a bracket assignment.

Fixes #103059

* fix(sdk): harden migration config patches

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 15:14:58 -07:00
Peter Steinberger
76834210f8 fix(lobster): restore literal dep reference for runtime contract
70ab6b324d dropped the last literal "@clawdbot/lobster" mention from the
runner while keeping the join-built dynamic import, so the unused-direct-
dependency contract started failing on main. Document the join trick with
the literal package path so the contract sees the dependency again.
2026-07-13 14:55:36 -07:00
Peter Steinberger
70ab6b324d refactor(lobster): use canonical core export 2026-07-13 14:39:18 -07:00
Piotr Durlej
48279d46ca fix(signal): detect native bot mentions in group gating (#96738)
* fix(signal): detect native bot mentions in group gating

* fix(signal): accept ordinary-text native mentions

* chore(signal): defer release note to release process

* fix(signal): satisfy mention gating quality gates

* test(signal): cover public mention facts helper

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 14:35:23 -07:00
Peter Steinberger
3982424daa fix: main build passes strict checks (#106772)
* fix: restore main build checks

* chore: drop superseded main fixes

* fix: restore architecture and lint checks

* test: align runtime plugin install mocks

* style: format current main files

* test: assert transcript policy caching directly

* fix: deduplicate SQLite guardrail allowlist
2026-07-13 14:28:48 -07:00
Peter Steinberger
eb169a3c87 refactor(canvas): use chokidar watch directly 2026-07-13 14:04:39 -07:00
Peter Steinberger
995c75baa0 fix(ci): restore current-main quality gates (#106751)
* fix(ci): restore Control UI quality gates

* fix(ci): repair dead export cleanup fallout

* fix(ci): repair latest main quality gates

* fix(ci): satisfy current-main gate contracts

* docs: format Cloud Workers guide

* test: isolate context lookup module
2026-07-13 13:54:03 -07:00
Peter Steinberger
90a545b9e6 refactor(slack): trim internal exports (#106794) 2026-07-13 13:37:21 -07:00
Peter Steinberger
9b8fa12f25 refactor(google): use genai session type 2026-07-13 13:28:06 -07:00
Peter Steinberger
3d64e6fd7c refactor(microsoft): use node-edge-tts declarations 2026-07-13 13:21:09 -07:00
Peter Steinberger
6315dd8e2d fix(reef): adopt self-initiated friendships via durable outbound-intent markers 2026-07-13 13:03:55 -07:00
Peter Steinberger
d9e360f047 refactor(msteams): use exact Teams SDK types 2026-07-13 12:54:19 -07:00
Peter Steinberger
c182dda402 fix(migrate): import current Hermes state and provider contracts (#106758)
* fix(migrate): update Hermes importer contracts

* refactor(migrate): split Hermes importer modules

* fix(migrate): remove duplicate MCP helper

* docs(plugin-sdk): refresh migration API baseline

* chore(migrate): keep release note in PR
2026-07-13 12:53:13 -07:00
Peter Steinberger
6d299f383c refactor(memory-core): remove unused exports 2026-07-13 12:44:33 -07:00
Peter Steinberger
eb60b2208c refactor(feishu): remove unused exports 2026-07-13 12:44:33 -07:00
Peter Steinberger
35a02653c8 refactor(qqbot): remove unused exports 2026-07-13 12:44:33 -07:00
Peter Steinberger
d2f4fdf8e6 refactor(amazon-bedrock): use exact AWS SDK contracts 2026-07-13 12:29:19 -07:00
Peter Steinberger
1ecef82da8 refactor(googlechat): reuse Google auth gaxios runtime 2026-07-13 12:14:22 -07:00
Shakker
72b42f0ed7 fix: preserve ClickClack nonce lookup causes (#105775) 2026-07-13 19:57:34 +01:00