Peter Steinberger
df11cb761a
fix(agents): reduce malformed guild reply tool calls ( #107474 )
...
Co-authored-by: lonexreb <reach2shubhankar@gmail.com >
2026-07-14 06:08:31 -07:00
Peter Steinberger
a34bed409d
refactor(code-mode): consume QuickJS handles
2026-07-14 06:04:09 -07:00
Peter Steinberger
7b16b35cb3
refactor(media-understanding): remove internal export seams ( #107476 )
2026-07-14 05:57:08 -07:00
Peter Steinberger
2c76021e52
refactor(types): use native MCP transport declarations
2026-07-14 05:49:38 -07:00
Peter Steinberger
9de11f098e
fix(release): forward-port July guards and restore main validation ( #107462 )
...
* fix(installer): validate upgraded Windows SQLite runtime
* fix(release): lock packed AI runtime dependency
* test(mattermost): tolerate additional fallback diagnostics
* test(live): make Claude resume proof explicit
* test(plugins): repair exact-main prerelease coverage
* test(release): restore root test type coverage
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-07-14 05:41:24 -07:00
Peter Steinberger
d6fc3d34e2
improve(ui): auto-save config edits, flatten config pages, single restart affordance ( #107458 )
2026-07-14 05:31:41 -07:00
Peter Steinberger
c3f08eba17
test: avoid harness discovery in directive fixtures ( #107424 )
2026-07-14 05:25:59 -07:00
Peter Steinberger
98de5832a7
refactor(process): remove internal export seams ( #107456 )
2026-07-14 05:23:29 -07:00
Peter Steinberger
5802536731
refactor(fs-safe): use native JSON readers
2026-07-14 05:21:01 -07:00
Ayaan Zaidi
c214fc4bee
fix(commands): require explicit owner authority
2026-07-14 17:49:20 +05:30
Peter Steinberger
9d79d85f46
feat(workboard): refresh Control UI from live changes ( #99051 )
...
* feat(workboard): refresh control ui from live changes
* refactor(workboard): tighten live invalidation path
* chore(workboard): preserve locale catalog state
* refactor(gateway): keep broadcaster runtime object
* refactor(plugin-sdk): own gateway event types
* test(workboard): bind reconciliation mocks
* test(release): declare recovery helpers
* fix(workboard): cancel direct loads on teardown
2026-07-14 05:17:23 -07:00
Peter Steinberger
ea2a757933
refactor(wizard): remove test-only exports ( #107445 )
2026-07-14 05:10:03 -07:00
Peter Steinberger
aae56539fa
refactor(ws): use nodebuffer socket contracts
2026-07-14 05:03:57 -07:00
Peter Steinberger
2a77b0b1d5
refactor(fleet): remove internal exports ( #107438 )
2026-07-14 04:56:37 -07:00
Peter Steinberger
372bb79cfb
refactor(config): use dotenv buffer parsing
2026-07-14 04:52:10 -07:00
Peter Steinberger
6bea5ec113
refactor(talk): remove consult test dependency seam ( #107432 )
2026-07-14 04:49:11 -07:00
Peter Steinberger
c4a2db93d9
refactor(status): privatize channel feature rendering ( #107428 )
2026-07-14 04:40:29 -07:00
Peter Steinberger
35e3eff549
fix(agents): propagate auth lock release failures
2026-07-14 04:40:17 -07:00
Ayaan Zaidi
7d99de8e32
refactor(mcp): split session runtime modules for the LOC ratchet
...
Mechanical: manager, combined facade, install path, lifecycle, config
loading, and resolver types move to focused modules; the runtime facade
re-exports its prior surface so importers are unchanged. Deletes dead
tools-barrel re-exports flagged by check-dependencies. No behavior
change.
2026-07-14 17:09:53 +05:30
Ayaan Zaidi
e85616940e
fix(mcp): register full resolved URL for log redaction
...
Path-borne session tokens leak verbatim through fetch/undici transport
error strings; exact-value registration of the whole resolved URL closes
the last credential egress surface.
2026-07-14 17:09:53 +05:30
Ayaan Zaidi
8b66fe773f
feat(mcp): deliver requester-scoped MCP to shared-thread harnesses
...
Requester-scoped servers never enter harness-native MCP config: Codex
thread and CLI user-MCP projections partition them out (fail-closed,
static-partition fingerprints stay sender-independent so shared threads
never rotate). Codex delivers them as per-attempt dynamic tools through
a scoped-only runtime path on the same core manager, with a
session-stable advertised catalog so authed and unauthed senders share
one spec surface; unauthed calls get a clean not-connected tool error.
New SDK seam materializeRequesterScopedMcpToolsForHarnessRun lets any
future harness consume the same contract.
2026-07-14 17:09:53 +05:30
Ayaan Zaidi
d50feceadb
fix(mcp): address maintainer review of requester-scoped connections
...
Fail-closed app views for requester-scoped servers, tools.effective
fingerprint parity, declaration-order safe names, fail-closed duplicate
resolver registration, resolved-credential redaction registration,
per-session LRU cap on idle requester runtimes, combined-catalog re-merge
on part refresh, and SDK contract docs (timings, schema ownership).
2026-07-14 17:09:53 +05:30
Ayaan Zaidi
834561ad67
feat(mcp): resolve MCP server connections per trusted requester
...
Plugins can register api.registerMcpServerConnectionResolver({serverName,
resolve}) to bind an MCP server's transport (url/headers) to the trusted
sender of each message. Server identity stays static; only the connection
is per-requester. Runtimes are cached per (sessionId, channel, accountId,
senderId); runs without a trusted requester fail closed (cron, subagent,
heartbeat). Resolved credentials never enter fingerprints or logs. Static
servers keep the existing session-scoped lifecycle byte-for-byte.
Enables per-user hosted MCP sessions (e.g. per-user OAuth email/calendar)
in multi-sender channels like Slack.
Refs #106229
2026-07-14 17:09:53 +05:30
Peter Steinberger
1b02289fcf
refactor(flows): trim internal export surface ( #107420 )
2026-07-14 04:32:33 -07:00
Peter Steinberger
e5e8d8717e
refactor(agents): use diff native APIs
2026-07-14 04:31:34 -07:00
Peter Steinberger
9c03b2310e
fix(terminal): keep slow clients connected under heavy output ( #107348 )
...
* fix(terminal): coalesce output and throttle slow clients
* fix(terminal): satisfy lint and deadcode gates
2026-07-14 04:28:27 -07:00
Peter Steinberger
c1b55ffab7
fix(schemas): preserve string enum fallbacks
2026-07-14 04:25:58 -07:00
Peter Steinberger
e798a76662
refactor(schemas): use TypeBox native enums
2026-07-14 04:25:58 -07:00
Peter Steinberger
2cc49503a6
refactor(hooks): trim internal export surface ( #107412 )
2026-07-14 04:22:46 -07:00
Peter Steinberger
bb482f474c
test: avoid runtime discovery in reply fixtures ( #107405 )
2026-07-14 04:15:16 -07:00
Peter Steinberger
3b946e09da
refactor(logging): trim internal export surface ( #107407 )
2026-07-14 04:12:23 -07:00
Peter Steinberger
b0efa489d1
refactor(export): guard optional scroll APIs
2026-07-14 03:53:54 -07:00
Peter Steinberger
ca83f1ca51
fix(ci): restore release validation after runtime migrations ( #107371 )
...
* test(ci): repair plugin prerelease validation
* test(zalo): preserve adapter narrowing in sender helpers
* test(ci): track current bundled startup metadata
* fix(google-meet): refresh plugin shrinkwrap
2026-07-14 03:52:44 -07:00
Peter Steinberger
e488dc0012
feat(sessions): signal watchers when an adopted upstream disappears ( #107356 )
2026-07-14 03:51:20 -07:00
Ayaan Zaidi
319a796079
fix(gateway): never leave the restart admission fence closed without a restart
...
A failed, refused, superseded, or thrown restart emission could leave the
reversible restart-signal admission fence closed forever: concurrent emitters
could overwrite the live rollback lease with a dead stand-in, the fenced body
had no try/finally, and the outer catch swallowed errors precisely because the
stuck fence made isGatewayRestartDraining() true. The gateway then rejected
every new task with GatewayDrainingError - silently - until an operator
restarted the process.
beginGatewayRestartSignalAdmission now returns null instead of stand-in
leases (single fence owner), emitPreparedGatewayRestart reopens the fence on
every non-delivery path via try/finally while preserving it whenever a queued
SIGUSR1 is unconsumed, refused-signal cleanup force-clears orphaned fences,
and admission close/reopen transitions are logged with their reason. The
self-contained SQLite restart-intent persistence moves to restart-intent.ts
to keep restart.ts within the LOC ratchet.
Fixes #107322
2026-07-14 16:14:48 +05:30
Peter Steinberger
26fe6e8ea3
refactor(audit): trim internal input types ( #107390 )
2026-07-14 03:43:49 -07:00
Peter Steinberger
3229fbdc48
fix(config): render Feishu group policy in Form mode ( #107336 )
...
* fix(ui): scope unsupported config guidance to fields
* fix(config): export Feishu transform inputs
* chore: remove release-owned changelog entry
2026-07-14 03:42:43 -07:00
Peter Steinberger
b68714ee42
refactor(backup): use tar read-entry APIs
2026-07-14 03:42:07 -07:00
Peter Steinberger
09e5d60d3c
fix(ci): format node-host runtime/worker tests
...
Unformatted test edits landed on main and fail check-lint's oxfmt gate
on every branch.
2026-07-14 03:35:07 -07:00
Peter Steinberger
50e777bc25
refactor(tasks): trim internal export surface ( #107385 )
2026-07-14 03:33:52 -07:00
Peter Steinberger
20f145f9c1
fix(mac): enable terminal actions for paired-node sessions ( #107361 )
...
* fix(mac): enable paired-node terminal sessions
* fix(ci): align node worker bridge checks
2026-07-14 03:22:28 -07:00
Peter Steinberger
b9d0473b2e
refactor(plugins): match Jiti callable contract
2026-07-14 03:20:29 -07:00
Jason (Json)
01a7f4fb3f
feat(ui): add images and model selection to new sessions ( #107358 )
...
Merged via squash.
Prepared head SHA: cf99b5bab5
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
Reviewed-by: @fuller-stack-dev
2026-07-14 04:14:01 -06:00
Peter Steinberger
693d4f8fa3
test: avoid unrelated runtime discovery in agent runner tests ( #107354 )
2026-07-14 03:05:45 -07:00
Peter Steinberger
8ea5ee2f17
refactor(terminal): unify bounded buffers ( #107337 )
...
* refactor(terminal): unify bounded buffers
* refactor(terminal): tighten buffer closure
* refactor(terminal): keep buffer policy private
2026-07-14 03:04:37 -07:00
Peter Steinberger
ac4fd2ad42
refactor(media): use qrcode buffer renderer
2026-07-14 02:59:19 -07:00
Peter Steinberger
d8f705c0a2
refactor(skills): trim internal exports ( #107353 )
...
* refactor(skills): trim internal exports
* test(skills): derive mismatch fixture type
2026-07-14 02:58:34 -07:00
Peter Steinberger
d79573d457
fix: avoid redundant image-model calls for vision agents ( #107311 )
...
* fix: route native image inspection directly
* fix: narrow image fallback route
* style: satisfy image tool size ratchet
* test: align image fallback auth coverage
* fix: complete native image routing
2026-07-14 02:54:34 -07:00
Peter Steinberger
673b163b72
refactor(cli): use Commander native APIs
2026-07-14 02:45:52 -07:00
xingzhou
8acbf209cd
fix(gateway): prevent broken emoji in WebSocket log IDs ( #105001 )
...
* fix(gateway): preserve Unicode in WebSocket log IDs
* test(gateway): cover UTF-16-safe log IDs
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 02:41:55 -07:00