Commit Graph

43293 Commits

Author SHA1 Message Date
Omar Shahine
1f70394e7b fix(imessage): match WhatsApp's per-group systemPrompt resolution semantic
Earlier draft used a simple normalize-and-fall-through resolver: any
empty/whitespace per-chat_id systemPrompt fell through to the
groups['*'] wildcard. That doesn't match the WhatsApp resolver
(extensions/whatsapp/src/system-prompt.ts), where defining the
systemPrompt key on the specific group (even as '') means 'this group
has no prompt' and suppresses the wildcard.

Make iMessage resolution byte-identical:
- specific != null && specific.systemPrompt != null -> use the trimmed
  specific (empty trim -> undefined, wildcard suppressed).
- otherwise -> trimmed wildcard.

Add the resolver as a small exported helper resolveIMessageGroupSystemPrompt
so the unit tests cover it directly. Update the per-group systemPrompt
doc section in docs/channels/imessage.md to copy WhatsApp's resolution
hierarchy language and add an explicit-suppression example.

Refs #78285.
2026-05-09 01:02:12 +00:00
Omar Shahine
b188d292bc feat(imessage): per-group systemPrompt (parity with other channels)
channels.imessage.groups.<chat_id|*>.systemPrompt is now resolved at
inbound time and forwarded as ctxPayload.GroupSystemPrompt for group
messages, matching the established pattern in Discord, Telegram, IRC,
Slack, GoogleChat, and the retired BlueBubbles channel.

- Add 'systemPrompt?: string' to the channels.imessage.groups[*] entry
  schema (types.imessage.ts + zod parser).
- Capture groupListPolicy.groupConfig.systemPrompt at decision build
  time, falling back to the groups['*'] wildcard when the per-chat_id
  entry has no explicit prompt. DM decisions never carry the prompt.
- Wire decision.groupSystemPrompt through to ctxPayload.GroupSystemPrompt
  in buildIMessageInboundContext, gated on decision.isGroup.

