Commit Graph

161 Commits

Author SHA1 Message Date
William Valentin 58c4b0b9bb Add iOS node push-token registration foundation 2026-02-16 12:47:34 -08:00
William Valentin fe8674e108 Add node location access RPCs and operator visibility 2026-02-16 12:30:55 -08:00
William Valentin fd7ad7bfb0 fix(tui): add /queue command support across tui and routing 2026-02-16 12:19:21 -08:00
William Valentin d9f7807ab2 feat(gateway): add node capability negotiation foundation 2026-02-16 12:14:25 -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 fbd24d4379 feat(gateway): support per-channel and per-session queue policy overrides 2026-02-16 11:51:26 -08:00
William Valentin f7284a4ef1 feat(gateway): add configurable lane queue mode, cap, and overflow 2026-02-16 11:48:45 -08:00
William Valentin 83b8e38b11 feat(runtime): add talk mode and capture tools 2026-02-16 10:17:24 -08:00
William Valentin 8e9f9aa4de feat(channels): add bluebubbles imessage adapter 2026-02-16 09:41:26 -08:00
William Valentin 693dcd8421 feat(channels): add google chat adapter and webhook route 2026-02-16 02:07:55 -08:00
William Valentin 8e35d2d674 feat(channels): add microsoft teams bot framework adapter 2026-02-16 02:00:14 -08:00
William Valentin 0269c6032d feat(channels): add signal-cli channel adapter 2026-02-16 01:54:54 -08:00
William Valentin 323bef0526 feat(gateway): add optional bonjour/mdns discovery 2026-02-16 01:48:59 -08:00
William Valentin ae70818ec1 fix: resolve strict typecheck fallout in setup, routing, and tests 2026-02-15 23:22:05 -08:00
William Valentin 948d4ac6d8 chore(lint): burn down remaining warnings to zero 2026-02-15 23:14:21 -08:00
William Valentin 8c94bb51d0 audit follow-up: continue warning burn-down in factory and service tests 2026-02-15 22:51:20 -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 46538e71a8 chore(lint): restore zero-error eslint baseline 2026-02-15 22:25:29 -08:00
William Valentin a525ec7b2d fix(memory): wire auto_extract through orchestrator compaction 2026-02-15 22:18:55 -08:00
William Valentin 0220ec10dd feat(config): persist config.patch updates atomically 2026-02-15 22:03:21 -08:00
William Valentin 8709c3c9b4 fix(whatsapp): sandbox chromium by default 2026-02-15 21:57:52 -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 dd15ccb927 Fix Z.AI credential resolution and improve 401 auth diagnostics 2026-02-15 19:47:27 -08:00
William Valentin 81c97a9df1 feat(memory): add experimental qmd search backend 2026-02-15 19:33:43 -08:00
William Valentin 421942f66d feat(automation): add isolated job delivery mode 2026-02-15 19:23:15 -08:00
William Valentin 0470647ee7 feat(models): add minimax and moonshot providers 2026-02-15 19:18:48 -08:00
William Valentin bc8326cf4a feat(matrix): add Matrix channel adapter 2026-02-15 18:02:14 -08:00
William Valentin ab89378fce feat(security): enforce elevated mode and sandbox execution 2026-02-15 17:02:05 -08:00
William Valentin b574d170d1 feat(security): wire /elevate to session config 2026-02-15 16:59:18 -08:00
William Valentin 56e887a6bf feat(skills): audit scan results and block unroutable skills 2026-02-15 11:06:52 -08:00
William Valentin 87e942b4c5 feat(models): add Vercel AI Gateway provider 2026-02-15 10:52:03 -08:00
William Valentin 7627e6e630 daemon: enforce auth_mode for OpenAI and Anthropic 2026-02-15 10:39:53 -08:00
William Valentin 67058c8719 feat(security): harden tool provenance and skill isolation 2026-02-15 10:16:55 -08:00
William Valentin 184ebe4480 models: add synthetic provider 2026-02-14 09:34:39 -08:00
William Valentin 4bb8c88fbe feat(auth): add anthropic api key storage and cli auth 2026-02-14 00:43:12 -08:00
William Valentin 151b48310e orchestrator: recover from context overflow on fallback 2026-02-13 21:19:02 -08:00
William Valentin 944b2c916a routing: fast-path voice when transcription not configured 2026-02-13 18:35:04 -08:00
William Valentin 7df0569a39 feat(models): add Z.AI (GLM) credential integration and setup flow
Implement first-class Z.AI credential storage and authentication:

