Peter Steinberger
921a5416e4
refactor: move channel doctor migrations to plugins
2026-04-22 18:55:18 +01:00
Peter Steinberger
9d5d2f9cdd
fix: make Discord thread parent inheritance opt-in ( #69986 ) (thanks @Blahdude)
2026-04-22 18:54:22 +01:00
Oliver Camp
956cf9b6b2
fix(discord): make thread parent inheritance opt-in
2026-04-22 18:54:22 +01:00
Peter Steinberger
40e19cc9a1
ci: downsize install smoke runner
2026-04-22 18:54:06 +01:00
Vincent Koc
b5b03fbaee
test(slack): drop obsolete adapter hook test
2026-04-22 10:53:44 -07:00
Vincent Koc
e593122465
fix(hooks): standardize outbound routing metadata
2026-04-22 10:53:44 -07:00
Peter Steinberger
b0f6c54645
ci: run install smoke for runtime dep staging
2026-04-22 18:51:38 +01:00
Peter Steinberger
a12fcd3f18
fix: harden Discord voice commands in threads
2026-04-22 18:49:58 +01:00
Peter Steinberger
9d66a900e5
fix(plugins): harden bundled runtime dep staging
2026-04-22 18:49:13 +01:00
Hana Chang
0e9c632444
fix(discord): use resolveDiscordChannelNameSafe for voice channel override name
...
Applies the same safe-accessor pattern to the adjacent name field.
If @buape/carbon implements name as a getter that also reads _rawData
(like parentId), the previous `"name" in channel` pattern would throw
for the same reason. Aligns with the fix for parentId in the same call
site.
2026-04-22 18:47:41 +01:00
Hana Chang
5c5fa5f38b
fix(discord): use resolveDiscordChannelParentIdSafe in voice command path
...
#69908 switched native slash commands, listeners, and the model picker to
the safe accessor for partial thread channels, but the voice /join command
still reads channel.parentId through the unsafe "parentId" in channel
pattern. Route it through the same helper so the voice command path does
not crash with "Cannot access rawData on partial Channel" when invoked
from inside a thread on @buape/carbon >=0.16.
2026-04-22 18:47:41 +01:00
Claw Kowalski
43366cd541
fix(discord): thread runtime config through guild actions
2026-04-22 18:47:30 +01:00
Peter Steinberger
e9d16cbd8c
test: keep loader fixture inside plugin boundary
2026-04-22 18:46:57 +01:00
Peter Steinberger
860cc1b3fe
fix(config): preserve source config during recovery
2026-04-22 18:42:53 +01:00
Peter Steinberger
557f4fc689
docs: update claude cli stdio notes
2026-04-22 18:40:51 +01:00
Peter Steinberger
d8c9185f3f
ci: add fast docker install smoke
2026-04-22 18:39:03 +01:00
Peter Steinberger
dad4b3e7fb
fix: default claude cli to stdio sessions
2026-04-22 18:38:32 +01:00
Peter Steinberger
9337e1bd8a
fix(agents): accept silent no-reply turns
2026-04-22 18:36:15 +01:00
Peter Steinberger
9d27d09d47
fix: add plugin load debug shape
2026-04-22 18:31:37 +01:00
Peter Steinberger
63776bc999
test: stabilize audio directive tag test
2026-04-22 18:26:07 +01:00
Peter Steinberger
a2512f0243
fix: load staged dist-runtime plugins in docker
2026-04-22 18:22:39 +01:00
Peter Steinberger
72c765e736
ci: parallelize additional boundary guards
2026-04-22 18:21:05 +01:00
Peter Steinberger
a9be41d8c7
ci: keep workflow edits off windows lane
2026-04-22 18:16:11 +01:00
Peter Steinberger
2afad03931
ci: trim gateway watch build profile
2026-04-22 18:11:48 +01:00
Peter Steinberger
024592fb1d
Revert "ci: reuse build artifacts for gateway topology"
...
This reverts commit be317769e6 .
2026-04-22 18:10:02 +01:00
Devin Robison
5b32c3138c
telegram: align model picker callback auth ( #70235 )
...
* telegram: align model picker callback auth
* docs(changelog): note telegram model callback auth fix
* fix(telegram): use runtime config for model callback auth
2026-04-22 11:06:01 -06:00
Peter Steinberger
be317769e6
ci: reuse build artifacts for gateway topology
2026-04-22 18:05:27 +01:00
Tak Hoffman
f328c21046
feat: Add /models add hot-reload model registration ( #70211 )
...
* feat(models): add chat model registration with hot reload
* docs(changelog): add models entry for pr 70211
* fix(models): harden add flow follow-ups
* fix models add review follow-ups
* harden models add config writes
* tighten plugin boundary invariant
* move models add adapters behind sdk facades
* avoid ollama-specific core facade
2026-04-22 12:00:30 -05:00
Devin Robison
0623079e98
fix(dotenv): block connector endpoint workspace overrides ( #70240 )
...
* fix(dotenv): block connector endpoint workspace overrides
* docs(changelog): note dotenv endpoint blocklist
* fix(dotenv): block Matrix per-account scoped homeserver overrides
2026-04-22 10:58:32 -06:00
Peter Steinberger
8b8df813d0
ci: keep native lanes native scoped
2026-04-22 17:53:38 +01:00
Peter Steinberger
03cf97a33e
ci: consolidate short test workers
2026-04-22 17:49:06 +01:00
Peter Steinberger
6370013bb7
ci: rebalance runtime config tests
2026-04-22 17:37:54 +01:00
Peter Steinberger
e8240a2628
ci: keep build smoke on blacksmith
2026-04-22 17:33:40 +01:00
Peter Steinberger
d8913d3901
ci: offload short linux checks
2026-04-22 17:30:54 +01:00
Peter Steinberger
8febc20e80
ci: reduce blacksmith test pressure
2026-04-22 17:26:00 +01:00
Ayaan Zaidi
486d0ec235
fix(gateway): preserve restart continuation chat type
2026-04-22 21:49:49 +05:30
Peter Steinberger
4ef1c06f9e
ci: rebalance agentic node tests
2026-04-22 17:18:32 +01:00
Peter Steinberger
fd93b7f2ab
perf(test): avoid bundled setup in auto-enable tests
2026-04-22 17:13:42 +01:00
Devin Robison
dd46783c34
fix(pairing): clear stale requests on device removal ( #70239 )
...
* fix(pairing): clear stale requests on device removal
* docs(changelog): note pairing stale request cleanup
2026-04-22 10:05:05 -06:00
Ayaan Zaidi
81e0022b4d
refactor(gateway): unify startup task execution
2026-04-22 21:31:19 +05:30
Jason Perlow
53ad1a6066
fix(gateway): allow silent metadata-upgrade pairing for loopback CLI clients ( #70224 )
...
Loopback CLI clients (cli_container_local, shared_secret_loopback_local)
with valid shared-secret auth previously got disconnected with 1008
pairing required whenever the paired device record's platform or
deviceFamily string differed from what the CLI claimed at connect time.
PR #69431 added the shared_secret_loopback_local locality but deferred
the metadata-upgrade reason from the auto-approval allowlist. That
deferral created an unrecoverable handshake loop in practice: every CLI
connect triggers a fresh metadata-upgrade request, the Control UI has
no approval surface for this reason, and non-interactive shells cannot
complete pairing. This broke every non-interactive openclaw agent use
case when paired device keys are replicated across hosts or installs
are migrated across platforms.
Extend shouldAllowSilentLocalPairing to auto-approve metadata-upgrade
for cli_container_local and shared_secret_loopback_local localities
only. Browser / Control-UI / remote paths retain existing approval-
required behavior. Gateway still logs every metadata refresh via the
existing security audit line for operator review.
Add 4 unit tests covering the decision table for metadata-upgrade
across all four localities.
Related: #69397 , #69431
2026-04-22 09:58:53 -06:00
Ayaan Zaidi
25e01c182c
docs(changelog): note restart sentinel atomic writes
2026-04-22 20:44:10 +05:30
Ayaan Zaidi
d497de7697
fix(gateway): write restart sentinels atomically
2026-04-22 20:44:10 +05:30
Peter Steinberger
fb70d3ac67
ci: refresh ci concurrency group
2026-04-22 15:53:37 +01:00
Peter Steinberger
ed97cc7210
ci: skip aggregate fan-in after cancellation
2026-04-22 15:52:25 +01:00
Ayaan Zaidi
6f25befc4f
docs(changelog): thank cron contributors
2026-04-22 20:18:15 +05:30
Ayaan Zaidi
7085687a16
docs(changelog): correct cron contributors
2026-04-22 20:16:53 +05:30
Ayaan Zaidi
34b0aac3b5
docs(changelog): fix cron attribution
2026-04-22 20:15:04 +05:30
Peter Steinberger
c73f7d6596
ci: move lightweight automation off blacksmith
2026-04-22 15:44:34 +01:00
VACInc
962b25b4a6
fix: preserve restart continuations after reboot ( #63406 ) (thanks @VACInc)
...
* gateway: add restart continuation sentinel
* gateway: address restart continuation review
* gateway: handle restart continuation edge cases
* gateway: keep restart continuations on threaded delivery path
* fix(gateway): harden restart continuation routing
* test(gateway): cover restart continuation edge cases
* docs(agent): clarify restart continuation usage
* fix: preserve restart continuations after reboot (#63406 ) (thanks @VACInc)
---------
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-22 20:09:07 +05:30