Commit Graph

25 Commits

Author SHA1 Message Date
Peter Steinberger
de343cefdd fix: log env opts and collapse duplicate blocks 2026-01-25 10:22:53 +00:00
Peter Steinberger
58c2b3e1ed fix: listen on ipv6 loopback for gateway 2026-01-25 05:49:48 +00:00
Peter Steinberger
2442da1118 fix: skip tailscale dns probe when off 2026-01-25 02:51:20 +00:00
Lucas Czekaj
d1f6849785 feat(discord): add exec approval forwarding to DMs (#1621)
* feat(discord): add exec approval forwarding to DMs

Add support for forwarding exec approval requests to Discord DMs,
allowing users to approve/deny command execution via interactive buttons.

Features:
- New DiscordExecApprovalHandler that connects to gateway and listens
  for exec.approval.requested/resolved events
- Sends DMs with embeds showing command details and 3 buttons:
  Allow once, Always allow, Deny
- Configurable via channels.discord.execApprovals with:
  - enabled: boolean
  - approvers: Discord user IDs to notify
  - agentFilter: only forward for specific agents
  - sessionFilter: only forward for matching session patterns
- Updates message embed when approval is resolved or expires

Also fixes exec completion routing: when async exec completes after
approval, the heartbeat now uses a specialized prompt to ensure the
model relays the result to the user instead of responding HEARTBEAT_OK.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: generic exec approvals forwarding (#1621) (thanks @czekaj)

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-24 20:56:40 +00:00
Petter Blomberg
8bd778a57e fix: reduce log noise for node disconnect/late invoke errors (#1607)
* fix: reduce log noise for node disconnect/late invoke errors

- Handle both 'node not connected' and 'node disconnected' errors at info level
- Return success with late:true for unknown invoke IDs instead of error
- Add 30-second throttle to skills change listener to prevent rapid-fire probes
- Add tests for isNodeUnavailableError and late invoke handling

* fix: clean up skills refresh timer and listener on shutdown

Store the return value from registerSkillsChangeListener() and call it
on gateway shutdown. Also clear any pending refresh timer. This follows
the same pattern used for agentUnsub and heartbeatUnsub.

* refactor: simplify KISS/YAGNI - inline checks, remove unit tests for internal utilities

* fix: reduce gateway log noise (#1607) (thanks @petter-b)

* test: align agent id casing expectations (#1607)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-24 20:05:41 +00:00
Peter Steinberger
7efa487150 fix: add explicit tailnet gateway bind 2026-01-21 20:36:09 +00:00
Peter Steinberger
98a2711b30 fix: emit diagnostics across channels 2026-01-21 00:30:34 +00:00
Peter Steinberger
584e91a66e fix: auto-enable plugins on startup 2026-01-20 16:38:37 +00:00
Peter Steinberger
df8e949b05 refactor: normalize cli command hints 2026-01-20 07:43:00 +00:00
Peter Steinberger
159ab379f8 fix: expand /v1/responses inputs (#1229) (thanks @RyanLisse) 2026-01-20 07:37:30 +00:00
Ryan Lisse
bd422e6228 feat(gateway): add OpenResponses /v1/responses endpoint
Add a new `/v1/responses` endpoint implementing the OpenResponses API
standard for agentic workflows. This provides:

- Item-based input (messages, function_call_output, reasoning)
- Semantic streaming events (response.created, response.output_text.delta,
  response.completed, etc.)
- Full SSE event support with both event: and data: lines
- Configuration via gateway.http.endpoints.responses.enabled

The endpoint is disabled by default and can be enabled independently
from the existing Chat Completions endpoint.

Phase 1 implementation supports:
- String or ItemParam[] input
- system/developer/user/assistant message roles
- function_call_output items
- instructions parameter
- Agent routing via headers or model parameter
- Session key management

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 07:37:01 +00:00
Peter Steinberger
ab5692cb27 fix: stabilize gateway ws + iOS 2026-01-19 10:09:04 +00:00
Peter Steinberger
41d7b0f07c refactor: remove bridge protocol 2026-01-19 10:08:29 +00:00
Peter Steinberger
bdf0019ce0 feat: add gateway tls support 2026-01-19 10:08:01 +00:00
Peter Steinberger
ea5df637e7 feat: unify device auth + pairing 2026-01-19 10:07:56 +00:00
Peter Steinberger
b1c13b0eab fix: enforce strict config validation 2026-01-19 03:39:25 +00:00
Peter Steinberger
b049deea9c fix: gate gateway restarts and discord abort reconnects 2026-01-19 00:15:45 +00:00
Peter Steinberger
1ef95dcebc feat: add gateway update check on start 2026-01-17 12:07:17 +00:00
Peter Steinberger
c3595ba31a fix: block invalid config startup
Co-authored-by: Muhammed Mukhthar CM <mukhtharcm@gmail.com>
2026-01-17 10:25:24 +00:00
Peter Steinberger
cc145407c3 feat: mac node exec policy + remote skills hot reload 2026-01-16 03:45:06 +00:00
Peter Steinberger
e15186f866 feat: add plugin HTTP hooks + Zalo plugin 2026-01-15 05:04:09 +00:00
Peter Steinberger
fec657e888 feat: load channel plugins 2026-01-15 02:42:44 +00:00
Peter Steinberger
9d28441c41 chore: migrate to oxlint and oxfmt
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
2026-01-14 15:02:19 +00:00
Peter Steinberger
38235f9c6c refactor(gateway): split server runtime 2026-01-14 09:11:21 +00:00
Peter Steinberger
b74a102af7 refactor(src): split oversized modules 2026-01-14 01:17:56 +00:00