William Valentin
fe8674e108
Add node location access RPCs and operator visibility
2026-02-16 12:30:55 -08:00
William Valentin
de0c1f41b3
feat(channels): add mattermost adapter and wiring
2026-02-16 12:09:44 -08:00
William Valentin
813a0dc5c5
feat(gateway): complete openclaw phase1 queue parity v2
2026-02-16 12:04:33 -08:00
William Valentin
1a075e62b0
audit follow-up: burn down lint hotspots and dedupe channel gating flows
2026-02-15 22:44:04 -08:00
William Valentin
0220ec10dd
feat(config): persist config.patch updates atomically
2026-02-15 22:03:21 -08:00
William Valentin
c6e3d09ecc
feat(gateway): add sender presence tracking
2026-02-15 19:28:16 -08:00
William Valentin
e0cb3b96cc
feat(gateway): report Matrix service and redact access token
2026-02-15 18:02:14 -08:00
William Valentin
0493660e7d
feat(gateway): add system.services and dashboard services grid
2026-02-14 00:42:41 -08:00
William Valentin
cc54b3a10c
feat(webchat): support image attachments
2026-02-13 15:03:48 -08:00
William Valentin
46099664f0
feat(gateway): wire safe-point runtime cancellation for agent.cancel
2026-02-13 08:51:14 -08:00
William Valentin
9f81c01603
feat(session): persist model tier overrides per session
...
Store per-session config in SQLite and route /model and /reset through command fast-paths so channel sessions keep independent model selection across reconnects and restarts.
2026-02-13 01:04:26 -08:00
William Valentin
eea7ca62a8
chore: increase GmailWatcher default poll interval from 60s to 300s
2026-02-11 08:43:48 -08:00
William Valentin
1e29da4da2
feat: complete DM pairing codes with channel adapters, gateway handlers, and TUI command (Tier 4 feature 4)
2026-02-09 18:28:10 -08:00
William Valentin
4413c4dc7c
feat: add gateway lock, shell completion, and tailscale serve (Tier 4 features 1-3)
2026-02-09 13:29:59 -08:00
William Valentin
9be8f76bc7
feat: implement Tier 3 features — lane queue, credential redaction, token dashboard, xAI, Voyage AI
...
- Lane Queue: per-session FIFO queue in gateway replacing reject-when-busy (9 tests)
- Credential Redaction: redactConfig() expanded to cover 18+ secret fields (16 tests)
- Web UI Token Dashboard: system.tokenUsage endpoint + Usage page with summary cards
- xAI (Grok) Provider: OpenAI-compatible client with model pricing
- Voyage AI Embeddings: new embedding provider with configurable dimensions (5 tests)
- Update gap analysis: 90→95 match (70%→74%), Tier 3 section marked DONE
- Update state.json: test count 1001→1034, add tier3_completion entry
Total: 1034 tests passing across 85 files, typecheck clean
2026-02-09 10:32:57 -08:00
William Valentin
e052778b0a
feat: add gateway protocol attachment support
...
Extends the gateway wire protocol with GatewayAttachment type and
attachment event. agent.send handler now accepts optional attachments
parameter and converts them for the agent pipeline. Includes 5 new
tests for protocol and handler layers.
2026-02-07 09:09:06 -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
aa95f2132c
feat: add channel adapter abstraction with Telegram and WebChat adapters
...
Implement Phase 3 channel adapters that decouple message sources from
the agent via a uniform ChannelAdapter interface and ChannelRegistry.
- Add ChannelAdapter/InboundMessage/OutboundMessage types
- Add ChannelRegistry for adapter lifecycle and message routing
- Add TelegramAdapter (grammy bot, auth middleware, confirmations, chunking)
- Add WebChatAdapter (thin shim over GatewayServer)
- Refactor daemon to use ChannelRegistry with per-channel-per-user agents
- Add config.get/config.patch gateway handlers (Phase 2 loose end)
- Add system.restart gateway handler (Phase 2 loose end)
- Add implementation plans and design docs
Tests: 225 passing (33 new channel adapter + gateway handler tests)
2026-02-05 20:00:36 -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