Peter Steinberger
efd58ce6e6
test(gateway): avoid real OpenAI in mock test
2026-01-10 03:25:45 +00:00
Peter Steinberger
02d65d015c
test(telegram): harden media tests
2026-01-10 04:18:05 +01:00
Peter Steinberger
c2fefb087d
fix(tools): keep canonical tool names for oauth
2026-01-10 04:18:00 +01:00
Peter Steinberger
3d03e7acb4
test: stabilize gateway mock + lint
2026-01-10 03:14:13 +00:00
Peter Steinberger
25ed17cc68
feat: improve tui status output
2026-01-10 04:07:15 +01:00
Peter Steinberger
896b5de93c
test(gateway): add offline tool-calling regression
2026-01-10 03:06:02 +00:00
Peter Steinberger
609f8e0900
fix(tools): harden schemas and oauth tool names
2026-01-10 03:05:56 +00:00
Peter Steinberger
234a828ec1
fix: relax fetch typing for Bun
2026-01-10 04:01:06 +01:00
Peter Steinberger
ddd346604d
fix: restore Anthropic OAuth tool dispatch
2026-01-10 04:01:00 +01:00
Peter Steinberger
d4c5aafdc1
feat: improve tui status line
2026-01-10 03:53:32 +01:00
Peter Steinberger
37a7dabdeb
test(telegram): relax media group timeouts on Windows
2026-01-10 02:32:03 +00:00
Peter Steinberger
2b2039112d
test(live): probe Read tool via gateway
2026-01-10 02:25:24 +00:00
Peter Steinberger
b8090afda0
fix(auto-reply): default audioAsVoice to false
2026-01-10 02:25:19 +00:00
Peter Steinberger
e09e44266a
fix(msteams): download image attachments reliably
2026-01-10 02:25:14 +00:00
Peter Steinberger
d25b4de7d4
style: fix biome formatting
2026-01-10 02:11:43 +00:00
Peter Steinberger
6c6f38ebb0
feat: show effective config in /debug
2026-01-10 03:10:14 +01:00
Peter Steinberger
dcc6dc4792
docs: add /config get alias
2026-01-10 03:10:14 +01:00
Peter Steinberger
4f56ed368e
feat: auto-start sandbox browser
2026-01-10 02:06:21 +00:00
Peter Steinberger
83f111839c
feat: add /config chat config updates
2026-01-10 03:01:27 +01:00
Peter Steinberger
be51d30a49
feat(cli): colorize gateway health + daemon output
2026-01-10 03:01:27 +01:00
Peter Steinberger
a5cb1a71b1
refactor: unify inline directives and media fetch
2026-01-10 03:01:04 +01:00
Peter Steinberger
97afcc1c2c
refactor: consolidate reply/media helpers
2026-01-10 02:41:16 +01:00
Peter Steinberger
579598a1ee
refactor: centralize WhatsApp target normalization
2026-01-10 02:39:52 +01:00
Peter Steinberger
04be6b7cf1
test(telegram): relax media group test timeouts
2026-01-10 02:37:59 +01:00
Peter Steinberger
0be43feb12
Merge pull request #631 from imfing/fix-normalize
...
fix(whatsapp): normalize targets for groups and E.164
2026-01-10 01:27:33 +00:00
Peter Steinberger
7ddb8375fb
fix: hide tui reasoning label when off
2026-01-10 01:25:15 +00:00
Peter Steinberger
d5755c9687
fix: signal own reactions match uuid + phone ( #632 ) (thanks @neist)
...
Co-authored-by: neist <1029724+neist@users.noreply.github.com>
2026-01-10 02:24:57 +01:00
Xin
97a216b77a
fix: normalize WhatsApp targets for groups and E.164 ( #631 ) (thanks @imfing)
2026-01-10 02:22:13 +01:00
Peter Steinberger
43ca0e19b3
fix: remove ack reactions after reply ( #633 ) (thanks @levifig)
2026-01-10 02:14:14 +01:00
Levi Figueira
d4b6af8d71
feat: add removeAckAfterReply option for Discord, Slack, and Telegram
...
Add `messages.removeAckAfterReply` config option to automatically remove
acknowledgment reactions after the bot sends a reply, reducing visual
clutter while still providing immediate feedback.
Platforms: Discord, Slack, Telegram
Implementation:
- Added removeAckAfterReply boolean field to MessagesConfig (default: false)
- Track ack reaction state in all three platform handlers
- Remove ack reaction after successful reply delivery
- Graceful error handling with verbose logging
Platform-specific:
- Discord: uses removeReactionDiscord()
- Slack: uses removeSlackReaction()
- Telegram: uses setMessageReaction() with empty array
Closes #627
2026-01-10 02:13:46 +01:00
Peter Steinberger
59007a144b
test(live): gateway smoke across profile-key models
2026-01-10 01:09:41 +00:00
Peter Steinberger
959daf24c4
refactor: centralize session agent resolution
2026-01-10 01:57:54 +01:00
Peter Steinberger
f142bc229c
Merge pull request #490 from jarvis-medmatic/feat/audio-as-voice-tag
...
feat(telegram): `[[audio_as_voice]]` tag support
2026-01-10 00:52:02 +00:00
Peter Steinberger
eb20a7a476
fix: honor audio_as_voice streaming + parse tests ( #490 ) (thanks @jarvis-medmatic)
2026-01-10 01:50:33 +01:00
Peter Steinberger
4fb4184cea
fix(openai): avoid invalid reasoning replay
2026-01-10 00:45:10 +00:00
Jarvis
6899918bfa
chore: format audioAsVoice updates
...
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com>
2026-01-10 01:44:57 +01:00
Jarvis
f954db76fa
fix(pi): preserve audio_as_voice tag
...
- Allow flag-only chunks so audio_as_voice propagates
- Keep reply item scan aware of empty audio tag blocks
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com>
2026-01-10 01:43:51 +01:00
Jarvis
e037a86921
refactor(telegram): centralize voice decisions
...
- Share voice compatibility decision logic across send + bot flows
- Keep voice fallback logging consistent
- Simplify voice handling in the audio send path
2026-01-10 01:43:23 +01:00
Jarvis
b6171c881c
fix(telegram): guard voice note sends
2026-01-10 01:43:01 +01:00
Jarvis
972e18996b
fix(audio): preserve audioAsVoice propagation
...
- Keep audioAsVoice-only payloads from being filtered out
- Allow empty payloads through when they carry the flag
- Remove temporary debug logs around audioAsVoice buffering
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com>
2026-01-10 01:42:09 +01:00
Jarvis
4341a6870e
feat(telegram): buffer audio blocks for [[audio_as_voice]] tag support
...
- Add [[audio_as_voice]] detection to splitMediaFromOutput()
- Pass audioAsVoice through onBlockReply callback chain
- Buffer audio blocks during streaming, flush at end with correct flag
- Non-audio media still streams immediately
- Fix: emit payloads with audioAsVoice flag even if text is empty
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com>
2026-01-10 01:41:18 +01:00
Peter Steinberger
0fee5b5aed
fix: gate heartbeat prompt to default agent sessions ( #630 ) (thanks @adam91holt)
2026-01-10 01:32:58 +01:00
Adam Holt
829fe0630d
fix: only inject heartbeat prompt for default agent
...
The heartbeat prompt from agents.defaults.heartbeat.prompt was being
injected into the system prompt for ALL agents, causing non-default
agents to read the default agent's identity files and adopt its persona.
Now the heartbeat prompt is only included when the session's agent ID
matches the configured default agent. Other agents receive no heartbeat
section in their system prompt.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 01:32:30 +01:00
Peter Steinberger
27838f6865
fix: abort runs between tool calls
2026-01-10 01:26:25 +01:00
Peter Steinberger
af7b8542af
refactor: centralize failover error parsing
2026-01-10 01:26:06 +01:00
Peter Steinberger
52ab884fe7
fix(web): show all WhatsApp shared contacts
2026-01-10 00:22:31 +00:00
Peter Steinberger
8ec51b6291
fix(agents): require raw for gateway config.apply ( #566 ) (thanks @sircrumpet)
2026-01-10 00:21:15 +00:00
Peter Steinberger
0c132f1103
Merge pull request #619 from rubyrunsstuff/fix/telegram-block-streaming
...
fix: enable block streaming for Telegram when streamMode is 'block'
2026-01-10 00:16:04 +00:00
Peter Steinberger
c468f539c3
fix: keep telegram streamMode draft-only ( #619 ) (thanks @rubyrunsstuff)
2026-01-10 01:14:40 +01:00
Peter Steinberger
498f5bb040
Merge pull request #544 from jeffersonwarrior/fix/cloud-code-assist-api-errors
...
Fix Cloud Code Assist API errors (429/400)
2026-01-10 00:13:46 +00:00