- New auth provider: src/auth/zai.ts for Z.AI API key management
- New CLI command: flynn zai-auth to store Z.AI API keys
- New TUI command: /login zai for interactive credential entry
- Modified src/auth/index.ts to register zai provider
- Modified src/cli/index.ts to register zai-auth command
- Modified src/cli/setup/providers.ts to include Z.AI in setup wizard
- Modified src/daemon/models.ts to support zhipuai use_oauth flag
- Modified src/daemon/clientFactory.test.ts to add Z.AI tests
- Modified src/frontends/tui/commands.ts to add login command
- Modified src/frontends/tui/minimal.ts to support credential prompts

This allows users to authenticate with Z.AI (GLM models) without
embedding secrets in config files. Credentials are stored securely in
~/.config/flynn/auth.json and resolved at runtime.

Updated state.json with new feature entry documenting the integration.
2026-02-13 16:23:49 -08:00
William Valentin 955b9e28e0 feat: add OpenAI OAuth, strict model overrides, and Gmail pull mode 2026-02-13 14:55:40 -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 bd29afeaff chore(skills): improve watcher event observability 2026-02-12 17:40:41 -08:00
William Valentin 333e33f30f feat(skills): target watcher updates with safe fallback 2026-02-12 17:36:32 -08:00
William Valentin 2fb5c9adab feat(skills): reload registry on watcher change events 2026-02-12 17:30:23 -08:00
William Valentin b773e2bbf3 feat(skills): enable watcher wiring through daemon lifecycle 2026-02-12 17:18:22 -08:00
William Valentin 90ce622080 feat(policy): enforce truthfulness and autonomy guardrails
Add runtime truthfulness modes and autonomy-level tool gating with audit metadata for overrides/denials.

Wire policy through prompt assembly, tool execution context, and daemon/gateway agent paths; update tests and planning state for Phase 3 PR #2 completion.
2026-02-12 16:06:45 -08:00
William Valentin a8a2c59313 feat: implement model persistence with per-session overrides
- Add session_config SQLite table for per-session settings
- Update routing to support session override → agent config → global default resolution chain
- Upgrade WebChat SessionBridge from NativeAgent to AgentOrchestrator
- Add /model, /local, /cloud commands to Telegram adapter
- Add /model command to WebChat gateway handlers
- Clear session overrides on /reset command
- Pass memoryStore and config through to SessionBridge
- Add comprehensive tests for all new functionality

Fixes model persistence bug where TUI model changes didn't affect WebChat/Telegram sessions. Now:
- TUI /model sets global default (persists across restarts, affects all new sessions)
- WebChat/Telegram /model sets session override (only that conversation, cleared on /reset)
- WebChat sessions gain AgentOrchestrator features (delegation, compaction, memory)
2026-02-11 21:51:38 -08:00
William Valentin 2e235213d9 fix(audio): handle voice message failures gracefully
- Send user feedback when voice/audio download fails instead of silent failure
- Send graceful message when audio transcription is not configured instead of empty text which crashes API
2026-02-11 19:44:42 -08:00
William Valentin 148219153e feat(audio): add tests, token estimation, and config override for native audio
- Add capabilities.test.ts (18 tests) for supportsAudioInput()
- Add 15 audio tests to media.test.ts (hasAudio, stripAudioParts, attachmentToAudioSource)
- Add estimateAudioTokens() to tokens.ts (base64→bytes→duration→tokens)
- Update estimateMessageTokens() to include audio content parts
- Add 5 audio token tests to tokens.test.ts
- Add supports_audio config override to model schema
- Wire supports_audio from tier config through routing to capability check

Total tests: 1369 (was 1331, +38 audio-related)
2026-02-11 18:27:19 -08:00