William Valentin
dcbb4649a2
gateway: prevent stale web UI assets on localhost
2026-02-18 22:30:47 -08:00
William Valentin
805bbaead9
fix(gateway-ui): refresh service worker and static cache headers
2026-02-18 12:22:01 -08:00
William Valentin
8234cc93f3
feat: add webchat pwa push subscription support
2026-02-18 10:46:55 -08:00
William Valentin
59199731c3
fix(gateway): align node push token typing and router test mock
2026-02-17 16:06:03 -08:00
William Valentin
803de57261
fix(gateway): align session mocks and persist normalized push provider
2026-02-17 15:53:08 -08:00
William Valentin
a954d7e136
Add Android node foundation with FCM push support
2026-02-16 12:55:22 -08:00
William Valentin
58c4b0b9bb
Add iOS node push-token registration foundation
2026-02-16 12:47:34 -08:00
William Valentin
bea4c54f3b
Add macOS companion node status and system.nodes APIs
2026-02-16 12:41:58 -08:00
William Valentin
8a0b4f3dbb
Add canvas artifact RPC foundation for A2UI
2026-02-16 12:36:02 -08:00
William Valentin
fe8674e108
Add node location access RPCs and operator visibility
2026-02-16 12:30:55 -08:00
William Valentin
d9f7807ab2
feat(gateway): add node capability negotiation foundation
2026-02-16 12:14:25 -08:00
William Valentin
948d4ac6d8
chore(lint): burn down remaining warnings to zero
2026-02-15 23:14:21 -08:00
William Valentin
46538e71a8
chore(lint): restore zero-error eslint baseline
2026-02-15 22:25:29 -08:00
William Valentin
63d645bd87
feat(gateway): add websocket ingress rate limiting
2026-02-15 21:56:13 -08:00
William Valentin
d93c1c9f8d
fix(gateway): enforce request body size limits
2026-02-15 21:44:36 -08:00
William Valentin
ef48a86f80
test: make suites robust in restricted environments
2026-02-15 18:39:39 -08:00
William Valentin
9d4d440ecf
feat: add PairingManager and gateway lock tests (Tier 4 feature 4 foundation)
2026-02-09 13:32:59 -08:00
William Valentin
20930a4816
feat: add query-param token auth and optional HTTP auth to gateway
...
Support ?token= query parameter as a fallback for WebSocket clients that
cannot set Authorization headers (e.g. browsers). Add authHttp option to
GatewayServer so token auth can be applied to HTTP requests too, returning
401 with WWW-Authenticate header on failure.
2026-02-06 16:51:41 -08:00
William Valentin
ee0af0cc06
feat: add tool allow/deny profiles with per-agent and per-provider filtering
...
Implements configurable tool filtering with four built-in profiles
(minimal, messaging, coding, full), global and per-agent/per-provider
allow/deny lists with glob pattern support, and defense-in-depth
enforcement at both tool listing and execution time.
New: src/tools/policy.ts (ToolPolicy engine), src/tools/policy.test.ts (37 tests)
Modified: config schema, tool registry, tool executor, NativeAgent,
AgentOrchestrator, daemon wiring, gateway tool handler, test mocks
2026-02-06 15:30:34 -08:00
William Valentin
306e11bd2e
feat: add multi-model delegation (Phase 0) and context compaction (Phase 1)
...
Phase 0 — Multi-Model Delegation:
- AgentOrchestrator wraps NativeAgent with delegate() for stateless
single-turn calls to any model tier (fast/default/complex/local)
- DelegationConfig maps task types (compaction, classification, etc.)
to model tiers
- Delegation prompts for compaction, memory extraction, classification,
and tool summarisation
- Per-tier usage tracking for cost visibility
- Config schema: agents.delegation and agents.primary_tier
Phase 1 — Context Compaction:
- Token estimation (char/4 heuristic) with context window lookup
- shouldCompact() threshold check against context window percentage
- compactHistory() splits old/recent messages, delegates summary to
fast tier, returns CompactionResult
- Automatic compaction in AgentOrchestrator.process() when configured
- Force-compact via orchestrator.compact() with session persistence
- Session.replaceHistory() with atomic SQLite transaction
- /compact TUI command with feedback on compacted token counts
- Config schema: compaction.enabled, threshold_pct, keep_turns,
summary_max_tokens
Tests: 385 passing across 50 files (22 new tests in 2 new test files)
2026-02-06 13:17:02 -08:00
William Valentin
282a15d2b9
feat(gateway): add web UI with dashboard and chat interface
...
Refactor GatewayServer to serve HTTP and WebSocket on a shared
http.Server. Add static file serving with path traversal protection,
a dark-themed dashboard (system health, sessions, tools) and a
WebSocket chat interface with streaming tool events and markdown
rendering.
2026-02-05 19:39:53 -08:00
William Valentin
f30a8bc318
feat(gateway): add WebSocket gateway with JSON-RPC protocol and auth
...
Phase 2 of the Flynn roadmap. Adds a WebSocket gateway server that
starts alongside the Telegram bot, providing real-time API access to
the agent, sessions, and tools.
Protocol: JSON-RPC-like (request/response/event) over WebSocket.
8 methods: agent.send, agent.cancel, sessions.list, sessions.history,
sessions.create, tools.list, tools.invoke, system.health.
Auth: Bearer token + Tailscale identity header support.
Session bridge: per-connection agent instances with shared model router.
New files: src/gateway/ (protocol, router, server, auth, session-bridge,
handlers for agent/sessions/tools/system).
57 new tests (181 total), typecheck clean.
2026-02-05 19:11:25 -08:00