1729 Commits

Author SHA1 Message Date
Vincent Koc
39b4185d0b revert: 9bffa3422c4dc13f5c72ab5d2813cc287499cc14 2026-03-14 15:09:22 -07:00
Andrew Demczuk
678ea77dcf
style(gateway): fix oxfmt formatting and remove unused test helper 2026-03-14 21:46:53 +01:00
Sally O'Malley
8db6fcca77
fix(gateway/cli): relax local backend self-pairing and harden launchd restarts (#46290)
Signed-off-by: sallyom <somalley@redhat.com>
2026-03-14 14:27:52 -04:00
Andrew Demczuk
9bffa3422c
fix(gateway): skip device pairing when auth.mode=none
Fixes #42931

When gateway.auth.mode is set to "none", authentication succeeds with
method "none" but sharedAuthOk remains false because the auth-context
only recognises token/password/trusted-proxy methods. This causes all
pairing-skip conditions to fail, so Control UI browser connections get
closed with code 1008 "pairing required" despite auth being disabled.

Short-circuit the skipPairing check: if the operator explicitly
disabled authentication, device pairing (which is itself an auth
mechanism) must also be bypassed.

Fixes #42931
2026-03-14 19:17:39 +01:00
Nimrod Gutman
9aac55d306
Add /btw side questions (#45444)
* feat(agent): add /btw side questions

* fix(agent): gate and log /btw reviews

* feat(btw): isolate side-question delivery

* test(reply): update route reply runtime mocks

* fix(btw): complete side-result delivery across clients

* fix(gateway): handle streamed btw side results

* fix(telegram): unblock btw side questions

* fix(reply): make external btw replies explicit

* fix(chat): keep btw side results ephemeral in internal history

* fix(btw): address remaining review feedback

* fix(chat): preserve btw history on mobile refresh

* fix(acp): keep btw replies out of prompt history

* refactor(btw): narrow side questions to live channels

* fix(btw): preserve channel typing indicators

* fix(btw): keep side questions isolated in chat

* fix(outbound): restore typed channel send deps

* fix(btw): avoid blocking replies on transcript persistence

* fix(btw): keep side questions fast

* docs(commands): document btw slash command

* docs(changelog): add btw side questions entry

* test(outbound): align session transcript mocks
2026-03-14 17:27:54 +02:00
scoootscooob
439c21e078
refactor: remove channel shim directories, point all imports to extensions (#45967)
* refactor: remove channel shim directories, point all imports to extensions

Delete the 6 backward-compat shim directories (src/telegram, src/discord,
src/slack, src/signal, src/imessage, src/web) that were re-exporting from
extensions. Update all 112+ source files to import directly from
extensions/{channel}/src/ instead of through the shims.

Also:
- Move src/channels/telegram/ (allow-from, api) to extensions/telegram/src/
- Fix outbound adapters to use resolveOutboundSendDep (fixes 5 pre-existing TS errors)
- Update cross-extension imports (src/web/media.js → extensions/whatsapp/src/media.js)
- Update vitest, tsdown, knip, labeler, and script configs for new paths
- Update guard test allowlists for extension paths

After this, src/ has zero channel-specific implementation code — only the
generic plugin framework remains.

* fix: update raw-fetch guard allowlist line numbers after shim removal

* refactor: document direct extension channel imports

* test: mock transcript module in delivery helpers
2026-03-14 03:43:07 -07:00
scoootscooob
7764f717e9
refactor: make OutboundSendDeps dynamic with channel-ID keys (#45517)
* refactor: make OutboundSendDeps dynamic with channel-ID keys

Replace hardcoded per-channel send fields (sendTelegram, sendDiscord,
etc.) with a dynamic index-signature type keyed by channel ID. This
unblocks moving channel implementations to extensions without breaking
the outbound dispatch contract.

- OutboundSendDeps and CliDeps are now { [channelId: string]: unknown }
- Each outbound adapter resolves its send fn via bracket access with cast
- Lazy-loading preserved via createLazySender with module cache
- Delete 6 deps-send-*.runtime.ts one-liner re-export files
- Harden guardrail scan against deleted-but-tracked files


* fix: preserve outbound send-deps compatibility

* style: fix formatting issues (import order, extra bracket, trailing whitespace)



* fix: resolve type errors from dynamic OutboundSendDeps in tests and extension

* fix: remove unused OutboundSendDeps import from deliver.test-helpers
2026-03-14 02:42:21 -07:00
kkhomej33-netizen
e7d9648fba
feat(cron): support custom session IDs and auto-bind to current session (#16511)
feat(cron): support persistent session targets for cron jobs (#9765)

Add support for `sessionTarget: "current"` and `session:<id>` so cron jobs can
bind to the creating session or a persistent named session instead of only
`main` or ephemeral `isolated` sessions.

Also:
- preserve custom session targets across reloads and restarts
- update gateway validation and normalization for the new target forms
- add cron coverage for current/custom session targets and fallback behavior
- fix merged CI regressions in Discord and diffs tests
- add a changelog entry for the new cron session behavior

Co-authored-by: kkhomej33-netizen <kkhomej33-netizen@users.noreply.github.com>
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
2026-03-14 16:48:46 +11:00
Tak Hoffman
5fc43ff0ec
fix(gateway): bound unanswered client requests (#45689)
* fix(gateway): bound unanswered client requests

* fix(gateway): skip default timeout for expectFinal requests

* fix(gateway): preserve gateway call timeouts

* fix(gateway): localize request timeout policy

* fix(gateway): clamp explicit request timeouts

* fix(gateway): clamp default request timeout
2026-03-14 00:12:43 -05:00
2233admin
5c73ed62d5
fix(sessions): create transcript file on chat.inject when missing (#36645)
`chat.inject` called `appendAssistantTranscriptMessage` with
`createIfMissing: false`, causing a hard error when the transcript
file did not exist on disk despite having a valid `transcriptPath`
in session metadata. This commonly happens with ACP oneshot/run
sessions where the session entry is created but the transcript file
is not yet materialized.

The fix is a one-character change: `createIfMissing: true`. The
`ensureTranscriptFile` helper already handles directory creation
and file initialization safely.

Fixes #36170

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 03:00:24 +01:00
Sally O'Malley
e5fe818a74
fix(gateway/ui): restore control-ui auth bypass and classify connect failures (#45512)
Merged via squash.

Prepared head SHA: 42b5595edec71897b479b3bbaa94bcb4ac6fab17
Co-authored-by: sallyom <11166065+sallyom@users.noreply.github.com>
Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>
Reviewed-by: @BunsDev
2026-03-13 20:13:35 -05:00
Peter Steinberger
4523260dda test: share gateway route auth helpers 2026-03-14 00:35:07 +00:00
Peter Steinberger
727fc79ed2
fix: force-stop lingering gateway client sockets 2026-03-14 00:33:39 +00:00
Peter Steinberger
5eaa14687f test: share channel health helpers 2026-03-14 00:30:14 +00:00
Peter Steinberger
944a2c93e3 refactor: share gateway connection auth options 2026-03-14 00:30:14 +00:00
Peter Steinberger
42f9737e59 refactor: share gateway chat text normalization 2026-03-14 00:30:14 +00:00
Peter Steinberger
1886fe5fd9 test: share gateway chat history setup 2026-03-14 00:30:14 +00:00
Peter Steinberger
8225b9edbb test: share gateway hook and cron helpers 2026-03-14 00:30:14 +00:00
Peter Steinberger
b64466953a test: share plugin http auth helpers 2026-03-14 00:30:14 +00:00
Peter Steinberger
b72ac7936a test: share gateway reload helpers 2026-03-14 00:30:14 +00:00
Peter Steinberger
320de5ecdd test: share startup auth token fixtures 2026-03-14 00:30:14 +00:00
Peter Steinberger
f8efa30305 test: share gateway chat run helpers 2026-03-14 00:30:14 +00:00
Peter Steinberger
0229246f3b test: share wake failure assertions 2026-03-13 23:35:27 +00:00
Peter Steinberger
ba34266e89 test: dedupe cron config setup 2026-03-13 21:40:53 +00:00
Peter Steinberger
c8898034f9 refactor: share agent wait dedupe cleanup 2026-03-13 21:40:53 +00:00
Peter Steinberger
4674fbf923 refactor: share handshake auth helper builders 2026-03-13 21:40:53 +00:00
Peter Steinberger
b84c7037de fix: repair ci audit and type drift 2026-03-13 21:02:19 +00:00
Peter Steinberger
feba7ea8fd refactor: share shared auth scope assertion 2026-03-13 20:19:39 +00:00
Peter Steinberger
1fe261f92f refactor: share chat abort auth invocation 2026-03-13 20:19:39 +00:00
Peter Steinberger
5f34391f75 refactor: share gateway client auth retry helpers 2026-03-13 20:19:38 +00:00
Peter Steinberger
60d308cff0 test: fix CI type regressions 2026-03-13 19:53:40 +00:00
Peter Steinberger
389de66b25 refactor: share browser auth test helpers 2026-03-13 18:38:12 +00:00
Peter Steinberger
a3ece09d19 refactor: share control ui hardlink asset setup 2026-03-13 18:38:12 +00:00
Peter Steinberger
6a1ba52ad5 refactor: share gateway probe auth warnings 2026-03-13 18:38:12 +00:00
Peter Steinberger
6cc86ad211 refactor: share gateway credential secretref assertions 2026-03-13 18:38:12 +00:00
Peter Steinberger
2f58647033 refactor: share plugin route auth test harness 2026-03-13 18:38:12 +00:00
Peter Steinberger
7cb6553ce8 fix: pass injected config to session tools 2026-03-13 18:38:12 +00:00
Peter Steinberger
198c2482ee refactor: share gateway session store migration 2026-03-13 18:38:12 +00:00
Peter Steinberger
b5349f7563 refactor: share startup auth token assertions 2026-03-13 18:38:12 +00:00
Peter Steinberger
31c8bb9167 refactor: share agent wait dedupe test entries 2026-03-13 18:38:12 +00:00
Peter Steinberger
db9c755045 refactor: share readiness test harness 2026-03-13 18:38:11 +00:00
Peter Steinberger
5ea03efe92
fix: harden windows gateway lifecycle 2026-03-13 18:33:59 +00:00
Peter Steinberger
e1b9250dea test: simplify method scope coverage 2026-03-13 18:21:48 +00:00
Peter Steinberger
431463dec2 test: simplify config patch validation coverage 2026-03-13 18:15:30 +00:00
Peter Steinberger
29b9e21b7b test: simplify auth rate limit coverage 2026-03-13 18:12:24 +00:00
Peter Steinberger
bec76be592 test: simplify talk config and path env coverage 2026-03-13 18:06:53 +00:00
Peter Steinberger
91d4f5cd2f test: simplify control ui http coverage 2026-03-13 18:03:35 +00:00
Frank Yang
987c254eea
test: annotate chat abort helper exports (#45346) 2026-03-14 02:03:14 +08:00
Peter Steinberger
1f85c9af68 test: simplify runtime config coverage 2026-03-13 18:00:03 +00:00
Peter Steinberger
e25fa446e8 test: refine gateway auth helper coverage 2026-03-13 17:58:28 +00:00