Closes #78285.
2026-05-09 01:02:12 +00:00
Peter Steinberger
89a435b1e8 test: tighten sandbox media absence assertions 2026-05-09 02:00:34 +01:00
Peter Steinberger
a0dfd83878 test: tighten onboard auth absence assertions 2026-05-09 01:59:19 +01:00
Peter Steinberger
9d4c4a7f15 test: tighten plugin absence assertions 2026-05-09 01:57:58 +01:00
Peter Steinberger
18b3581ac9 test: tighten session store queued error assertions 2026-05-09 01:55:03 +01:00
Peter Steinberger
a0b970f849 test: tighten trajectory export existing dir assertion 2026-05-09 01:53:45 +01:00
Peter Steinberger
7fa75bd6ce test: tighten npm managed root malformed manifest assertion 2026-05-09 01:52:11 +01:00
Peter Steinberger
0abb3c17fb test: tighten model config default write assertion 2026-05-09 01:50:42 +01:00
Peter Steinberger
b28e29c4f3 test: tighten browser cdp transport failure assertions 2026-05-09 01:49:26 +01:00
Peter Steinberger
c0e6475a25 test: tighten tsdown cleanup absence assertions 2026-05-09 01:47:19 +01:00
Peter Steinberger
f5e053e485 test: tighten openshell boundary assertions 2026-05-09 01:46:12 +01:00
Peter Steinberger
387846f1c7 test: tighten browser proxy file absence assertion 2026-05-09 01:44:15 +01:00
Peter Steinberger
bf273c451a test: tighten inworld tts failure assertion 2026-05-09 01:42:51 +01:00
Solomon Neas
b81414be45 fix: expose safe restart deferral bypass (#78658)
Expose the existing safe-restart skipDeferral escape hatch through gateway RPC and the daemon CLI, document the flag, and add restart/CLI regression coverage.

Also keep CLI failure output off the cold bootstrap graph and align CLI guidance expectations needed by current CI.

Co-authored-by: Solomon Neas <solomonneas@users.noreply.github.com>
2026-05-08 20:42:36 -04:00
Peter Steinberger
612e72ebbd test: tighten mattermost retry failure assertions 2026-05-09 01:41:35 +01:00
Peter Steinberger
15d33cba9c test: tighten discord proxy abort assertions 2026-05-09 01:40:15 +01:00
Peter Steinberger
9cb204bdc2 test: tighten googlechat auth redaction assertion 2026-05-09 01:38:46 +01:00
Peter Steinberger
f0b0988b04 test: assert stale cron render output 2026-05-09 01:37:33 +01:00
Peter Steinberger
b584cadd9d test: tighten imessage coalesce guard assertion 2026-05-09 01:36:18 +01:00
Peter Steinberger
c940c69edf test: tighten malformed include path assertion 2026-05-09 01:35:04 +01:00
Peter Steinberger
0ffd38564f test: tighten cli runner process cleanup assertion 2026-05-09 01:33:47 +01:00
Peter Steinberger
7674df0eb8 test: tighten nostr negative key assertions 2026-05-09 01:31:40 +01:00
Shakker
1751694b0e test: align command guidance assertions 2026-05-09 01:30:27 +01:00
Peter Steinberger
7e503bdbbb test: tighten ci changed scope injection assertion 2026-05-09 01:29:03 +01:00
Peter Steinberger
f9814cc7de test: tighten sdk alias missing-subpath assertion 2026-05-09 01:27:24 +01:00
Peter Steinberger
65b490c7cd test: tighten whatsapp channel guard assertion 2026-05-09 01:26:06 +01:00
Peter Steinberger
9883c31029 test: tighten agent defaults schema rejections 2026-05-09 01:24:43 +01:00
Peter Steinberger
4e3de3574f test: tighten proxy schema rejection 2026-05-09 01:22:45 +01:00
Peter Steinberger
f1c2baf5f7 test: tighten markdown table schema rejection 2026-05-09 01:21:24 +01:00
Peter Steinberger
92ffb4a86c test: tighten typing mode schema rejection 2026-05-09 01:20:18 +01:00
Shakker
ed11b64cbf test: remove active memory hard deadline timer 2026-05-09 01:19:29 +01:00
Peter Steinberger
fad580ff18 test: tighten cli parser error assertions 2026-05-09 01:18:56 +01:00
Shakker
41cf024776 test: clear acp abort timeout guard 2026-05-09 01:18:16 +01:00
Peter Steinberger
e3cc2c41ec test: replace native bridge throw-only assertions 2026-05-09 01:17:29 +01:00
Shakker
f5200eb466 test: clear acp delivery timeout guard 2026-05-09 01:17:15 +01:00
Shakker
2f415618b3 test: clear openai ws fallback timeout 2026-05-09 01:16:12 +01:00
Peter Steinberger
553d17618a test: tighten cli transcript session file assertion 2026-05-09 01:15:59 +01:00
Shakker
e2b2ebd86a test: clear fetch guard timeout sentinel 2026-05-09 01:14:34 +01:00
Peter Steinberger
917684dee8 test: simplify gateway live profile parsing 2026-05-09 01:14:13 +01:00
Shakker
b945680f7e test: clear feishu drive cleanup timers 2026-05-09 01:12:43 +01:00
Shakker
d857b83d5a test: clear feishu outbound cleanup timer 2026-05-09 01:11:48 +01:00
Vincent Koc
858a4471bd fix(cli): clarify operator command errors 2026-05-09 08:11:34 +08:00
Shakker
b2645c7354 test: clear feishu comment handler timer 2026-05-09 01:11:00 +01:00
Peter Steinberger
91eecba6e5 test: simplify openai live model parsing 2026-05-09 01:10:38 +01:00
Shakker
7e6771a6b0 test: clear feishu comment dispatcher timer 2026-05-09 01:09:54 +01:00
Peter Steinberger
7e733bedab test: simplify copilot live text extraction 2026-05-09 01:09:27 +01:00
Vincent Koc
05414e2ac3 fix(cli): explain plugin and secrets failures 2026-05-09 08:08:26 +08:00
Peter Steinberger
d47b64609c test: simplify xai live error messages 2026-05-09 01:08:12 +01:00
Shakker
c008c54f9e test: clear chat refresh macrotask timers 2026-05-09 01:07:27 +01:00