Commit graph

2842 commits

Author SHA1 Message Date
Vyctor Huggo Przozwski da Silva
97e2f5b332
fix(auto-reply): honor direct silent empty replies
* fix(auto-reply): allow direct silent empty replies

* fix(auto-reply): guard direct silent empty replies
2026-04-29 20:02:38 +01:00
Hemant Sudarshan
eb7d89f4b9
fix(status): honor channel model context windows 2026-04-29 19:58:21 +01:00
Peter Steinberger
a16f7fb6cd test(models): update auth profile mock 2026-04-29 18:05:34 +01:00
Peter Steinberger
8a06db084d fix(models): hide unauthenticated catalog entries 2026-04-29 18:05:34 +01:00
Devin Robison
c1a42dce86
fix: enforce focus subagent scope (#73613)
* fix: enforce focus subagent scope

* docs: add changelog for focus scope fix
2026-04-29 09:54:09 -06:00
bitloi
dce2513db2
fix(agents): preserve CLI wake-up session metadata (#74171)
* Fix CLI wake-up resume metadata

* Rerun CI

* ci: re-trigger parity gate
2026-04-29 07:14:48 -04:00
Deepak Jain
0c9f84451a
feat(config): add reasoningDefault to agents.defaults
Add reasoningDefault support under agents.defaults and preserve the existing per-agent/session/inline override order.

Includes authorization gating for configured reasoning state, /status coverage, config schema/docs baseline updates, and regression tests for the reply and status paths. Also carries the related cron startup-run preservation fix and CI test stabilization needed for this PR branch.

Validated locally with pnpm check:changed, the focused Vitest bundle for touched gateway/cron/auto-reply/plugin-sdk/tooling tests, pnpm config:docs:check, and git diff --check. GitHub checks are green on the merged head; Greptile latest visible review is 4/5 with no P0/P1 findings.
2026-04-29 05:47:18 -05:00
Peter Steinberger
7be65cd798
test: cover session-scoped model overrides (#74265) 2026-04-29 11:46:53 +01:00
Peter Steinberger
93d5cd1015
fix: honor configured xhigh thinking compat (#74273)
* fix: honor configured xhigh thinking compat

* test: update agent command model selection mock
2026-04-29 11:35:03 +01:00
Peter Steinberger
20ed597495
fix: restore verbose command and ACP cleanup controls 2026-04-29 11:20:11 +01:00
Peter Steinberger
e1fd27fb24
feat(messages): add global visible replies mode 2026-04-29 11:06:39 +01:00
Vincent Koc
1b25dcf57a
docs(types): mark legacy hook surfaces deprecated 2026-04-28 23:31:32 -07:00
Vincent Koc
4eba70b532
docs(types): mark legacy aliases deprecated 2026-04-28 23:10:10 -07:00
Peter Steinberger
548c280eff
fix(discord): keep exec approval fallbacks reachable 2026-04-29 06:29:44 +01:00
Peter Steinberger
ab39f2b272
[codex] Bias group chat prompts toward subagent delegation (#74046)
Bias group-chat prompt composition toward using subagents for tool-heavy work, keeping maintainer-channel responsiveness higher.\n\nValidated locally with focused prompt/auto-reply tests before opening the PR.
2026-04-29 05:16:21 +01:00
Peter Steinberger
e5dc0e6d15
fix: expose agent runtime status metadata 2026-04-29 05:02:04 +01:00
Peter Steinberger
e27fe55aa8
refactor: simplify plugin cache boundaries 2026-04-29 04:33:15 +01:00
pashpashpash
4aa8da3756
Route sensitive group commands to the owner privately (#73872)
* fix(commands): route sensitive group approvals privately

* fix(commands): require owner private routes

* test(commands): cover owner-derived Telegram diagnostics routing
2026-04-29 09:27:18 +09:00
pashpashpash
6ce1058296
Wire diagnostics through the core chat command (#72936)
* feat: wire codex diagnostics feedback

* fix: harden codex diagnostics hints

* fix: neutralize codex diagnostics output

* fix: tighten codex diagnostics safeguards

* fix: bound codex diagnostics feedback output

* fix: tighten codex diagnostics throttling

* fix: confirm codex diagnostics uploads

* docs: clarify codex diagnostics add-on

* fix: route diagnostics through core command

* fix: tighten diagnostics authorization

* fix: pin diagnostics to bundled codex command

* fix: limit owner status in plugin commands

* fix: scope diagnostics confirmations

* fix: scope codex diagnostics cooldowns

* fix: harden codex diagnostics ownership scopes

* fix: harden diagnostics command trust and display

* fix: keep diagnostics command trust internal

* fix: clarify diagnostics exec boundary

* fix: consume codex diagnostics confirmations atomically

* test: include codex diagnostics binding metadata

* test: use string codex binding timestamps

* fix: keep reserved command trust host-only

* fix: harden diagnostics trust and resume hints

* wire diagnostics through exec approval

* fix: keep diagnostics tests aligned with bundled root trust

* fix telegram diagnostics owner auth

* route trajectory exports through exec approval

* fix trajectory exec command encoding

* fix telegram group owner auth

* fix export trajectory approval hardening

* fix pairing command owner bootstrap

* fix telegram owner exec approvals

* fix: make diagnostics approval flow pasteable

* fix: route native sensitive command followups

* fix: invoke diagnostics exports with current cli

* fix: refresh exec approval protocol models

* fix: list codex diagnostics from thread bindings

* fix: fold codex diagnostics into exec approval

* fix: preserve diagnostics approval line breaks

* docs: clarify diagnostics codex workflow
2026-04-29 07:40:37 +09:00
Peter Steinberger
f4a9d34f98
fix(model): explain rejected session overrides 2026-04-28 23:33:24 +01:00
Peter Steinberger
1184925572
fix(ci): speed up release validation live probes 2026-04-28 23:03:57 +01:00
Peter Steinberger
7ee85a1dd6 fix: align bootstrap landing check (#73235) (thanks @zqchris) 2026-04-28 21:06:49 +01:00
Peter Steinberger
7cefdd956a fix: unblock landing checks (#73235) (thanks @zqchris) 2026-04-28 21:06:49 +01:00
Peter Steinberger
c1c217035d
test: align bare reset bootstrap expectation 2026-04-28 20:56:04 +01:00
Peter Steinberger
c500e8704f
fix(gateway): recover stale session lanes 2026-04-28 20:37:29 +01:00
Peter Steinberger
c5c08c074a
fix(agents): mark inter-session prompts 2026-04-28 20:34:54 +01:00
Peter Steinberger
065284deab
fix(auto-reply): pass model catalog to think menus 2026-04-28 19:37:10 +01:00
Neerav Makwana
3de5476f51
fix(auto-reply): preserve DM continuity across silent session rotations (#70898)
Merged via squash.

Prepared head SHA: 13bd2cef86
Co-authored-by: neeravmakwana <261249544+neeravmakwana@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-28 10:01:15 -07:00
Ayaan Zaidi
8af50b5b4c fix(commands): preserve owner allowlists for native auth 2026-04-28 22:11:27 +05:30
Ayaan Zaidi
195f704c74 fix(reply): keep native command replies visible 2026-04-28 22:11:27 +05:30
Ayaan Zaidi
7b91f06384 fix(commands): honor channel-native command auth 2026-04-28 22:11:27 +05:30
Alex Knight
e4ff7c1620
fix: Discord read/search timeout, session-key fallback, and gateway execution mode (#73521)
* fix: Discord read/search timeout, session-key fallback, and gateway execution mode

- Add 15s timeout to readMessagesDiscord and searchMessagesDiscord so they
  fail fast instead of hanging indefinitely (#73431)
- Fall back to CommandTargetSessionKey in dispatchReplyFromConfig when
  SessionKey is empty, so Discord inbound message:received hooks fire
  reliably (#73431, refs #33038)
- Add resolveExecutionMode to Discord channel actions routing read/search
  through gateway timeout path, matching Telegram's pattern (#73431)

* fix: move timeout to fetch layer, drop send.messages wrapper

Inject AbortSignal.timeout into the Discord proxy-request-client fetch
wrapper so every Discord REST call gets a 15s timeout at the HTTP level.
This replaces the Promise.race wrapper in send.messages.ts — cleaner,
covers all calls, and actually aborts the TCP connection.

* fix: remove unused callerController variable in proxy-request-client test

* fix: remove unnecessary mergeAbortSignal helper
2026-04-28 21:46:05 +10:00
Peter Steinberger
c5cd7aabcf
fix(auto-reply): bound pending tool result drain 2026-04-28 10:46:06 +01:00
Vincent Koc
210cccb0fe
fix(tasks): index async media tasks by agent 2026-04-28 02:43:17 -07:00
Peter Steinberger
1f1b98e33b
fix(auto-reply): keep consumed reset triggers out of prompt 2026-04-28 10:24:04 +01:00
Peter Steinberger
249cb54373
fix: keep acp typing for tool-only replies 2026-04-28 09:58:18 +01:00
Vincent Koc
7fd9c152d1
fix(memory): keep pre-compaction flush prompt out of user transcript (#73380) 2026-04-28 01:58:14 -07:00
Peter Steinberger
2790825ae5
test(auto-reply): assert bare reset acknowledgement 2026-04-28 09:56:41 +01:00
Peter Steinberger
28bf71d74b
fix(auto-reply): preserve silent voice payloads 2026-04-28 09:41:04 +01:00
Peter Steinberger
3ee5490c60
fix(auto-reply): avoid duplicate reset hook acknowledgements 2026-04-28 09:37:15 +01:00
Peter Steinberger
a68ca1ae0b
fix(auto-reply): acknowledge bare reset commands 2026-04-28 09:31:14 +01:00
Peter Steinberger
db40ec404a
fix: honor Ollama thinking catalog metadata 2026-04-28 09:15:28 +01:00
Peter Steinberger
67b16a4a6d
fix: centralize source reply delivery mode 2026-04-28 09:14:19 +01:00
Vincent Koc
0b82a7e718
test(ci): align main test expectations 2026-04-28 00:35:44 -07:00
Peter Steinberger
bb7e8624ab
fix: keep typing for group message-tool replies 2026-04-28 08:27:23 +01:00
scoootscooob
3c636208b0
fix(messages): keep group replies tool-only by default
Rewrites the always-on reply handling so group/channel rooms default to message-tool-visible output, while `messages.groupChat.visibleReplies: \"automatic\"` preserves legacy auto-posting.\n\nThanks @scoootscooob.
2026-04-28 07:36:43 +01:00
Peter Steinberger
bb97f19396
fix(telegram): preserve streamed generated media 2026-04-28 06:19:41 +01:00
samzong
25ef9c0c41
[Feat] Gateway: offload non-image attachments on chat.send (#67572)
Merged via squash.

Prepared head SHA: ecbd27fc30
Co-authored-by: samzong <13782141+samzong@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-04-28 12:55:00 +08:00
Peter Steinberger
540cbe24be
fix: allow memory flush model override 2026-04-28 05:50:55 +01:00
Brian Newman
055127425f
fix(export): fix broken template placeholders in session export HTML (#41861)
* fix(export): fix broken template placeholders in session export HTML

The {{MARKED_JS}}, {{HIGHLIGHT_JS}}, and {{JS}} placeholders in the
export HTML template were split across multiple lines by a code
formatter, turning them into JS block statements instead of template
tokens. The generateHtml() function uses .replace('{{MARKED_JS}}', ...)
which requires contiguous strings, so the vendor JS and app code were
never injected — producing a 2MB HTML file that opens with styles and
session data but renders blank (no JS to parse/display the data).

Fix: collapse placeholders to single-line {{TOKEN}} format and add
prettier-ignore comments to prevent re-formatting.

Introduced in 9d403fd.

* fix(export): use function replacers for vendor JS injection

String.replace() interprets $ sequences ($&, $$, $', etc.) in
replacement strings. The minified vendor libraries (highlight.min.js,
marked.min.js) and the template JS contain literal $ characters that
get mutated during injection — e.g. $& becomes the matched placeholder
text, $$ becomes a single $.

Fix: use arrow function replacers for JS content so replacement text
is injected verbatim without $ interpretation. CSS and session data
use string replacers since they don't contain problematic $ patterns.

Flagged by Codex review (P2).

* ci: retrigger checks

* fix(export-session): restore inline export scripts

---------

Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
2026-04-27 21:34:20 -07:00