Commit Graph

68817 Commits

Author SHA1 Message Date
Peter Steinberger 44a0c093cf fix(docs): expose generated taxonomy links 2026-07-15 07:28:58 -04:00
Dallin Romney 043e4d1ec4 fix(release): validate frozen targets with current workflows (#108189)
* fix(release): support frozen validation targets

* fix(release): filter frozen-target upgrade scenarios
2026-07-15 04:28:17 -07:00
Peter Steinberger 20d6ddc4c7 refactor(agents): privatize models config test seams (#108275)
* refactor(agents): privatize models config test seams

* chore(deadcode): shrink models config export baseline
2026-07-15 04:27:39 -07:00
Peter Steinberger d223409c88 fix(ci): run all compact test bins serially (#108266) 2026-07-15 04:16:53 -07:00
Peter Steinberger 0393189243 chore(plugins): gate deprecation hygiene in CI and purge internal deprecated usage (#108261)
* chore(plugins): gate deprecation hygiene in CI and purge internal deprecated usage

* fix(agents): migrate auth-profiles oauth import to OAuthProviderId

* fix(whatsapp): use durability param in delivery-recovery test

* chore(scripts): declare shouldRunDeprecationHygieneChecks in check-changed types

* test(plugins): update runtime-api guard for ssrf policy rename
2026-07-15 04:15:23 -07:00
Ayaan Zaidi 8160bbdf2e fix(telegram): deliver rich-message authoring contract to every runtime via inbound formatting hints 2026-07-15 16:42:27 +05:30
Ayaan Zaidi fa3b1b08fc test(telegram): use allowlisted token placeholders in contract fixtures 2026-07-15 16:42:27 +05:30
Peter Steinberger 1a27e7f3ec fix(codex): model-scoped usage-limit blocks, structural 429 classification, no silent API-key billing (#108254)
* test(codex): use allowlisted placeholder for auth-bridge api-key fixture

* fix(codex): model-scoped usage-limit blocks, structural 429 classification, no silent API-key billing

- usage-limit blocks written from Codex rate-limit resets are model-scoped via
  a persisted blockedScope marker: healthy sibling models on the same auth
  profile stay usable; a different/unknown model failing widens the block
  profile-wide and never narrows back; legacy rows without the marker stay
  profile-wide until they expire (#100556)
- Codex usage-limit failures now surface as status-429 Error objects at both
  ingress paths (turn-start and streamed turn failure, wrapped at the event
  projector), so core failover classification is structural instead of
  matching message wording; profile blocking uses only rate-limit data whose
  revision advanced during the turn
- usage-limit detection requires the structured codexErrorInfo signal; the
  over-broad "usage limit" substring match that misclassified unrelated
  errors as subscription limits is gone (#96815)
- subscription/OAuth routes can no longer silently fall back to env/auth.json
  API keys: ambient key fallback is restricted to explicit api-key routes,
  native-auth subscription routes verify the account is chatgpt-backed via
  account/read, and shared app-server clients are partitioned by auth
  requirement so pooled clients cannot cross billing modes (#106375)
- integrated e2e regression: usage-limit promptError -> same-model sibling
  profile rotation -> model fallback with reason rate_limit

* chore(codex): keep CodexUsageLimitErrorResult type local
2026-07-15 04:10:57 -07:00
Peter Steinberger 4e756adaaf fix(telegram): stop doctor repeating expired cache warnings (#108259)
* fix(telegram): retire expired legacy caches

* chore: drop release-owned changelog edit
2026-07-15 04:08:15 -07:00
pick-cat 1c2bcbb56f fix: classify provider code-only failover errors (#95729)
* fix(agents): classify provider-native failover errors

Co-authored-by: Altay <altay@hey.com>

* fix(agents): scope provider failover codes

* docs(changelog): credit provider failover fix

* style(anthropic): format failover classifier

* docs(changelog): defer release-owned entry

---------

Co-authored-by: Pick-cat <266665499+Pick-cat@users.noreply.github.com>
Co-authored-by: Altay <altay@hey.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 04:07:51 -07:00
Peter Steinberger ddc9ec3f36 feat(discord): opt-in Discord Activities widget support (#107442)
Adds a Discord Activities integration so an agent can show a self-contained
HTML widget to Discord users, opened as a sandboxed Activity inside the client.
Off by default: routes, the discord_widget tool, and the launch handler register
only when channels.discord.activities is configured. OAuth identifies the user
and gates on the account allowlist; widget lookup is capability- or
instance-validated; token exchange is rate-limited; widget HTML runs in a
no-network sandboxed iframe.
2026-07-15 04:07:46 -07:00
Peter Steinberger 968c6581b6 refactor(agents): privatize auth test seams (#108260)
* refactor(agents): privatize auth test seams

* chore(deadcode): shrink auth export baseline
2026-07-15 04:00:58 -07:00
morluto 1a34950d9c fix(commitments): keep heartbeats responsive with large queues (#105780)
* fix(commitments): migrate store to sqlite

Replace steady-state JSON persistence with typed shared-state rows and a doctor-only verified import for shipped legacy data.

Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>

* fix(commitments): satisfy migration gates

* fix(commitments): type sqlite counts defensively

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 03:58:03 -07:00
VACInc 092bd16b79 fix: resolve Tavily SecretRefs in agent tools (#97827)
* fix(tools): preserve resolved search credentials

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>

Co-authored-by: Karol Zalewski <karol.zalewski@4zal.net>

* test(agents): isolate Tool Search runtime config coverage

* test(agents): isolate Tool Search runtime config coverage

* test(agents): isolate Tool Search runtime config coverage

* test(agents): isolate Tool Search runtime config coverage

* fix(tools): restore reviewed search credential delta

* docs(changelog): defer release-owned entry

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Karol Zalewski <karol.zalewski@4zal.net>
2026-07-15 03:56:12 -07:00
Peter Steinberger 2ac1b09838 chore(changelog): restore release-owned generation 2026-07-15 11:52:12 +01:00
Peter Steinberger 3e4d37b758 docs(changelog): credit Feishu proxy fix 2026-07-15 11:48:07 +01:00
yujian d43c8ec7a2 fix(feishu): route SDK traffic through ambient proxy (#86386)
* fix(feishu): route sdk http through ambient proxy

* fix(feishu): preserve request agents under proxy

* fix(feishu): honor managed proxy agent override

* fix(feishu): share ambient proxy transport

* chore(feishu): move release note to pr

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 03:47:19 -07:00
Peter Steinberger c490117a9f fix(pr): harden coordinator hosted gates (#108153)
* fix(pr): route hosted gate reads through cache

* test(control-ui): stabilize process readiness

* fix(ci): stabilize startup memory sampling

* fix(gateway): route OpenClaw approval listing

* fix(state): reuse schema repair transaction

* test(agents): assert host authority scope

* chore(plugin-sdk): refresh API baseline

* test(agents): assert delegate tool fixture

* test(sessions): stabilize concurrency worker startup
2026-07-15 03:45:37 -07:00
Peter Steinberger 026b688161 refactor(session-catalog): normalize search at gateway (#108240)
Co-authored-by: Leon-SK668 <0668001470@xydigit.com>
2026-07-15 03:38:05 -07:00
Peter Steinberger 54f70c5d8c fix(release): unblock plugin bootstrap recovery (#108243) release-publish/54f70c5d8c04-20260715 2026-07-15 03:34:08 -07:00
Peter Steinberger 99c43b1647 fix(ci): run 4vcpu compact bins serially to stop spawn-starvation flakes (#108239) 2026-07-15 03:32:53 -07:00
Peter Steinberger 84c7941f1e refactor: simplify recent async ownership fixes (#108164)
* fix(device-pair): preserve concurrent notify state

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* refactor(ui): simplify logbook refresh ownership

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* fix(qa-lab): bound multipass retry window

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* chore: keep release notes in PR body

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* fix(ui): keep logbook controller state private

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* fix(ui): retire logbook client epochs

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* fix(ui): retire inactive logbook ownership

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* fix(device-pair): require atomic notify state

Co-authored-by: Alix-007 <li.long15@xydigit.com>

---------

Co-authored-by: Alix-007 <li.long15@xydigit.com>
2026-07-15 03:32:15 -07:00
Peter Steinberger c57d1af958 fix(qa): wait for Matrix config reload (#108214) 2026-07-15 03:31:59 -07:00
Peter Steinberger 56eda48f20 test: speed up crabbox wrapper timing tests (#108207) 2026-07-15 03:31:32 -07:00
Peter Steinberger de8c904577 refactor(agents): privatize subagent owner surfaces (#108248)
* refactor(agents): privatize subagent owner surfaces

* chore(deadcode): shrink export baseline
2026-07-15 03:30:21 -07:00
Peter Steinberger bb3fae8348 refactor(telegram): split message dispatch (#108228)
* refactor(telegram): split message dispatch

* fix(telegram): keep dispatch types internal

* fix(telegram): satisfy dispatch lint
2026-07-15 03:25:54 -07:00
Peter Steinberger b4d82f4729 refactor(ui): use libterminal color query responder (#108234) 2026-07-15 03:17:31 -07:00
Peter Steinberger c6adbd233b fix(doctor): ignore rotating Claude CLI OAuth expiry (#108205) 2026-07-15 03:15:21 -07:00
Peter Steinberger f7718d9a91 test(release): cover protected plugin publish refs (#108227) 2026-07-15 03:14:59 -07:00
qingminlong 4975cf75b4 fix(cron): reject oversized trigger script files before read (#108130)
* fix(cron): reject oversized trigger script files before read

* refactor(cron): stream bounded trigger scripts

Co-authored-by: qingminlong <qing.minlong@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 03:12:21 -07:00
Peter Steinberger 9c61e29378 fix(ci): align plugin release workflow proof (#108223) 2026-07-15 02:59:48 -07:00
Peter Steinberger b2a336a2b9 refactor(policy): split policy state evidence (#108210) 2026-07-15 02:56:52 -07:00
Peter Steinberger 61bd901da9 docs(plugin-sdk): refresh generated API hashes (#108221) 2026-07-15 02:54:55 -07:00
Peter Steinberger 9c8a006d0c perf(ci): gate QA smoke by smoke-visible changes and isolate the prompt snapshot lane (#108202)
* perf(ci): diff-gate QA smoke by CLI import graph and isolate prompt snapshots lane

* fix(ci): run prompt snapshot lane unconditionally

* fix(ci): treat QA lane orchestration files as QA-impacting
2026-07-15 02:51:19 -07:00
Peter Steinberger 580938097f refactor(agents): privatize internal helper surfaces (#108219)
* refactor(agents): privatize internal helper surfaces

* chore(deadcode): shrink unused-export baseline
2026-07-15 02:47:05 -07:00
Peter Steinberger dfa246e6fd fix(release): complete protected publish tooling release-publish/dfa246e6fd16-20260715 2026-07-15 10:43:00 +01:00
Peter Steinberger 3fccaec469 fix: let doctor migrate legacy operator approvals (#108203)
* fix(state): avoid nested approval migration transaction

* fix(ci): repair system agent checks

* test(agents): align harness scope assertions
2026-07-15 02:39:36 -07:00
Ayaan Zaidi 02a5ce6306 refactor(telegram): split rich block modules under lint budgets 2026-07-15 14:57:55 +05:30
Ayaan Zaidi 2b4c03cae8 fix(telegram): keep rich HTML islands intact on message-tool sends 2026-07-15 14:57:55 +05:30
Ayaan Zaidi 195e29343b feat(telegram): map agent HTML islands to typed rich blocks 2026-07-15 14:57:55 +05:30
Ayaan Zaidi e3bc0f326c feat(telegram): emit Bot API 10.2 rich message blocks 2026-07-15 14:57:55 +05:30
Ayaan Zaidi 8170bdb556 test(telegram): drop rich-HTML formatter tests superseded by blocks emitter 2026-07-15 14:57:55 +05:30
Peter Steinberger 13c7cf45c8 docs(onepassword): document error codes, audit errorCode, and authorization handoff 2026-07-15 02:11:49 -07:00
Peter Steinberger ce2bc379a3 refactor(deadcode): repair system-agent export ratchet (#108201)
* refactor(agents): privatize delegation tool factory

* refactor(state): privatize approval migration helpers

* refactor(ui): privatize approval event parsers

* chore(deadcode): remove system-agent baseline growth
2026-07-15 02:11:42 -07:00
Peter Steinberger ff4ce42eab fix(linux): use the Clawd mascot for the desktop app icon (#108181)
The bundle/tray icon (icon.svg, icon-tile.svg and the generated
32/128/256/512 PNGs + icon.ico) still used the abstract two-pill
claw-mark. The product logo is the Clawd lobster mascot (already used in
the app header and ui/public/favicon.svg), so the app icon shown in the
Dock, taskbar, window, and tray now matches it: a static mascot on the
dark brand tile (transparent mascot for the tray). Regenerated from the
mascot SVG via rsvg-convert; build accepts the icon set.
2026-07-15 02:11:36 -07:00
mushuiyu886 f946f45ef1 fix(sessions): preserve UTF-8 across tail reads (#108151) 2026-07-15 02:08:58 -07:00
Leon-SK668 8cc7cac556 fix(android): preserve emoji in app session labels (#108102) 2026-07-15 02:03:48 -07:00
Peter Steinberger 69595af402 refactor(sessions): trim internal exports (#108191)
* refactor(sessions): trim internal exports

* chore(deadcode): shrink sessions export baseline
2026-07-15 02:03:06 -07:00
mushuiyu886 65d55d046b fix(synology-chat): replies target the wrong user when Unicode nicknames span response chunks (#108019)
* fix(synology-chat): preserve UTF-8 in user list responses

* refactor(synology-chat): use native response decoding

Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 02:02:00 -07:00
Wynne668 61b85aa1d1 fix(clickclack): stop promptly during reconnect delay (#108145)
* fix(clickclack): cancel reconnect delay on gateway abort

* fix(clickclack): clean up failed websocket cycles

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 01:59:58 -07:00