Commit Graph

17316 Commits

Author SHA1 Message Date
Peter Steinberger 0b9993df95 fix(agents): keep phaseless OpenAI WS text buffered until phase resolves (#61968)
* fix(agents): gate WS text delta emission on valid phase value, not map key existence

When output_item.added arrives without phase metadata, outputItemPhaseById
stores undefined. The previous .has() check returned true for undefined
values, bypassing the buffering gate and leaking commentary as unphased
visible content.

Fix: change .has() to .get() !== undefined on both delta and done handlers.

Fixes #61477

* docs: note WS phase buffering fix (#61954) (thanks @100yenadmin)

* test(agents): cover phaseless WS output_text.done buffering (#61954)

* test(commands): fix session-store import path for tsgo (#61968)

---------

Co-authored-by: Eva <eva@100yen.org>
2026-04-06 16:35:16 +01:00
Vincent Koc 56136c83b7 refactor(plugins): type sync hook handlers 2026-04-06 16:35:11 +01:00
Peter Steinberger de20d3a024 refactor(plugin-sdk): add simple completion runtime entrypoint 2026-04-06 16:29:43 +01:00
Peter Steinberger 7a5e65c71b test(channels): fix add and facade fixtures 2026-04-06 16:27:38 +01:00
Peter Steinberger cfb7779584 refactor(deadcode): remove agent command shims 2026-04-06 16:24:12 +01:00
Peter Steinberger 41c700fe9e refactor(deadcode): remove command auth shims 2026-04-06 16:18:20 +01:00
Peter Steinberger 514328a9ad style(repo): format touched helpers and tests 2026-04-06 16:16:10 +01:00
Peter Steinberger 0c5e6037b0 fix(openai): clarify auth routes in picker and docs 2026-04-06 16:14:51 +01:00
Peter Steinberger 2b6e08bbfa refactor: remove confirmed dead helpers 2026-04-06 16:13:26 +01:00
Peter Steinberger d7e3df5eaa perf(test): expand light lane routing 2026-04-06 16:13:21 +01:00
Peter Steinberger 16d0f0567e fix: preserve legacy replay phase boundaries (#61529) (thanks @100yenadmin) 2026-04-06 23:09:29 +08:00
Eva a200a746fc fix(agents): correct phase-buffering test expectation for mid-stream deltas 2026-04-06 23:09:29 +08:00
Eva a58726e1ed fix(agents): inherit message-level phase for untagged blocks during replay splitting
Fixes #61476

Untagged text blocks in mixed assistant messages were forced to undefined
phase when any sibling had an explicit textSignature phase. Now they
correctly inherit the message-level assistantMessagePhase, preventing
commentary leaks during history replay.

Removes the hasExplicitBlockPhase scan — untagged blocks always inherit
m.phase. Blocks with explicit textSignature.phase still use their own.

94/94 tests pass. Regression test added for mixed explicit/untagged blocks.
2026-04-06 23:09:29 +08:00
Vincent Koc f94a018191 perf(test): slim secrets runtime coverage hotspot 2026-04-06 16:08:05 +01:00
Peter Steinberger 1fb44f0aad fix: separate selected session model resolution 2026-04-06 16:07:50 +01:00
Vincent Koc 9c3d9c5c18 chore(lint): drop stale repo lint comments 2026-04-06 16:01:23 +01:00
Vincent Koc c7a562683a chore(agents): drop stale lint comments 2026-04-06 15:59:22 +01:00
Vincent Koc cb770057b0 chore(lint): drop stale config and gateway lint comments 2026-04-06 15:57:32 +01:00
Vincent Koc 2537ae503d chore(plugins): drop stale core channel lint comments 2026-04-06 15:56:41 +01:00
Peter Steinberger 378b2c2f5c fix(check): absorb latest main lint drift 2026-04-06 15:56:02 +01:00
Peter Steinberger d12029a15a fix(check): repair plugin runtime type drift batch 2026-04-06 15:54:12 +01:00
Vincent Koc 8fe7b3730f fix(check): restore gateway status tls mock typing 2026-04-06 15:53:16 +01:00
Vincent Koc 5765c4cb2a fix(check): repair latest command and stream type drift 2026-04-06 15:46:53 +01:00
jjjojoj b35b176837 fix: recognize api.grok.x.ai as xAI-native endpoint
Fixes #61377

The provider attribution code only recognized api.x.ai as the xAI-native
endpoint. Some users have api.grok.x.ai configured (or it appears in
certain DNS/config scenarios) which would not resolve as xAI-native,
causing web_search tool failures.

This change adds api.grok.x.ai as an alias for xAI-native endpoint
classification alongside api.x.ai.
2026-04-06 15:45:34 +01:00
Peter Steinberger baf4119ae3 fix: harden local TLS gateway probes (#61935) (thanks @ThanhNguyxn07) 2026-04-06 15:44:30 +01:00
ThanhNguyxn07 b77964f704 fix(gateway-status): use local TLS probe targets with fingerprint
When gateway.tls.enabled is true, gateway status probes now target local loopback/tailnet over wss and pass the local TLS fingerprint for localLoopback probes. This avoids false unreachable results for healthy local TLS gateways.

Fixes #61767

Co-authored-by: ThanhNguyxn <thanhnguyentuan2007@gmail.com>
2026-04-06 15:44:30 +01:00
Peter Steinberger 5a54005b4d fix(plugins): restore green runtime gates 2026-04-06 15:42:51 +01:00
Nimrod Gutman 6f566585d8 fix(ios): harden watch exec approval review (#61757)
* fix(ios): harden watch exec approval review

* fix(ios): address watch approval review feedback

* fix(ios): finalize watch approval background recovery

* fix(ios): finalize watch approval background recovery (#61757) (thanks @ngutman)
2026-04-06 17:42:42 +03:00
openperf e777a2b230 fix(process ): migrate legacy command-queue singleton missing activeTaskWaiters
After a SIGUSR1 in-process restart following an npm upgrade from v2026.4.2
to v2026.4.5, the globalThis singleton created by the old code version
lacks the activeTaskWaiters field added in v2026.4.5.  resolveGlobalSingleton
returns the stale object as-is, causing notifyActiveTaskWaiters() to call
Array.from(undefined) and crash the gateway in a loop.

Add a schema migration step in getQueueState() that patches the missing
field on legacy singleton objects.  Add a regression test that plants a
v2026.4.2-shaped state object and verifies resetAllLanes() and
waitForActiveTasks() succeed without throwing.

Fixes #61905
2026-04-06 15:41:14 +01:00
Vincent Koc a36bb119be test(secrets): reduce serial vitest drag 2026-04-06 15:40:35 +01:00
Peter Steinberger ff7fe37d17 refactor(cli): normalize route boundaries 2026-04-06 15:38:04 +01:00
Vincent Koc 7bb61a07db fix(check): repair plugin and secret type drift 2026-04-06 15:36:42 +01:00
Peter Steinberger 8326349939 fix(test): stabilize docker claude cli live lane 2026-04-06 15:31:08 +01:00
Peter Steinberger ac38f332c5 fix(anthropic): prefer claude cli over setup-token 2026-04-06 15:31:07 +01:00
Peter Steinberger fa67ab2358 fix: preserve gateway-bindable loader compatibility 2026-04-06 15:28:41 +01:00
HansY c78defdc2f plugins: exclude runtimeSubagentMode from loader cache key
The plugin loader cache key included runtimeSubagentMode, which is
derived from allowGatewaySubagentBinding. Since different call sites in
the message processing pipeline pass different values for this flag,
each call produced a distinct cache key, triggering redundant
register() calls (40+ in 24 seconds after startup).

runtimeSubagentMode does not affect which plugins are loaded or how
they are configured — it is only metadata stored alongside the active
registry state. Removing it from the cache key lets all call sites
share the same cached registry regardless of their binding mode.

Fixes #61756
2026-04-06 15:28:41 +01:00
Peter Steinberger 9e0d632928 fix(gateway): unify session history snapshots 2026-04-06 15:26:55 +01:00
Peter Steinberger 8838fdc916 refactor: share web provider runtime helpers 2026-04-06 15:26:32 +01:00
Peter Steinberger 58f4099a4f refactor: share plugin runtime load context 2026-04-06 15:26:32 +01:00
Peter Steinberger 3599ab2e56 fix(agents): honor verbose defaults and trim process setup 2026-04-06 15:24:59 +01:00
Peter Steinberger cd5b1653f6 feat: declare explicit media provider capabilities 2026-04-06 15:24:38 +01:00
Peter Steinberger 29df67c491 test(acp): prove lazy reset re-ensures bound sessions 2026-04-06 15:24:16 +01:00
Onur b34fa9c868 ACP: reset bound sessions lazily 2026-04-06 15:24:16 +01:00
Peter Steinberger 8d095147b4 fix: restore check gate 2026-04-06 15:20:03 +01:00
Peter Steinberger 979c81d9dd test(auth): cover readonly runtime auth inheritance 2026-04-06 15:19:34 +01:00
Peter Steinberger adb750fa63 perf(test): trim secrets runtime snapshot lane 2026-04-06 15:19:34 +01:00
Peter Steinberger 91749930d4 fix: restore check-time path inference 2026-04-06 15:18:55 +01:00
Vincent Koc ac6f696baa fix(check): repair typed test and cli drift 2026-04-06 15:14:37 +01:00
biefan 0f075e1b8a fix: restore terminal keyboard state on tui exit (#49130) (thanks @biefan) (#49130)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-06 15:14:08 +01:00
Peter Steinberger 26a5ab1c6f fix(utils): harden directive block placeholders 2026-04-06 15:11:44 +01:00