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