47 Commits
Author SHA1 Message Date
alvaro dfed03ac7c chore(vocero): remove the legacy ApiPilot integration (#3)
Vocero now retrieves AquaPortal content through authenticated MCP. This removes the obsolete ApiPilot integration from the API and browser while preserving the separately deployed speech pipeline.

Release notes:

- Removed ApiPilot endpoints, configuration, credential overrides, and HTTP/realtime tool execution.
- Removed browser ApiPilot catalog loading and prompt generation while retaining authenticated MCP discovery.
- Updated regression coverage and operating documentation for the retired routes and settings.

Reviewed-on: AquaPortal/s2s#3
2026-10-08 11:23:41 -04:00
alvaro 0311d3f1ff chore: change tally form 2026-10-08 10:43:19 -04:00
alvaro 4b0108ecf0 feat(vocero): add linked content and TALKFIRST greetings (#2)
Opening a report or podcast link now establishes an authenticated starting reference for the conversation. Users can select other accessible content or compare reports while retaining the original link, and TALKFIRST greetings can name the verified report or podcast.

Release notes:

- Added authenticated report and episode link resolution with bounded lookups and unavailable-content handling
- Added explicit conversation selection without restricting searches or changing the reference during comparisons
- Added contextual TALKFIRST greetings through both voice-proxy and HTTP reasoning paths
- Preserved backend permission checks, conversation isolation, cancellation, and the existing speech protocol

Reviewed-on: AquaPortal/s2s#2
2026-10-08 09:34:16 -04:00
alvaro 96895996d9 feat(mcp): connect authenticated AquaPortal tools to Vocero (#1)
Vocero needs to query AquaPortal on behalf of the caller selected by the existing phone link. This adds server-owned conversations and MCP tool execution for voice and HTTP reasoning while leaving the speech pipeline unchanged.

Release notes:

- Added browser-bound conversations that keep backend credentials server-side and isolate callers.
- Connected the eight-tool AquaPortal catalog through authenticated Streamable HTTP with full input schemas and structured results.
- Added bounded multi-step tool execution with cancellation, expiry, and stale-result protection.
- Updated browser bootstrap, tool progress, reasoning headers, and conversation cleanup.
- Disabled legacy unscoped content preloads in MCP mode and documented configuration and deployment constraints.
- Preserved disabled-mode contracts and added local SDK, WebSocket, and browser regression coverage.

Reviewed-on: AquaPortal/s2s#1
2026-10-08 08:49:39 -04:00
alvaro ccb1f708ca fix(frontend): use AquaPortal admin favicon 2026-10-07 16:12:40 -03:00
alvaro 62c2692082 fix(frontend): start conversations without a welcome modal 2026-10-07 10:46:15 -03:00
alvaro c06c9194e8 fix(frontend): distinguish disabled and readonly field styles 2026-10-07 10:10:54 -03:00
alvaro 65eaf36278 refactor(frontend): retire legacy CSS and isolate visual artwork 2026-10-07 10:06:11 -03:00
alvaro f3bae8ae0c refactor(frontend): migrate page layout and transcripts to Tailwind 2026-10-07 09:58:51 -03:00
alvaro 264d7905c6 refactor(frontend): share Tailwind dialog and form controls 2026-10-07 09:55:57 -03:00
alvaro e9808cb12b refactor(frontend): expose semantic Tailwind theme tokens 2026-10-07 09:53:08 -03:00
alvaro 4ce6082b93 fix(frontend): improve responsive transcripts and simplify theme styles 2026-10-07 09:43:30 -03:00
alvaro a56e1082e5 fix(frontend): make overlays accessible and wake word opt-in 2026-10-07 09:32:53 -03:00
alvaro 0c57f7c76d refactor(frontend): isolate audio meters and apply settings on save 2026-10-07 09:29:20 -03:00
alvaro 09bf6ece00 fix(frontend): track playback completion and meaningful inactivity 2026-10-07 09:27:54 -03:00
alvaro ff32c6a605 fix(frontend): recover startup and discard stale reasoning answers 2026-10-07 09:24:31 -03:00
alvaro abd03ed07d refactor: rename API and frontend projects to Vocero
Rename the project directories, Python distribution and import package, and npm package. Update launcher, Docker, tooling, tests, lockfiles, and documentation while preserving existing API contracts.

Make AGENTS.md self-contained and remove external skill and workflow references.
2026-10-06 19:26:55 -03:00
alvaro e0304b2bdb refactor(reasoning)!: remove Node-RED engine and integrations
BREAKING CHANGE: NODE_RED reasoning is no longer supported. Unsupported
mode values fall back to PROXY. PROXY and OPENAI remain available.
2026-10-06 18:58:54 -03:00
alvaro 77b60622e9 chore: add CLAUDE.md 2026-10-06 18:57:11 -03:00
alvaro 8cc080998f docs(agents): add repository development guidance 2026-10-06 18:49:44 -03:00
alvaro 1146dec1ac test(client): filter known Starlette portal deprecation 2026-10-06 18:29:50 -03:00
alvaro fa00b36e49 build(client): use locked uv environment in launcher and Docker 2026-10-06 18:27:09 -03:00
alvaro f8d5b7857a refactor(api): scope uv to s2s-client and validate compatible responses 2026-10-06 18:23:08 -03:00
alvaro 92c53dc7ca refactor(server): adopt uv and modular typed FastAPI structure 2026-10-06 18:18:36 -03:00
alvaro 34f0d1b125 test(api): capture legacy HTTP and realtime contracts 2026-10-06 18:10:34 -03:00
alvaro 3d42df5749 fix(proxy): pass the ApiPilot catalog with the correct argument 2026-10-06 17:44:43 -03:00
alvaro c375581077 fix(frontend): start voice sessions without update acknowledgment 2026-10-06 17:43:13 -03:00
alvaro 179f5ac7db refactor(ui): delete legacy static website and refresh documentation 2026-10-06 17:23:20 -03:00
alvaro f91001169c refactor(frontend): remove quota UI and preserve queue lifecycle 2026-10-06 17:18:45 -03:00
alvaro e4b3833770 refactor(api): retire daily talk-time quotas and account auth 2026-10-06 17:15:32 -03:00
alvaro 6c4ee3a5e3 refactor(frontend): rename project to s2s-frontend 2026-10-06 17:00:57 -03:00
alvaro 99413fc06d docs(dev): explain the combined Vite and FastAPI launcher 2026-10-06 16:53:40 -03:00
alvaro c8f8aff8c7 fix(dev): keep Fast Refresh enabled under process managers 2026-10-06 16:52:51 -03:00
alvaro 65c965ae6b test(dev): cover launcher readiness failures and process cleanup 2026-10-06 16:50:07 -03:00
alvaro cb09e75bbd feat(dev): serve Vite and FastAPI through the existing UI endpoint 2026-10-06 16:43:55 -03:00
alvaro 7285d22e6c chore(frontend): validate migration and document development 2026-10-06 16:31:39 -03:00
alvaro 36efd5e13c feat(frontend): render Vocero screens and controls with React 2026-10-06 16:24:50 -03:00
alvaro 833788b8d8 feat(frontend): port realtime audio and session handling to TypeScript 2026-10-06 16:10:30 -03:00
alvaro 36e2bee885 chore(frontend): scaffold Vite React TypeScript application 2026-10-06 15:56:59 -03:00
alvaro 0965077cac feat(ui): render assistant replies as Markdown 2026-10-05 12:04:11 -03:00
alvaro c5ddb3f333 feat(ui): add microphone mute control 2026-10-05 11:43:34 -03:00
alvaro a149f4ef8b fix(ui): simplify Vocero controls and correct session feedback 2026-10-05 11:30:47 -03:00
alvaro cdbff5cb0e fix: standardize Spanish user-facing copy 2026-10-05 10:24:33 -03:00
alvaro dfc1f663c7 refactor: standardize developer text and identifiers in English 2026-10-05 10:13:25 -03:00
alvaro 6b8c27fd76 docs: consolidate English documentation under root docs 2026-10-05 10:11:35 -03:00
alvaro b91762a927 chore: remove debug markdown files 2026-10-05 09:35:49 -03:00
alvaro e0b64dfb99 chore: remove old directory 2026-10-05 09:35:49 -03:00