Commit Graph

5496 Commits

Author SHA1 Message Date
eric-fr4
ad826ea450 Fix WhatsApp media sends when mediaUrl is empty but mediaUrls is populated (#64394)
* Fix WhatsApp media fallback

Accept the first mediaUrls entry when mediaUrl is empty so outbound WhatsApp sends do not silently downgrade media messages to text.

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

* chore(changelog): credit WhatsApp mediaUrls fallback

* fix(changelog): restore 2026.4.10 release block

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-12 16:58:40 +01:00
Edder Talmor
5f92094d51 fix: gracefully handle missing QA scenario pack in npm distributions (closes #65082) (#65118)
* fix: allow built-in chat commands to bypass plugins.allow check (closes #65083)

The 'commands' CLI command is a built-in chat command registered in the
chat commands registry, not a plugin-backed command. When plugins.allow
is configured, the error message incorrectly suggests adding 'commands'
to plugins.allow, which produces a second error because no 'commands'
plugin exists.

Check if the command has a plugin entry or manifest alias before
suggesting plugins.allow. Built-in commands without plugin entries
now proceed normally instead of showing misleading errors.

* fix: gracefully handle missing QA scenario pack in npm distributions (closes #65082)

The completion cache update fails with a fatal error when the
qa/scenarios/index.md file is not present in the installed npm package,
even though the directory is listed in package.json "files".

Instead of throwing an error, return an empty QA scenario pack with
default agent identity. This allows completion cache updates to succeed
while QA scenarios remain unavailable in the npm distribution.

The QA scenario pack is primarily used for internal testing and QA
automation — it is not critical for end-user functionality.

* revert: remove unintended run-main.ts changes from PR #65118

The scenario-catalog.ts fix is the correct change for this PR.
The run-main.ts changes were accidentally included and cause a
regression in plugins.allow error handling.

* fix(qa): tolerate missing packaged scenario config

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-12 16:50:58 +01:00
Yanhu
3ef8f0edd8 fix(dreaming): include timezone label in diary timestamps (#65057)
Dream diary entries in DREAMS.md and the Control UI show bare
timestamps without any timezone indicator. When users have not
configured a timezone, timestamps are rendered in UTC but appear to be
local time, causing confusion.

Add timeZoneName: "short" to the Intl.DateTimeFormat options in
formatNarrativeDate so timestamps always include a timezone
abbreviation (e.g. "9:46 PM UTC" or "2:46 PM PDT").

Fixes #65027
2026-04-12 16:48:40 +01:00
neo1027144
7d9e349129 [AI-assisted] fix(dreaming): use host local timezone for diary timestamps (#65034)
* fix(dreaming): use host local timezone when timezone is not configured

When `memory.dreaming.timezone` is unset, `formatNarrativeDate()`
previously defaulted to UTC, causing diary timestamps in DREAMS.md and
the Control UI to display UTC time as though it were the user's local
time. For example, a PDT user seeing 9:46 PM instead of the correct
2:46 PM.

Drop the UTC fallback so `Intl.DateTimeFormat` automatically uses the
host's timezone when no explicit timezone is provided. Users who have
set `agents.defaults.userTimezone` or `dreaming.timezone` are
unaffected.

Fixes #65027

* docs(changelog): add dreaming timezone entry

* Update CHANGELOG.md

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-12 16:38:18 +01:00
Daniel Alkurdi
b8c95e5825 fix(memory-core): wake managed dreaming jobs immediately (#65053)
* fix(memory-core): wake managed dreaming jobs immediately

* docs(changelog): add dreaming wake entry

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-12 16:37:21 +01:00
Peter Steinberger
659bcc5e5b fix: tighten codex app-server lifecycle 2026-04-12 16:15:01 +01:00
Peter Steinberger
23e50859eb test(e2e): align release harness coverage 2026-04-12 16:08:12 +01:00
Mason Huang
48bcb89a47 tests(contracts): use contract-api for Slack and Discord directories (#65280) 2026-04-12 18:54:58 +08:00
Vincent Koc
ccbef550e5 fix(ci): restore extension boundary guards 2026-04-12 09:50:20 +01:00
Vincent Koc
b78713a363 fix(memory-core): use sdk seams for dreaming narrative 2026-04-12 09:41:42 +01:00
Vincent Koc
1be43777e0 test(discord): import guild entry fixture type 2026-04-12 09:34:55 +01:00
Vincent Koc
0c0170b7fb test(voice-call): share websocket test helpers 2026-04-12 09:33:12 +01:00
Vincent Koc
6750bc36dd test(discord): share successful dm button assertions 2026-04-12 09:29:50 +01:00
Vincent Koc
0dcc30b39c test(zalouser): share default setup assertions 2026-04-12 09:28:20 +01:00
Vincent Koc
bde62fcf82 test(ci): fix discord and voice-call type fixtures 2026-04-12 09:26:01 +01:00
Vincent Koc
4cfebae118 test(matrix): share client startup and backfill fixtures 2026-04-12 09:24:32 +01:00
Vincent Koc
b5dfeaab4c test(codex): share run-attempt app-server harness 2026-04-12 09:21:10 +01:00
Vincent Koc
c902d20eb7 test(codex): share app-server client harness 2026-04-12 09:17:44 +01:00
Vincent Koc
b62251817e fix(msteams): restore graph media diagnostics 2026-04-12 09:17:09 +01:00
Vincent Koc
0d2fcd3bbf test(voice-call): type twilio webhook helpers 2026-04-12 09:15:50 +01:00
Vincent Koc
9e641af011 test(discord): share guild interaction auth fixtures 2026-04-12 09:11:41 +01:00
Vincent Koc
80730c53bd docs(agents): split scoped workflow guidance (#65241)
* docs(agents): add scoped workflow guides

* docs(agents): trim root guide duplication

* Update AGENTS.md

* docs(agents): restore root boundary context

* docs(agents): clarify plugin architecture direction
2026-04-12 09:09:50 +01:00
Vincent Koc
24051ddf38 test(browser): share existing-session route harness 2026-04-12 09:07:06 +01:00
Vincent Koc
e8786e0f01 test(discord): share replyTo chunk mode case 2026-04-12 08:50:00 +01:00
Vincent Koc
3949a7efc0 test(matrix): share legacy credential setup helper 2026-04-12 08:48:44 +01:00
Vincent Koc
eba501c303 test(slack): share private download redirect helper 2026-04-12 08:44:18 +01:00
Vincent Koc
52623e033f test(voice-call): share active call context helper 2026-04-12 08:41:30 +01:00
Vincent Koc
f4697f7b0d test(zalo): share webhook replay post helpers 2026-04-12 08:38:49 +01:00
Vincent Koc
e4abecd0f2 test(whatsapp): share inbox reconnect fixtures 2026-04-12 08:29:03 +01:00
Vincent Koc
6259064f93 test(voice-call): share twilio webhook fixtures 2026-04-12 08:29:03 +01:00
Tak Hoffman
847739d82c Fix dreaming replay, repair polluted artifacts, and gate wiki tabs (#65138)
* fix(active-memory): preserve parent channel context for recall runs

* fix(active-memory): keep recall runs on the resolved channel

* fix(active-memory): prefer resolved recall channel over wrapper hints

* fix(active-memory): trust explicit recall channel hints

* fix(active-memory): rank recall channel fallbacks by trust

* Fix dreaming replay and recovery flows

* fix: prevent dreaming event loss and diary write races

* chore: add changelog entry for memory fixes

* fix: harden dreaming repair and diary writes

* fix: harden dreaming artifact archive naming
2026-04-12 00:25:11 -05:00
Vincent Koc
8f0da7ef06 test(qqbot): share symlink race setup 2026-04-12 05:36:06 +01:00
Vincent Koc
cded4fc5db test(qa-lab): share mock openai response helpers 2026-04-12 05:34:58 +01:00
Vincent Koc
add2900520 test(browser): share control auth persistence checks 2026-04-12 05:33:09 +01:00
sudie-codes
2c211d171e fix(msteams): channel file attachments broken by overly-broad HTML fallback (#58617, #51749) (#64645)
* fix(msteams): gate channel attachment fallback on <attachment> tags (#58617, #51749)

* test(msteams): remove dead mock branch in graph.test.ts
2026-04-11 23:33:07 -05:00
Vincent Koc
97aa6e0815 test(voice-call): share signed telnyx request helper 2026-04-12 05:31:25 +01:00
Vincent Koc
560d56e8fd test(discord): share native command autocomplete helper 2026-04-12 05:30:20 +01:00
Vincent Koc
afc2bc00fb test(whatsapp): share cached creds spies 2026-04-12 05:28:21 +01:00
Vincent Koc
c3c13ea381 test(telegram): dedupe exec approval resolver cases 2026-04-12 05:27:10 +01:00
Neelabh Kumar
22b53a4973 fix: unblock Telegram approval callback deadlock (#64979) (thanks @nk3750)
* fix(telegram): bypass sequentializer for approval callback_queries

Approval callback_queries from clicking inline buttons get the same
sequential key as the blocked agent turn (telegram:<chatId>), causing a
deadlock: the callback can't run because the lane is held, and the lane
can't release because it's waiting for the callback.

Give approval callbacks a separate lane (telegram:<chatId>:approval),
same pattern as abort requests (telegram:<chatId>:control) and btw
requests (telegram:<chatId>:btw).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* style(telegram): trim approval lane comments

* fix: unblock Telegram approval callback deadlock (#64979) (thanks @nk3750)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-12 09:56:44 +05:30
Vincent Koc
37ddd018fb test(msteams): share reaction handler harness 2026-04-12 05:25:58 +01:00
Vincent Koc
1d1f10ecc2 test(slack): share thread message store fixtures 2026-04-12 05:24:01 +01:00
Vincent Koc
4f203abf00 test(matrix): share session route setup 2026-04-12 04:43:39 +01:00
Vincent Koc
a69bd1fde8 test(matrix): dedupe session route assertions 2026-04-12 04:41:19 +01:00
Vincent Koc
bf94513b11 test(matrix): share onboarding env shortcut helpers 2026-04-12 04:39:54 +01:00
Vincent Koc
baeca9573e test(matrix): share named account status fixtures 2026-04-12 04:36:59 +01:00
Vincent Koc
f2e1619f03 test(matrix): share onboarding update helpers 2026-04-12 04:35:31 +01:00
Vincent Koc
330b9895c1 test(matrix): share onboarding config fixtures 2026-04-12 04:33:09 +01:00
Vincent Koc
9c7c360fed test(providers): share onboard primary model checks 2026-04-12 04:30:19 +01:00
Vincent Koc
ea1d483fe6 test(extensions): share direct import smoke harness 2026-04-12 04:24:42 +01:00