patrick-motsch
43e310a41d
feat: map audio STT to recent caption speaker hints
...
Made-with: Cursor
2026-02-26 09:05:21 +01:00
patrick-motsch
5684a4d769
fix chat workflow sorting for mixed timestamp types
...
Use parseTimestamp when sorting messages and stats so INT workflows do not fail when DB rows contain timestamp values as both strings and floats.
Made-with: Cursor
2026-02-25 23:06:53 +01:00
36ce2facbc
feat: tested mistral api key
2026-02-25 14:04:53 +01:00
667c432485
aicorePluginMistral erstellt und bereit für API key und testing
2026-02-25 13:48:29 +01:00
258594f310
fix: stripe callback csrf rausgenommen
2026-02-25 09:00:12 +01:00
7578d8bf3e
feat: integrated stripe payment
2026-02-25 08:44:12 +01:00
patrick-motsch
f5143611b0
fix trustee 3-step ai call for documents
2026-02-24 22:49:08 +01:00
patrick-motsch
ea8cffee3c
fix: log teamsbot audio capture diagnostics in gateway
...
Read and log per-chunk capture diagnostics (trackId, readyState, rms, nativeSampleRate) from bot audioChunk messages to support root-cause analysis of silent audio streams.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 14:55:43 +01:00
Patrick Motsch
312163d34a
Merge pull request #100 from valueonag/feat/cursor-style-feature
...
fixed cursor feature
2026-02-23 23:05:11 +01:00
patrick-motsch
2dff6cd0af
fixed cursor feature
2026-02-23 23:01:28 +01:00
patrick-motsch
d020293f4b
fix: teamsbot audio STT - pass channels and skipFallbacks for known PCM16 format
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 22:59:53 +01:00
patrick-motsch
f6f42d8db7
phase 2 codeeditor and hotfixes voice
2026-02-23 22:09:27 +01:00
patrick-motsch
338f9522a5
codeeditor mvp phase 1 done
2026-02-23 18:35:36 +01:00
patrick-motsch
9d129f111f
fixes for roles
2026-02-23 17:13:50 +01:00
patrick-motsch
f35a90e428
fixes sync and ai tree
2026-02-22 22:34:07 +01:00
patrick-motsch
6b11d66766
fixes
2026-02-22 01:03:19 +01:00
patrick-motsch
2eeaf35990
sync trustee feature with rma
2026-02-22 00:07:33 +01:00
patrick-motsch
e1557e9cc9
trustee connections
2026-02-21 00:56:53 +01:00
patrick-motsch
9c23fc6c52
fix: CSRF exemption for bot endpoints, WS ping timeout, clean up debug logs
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-19 00:46:42 +01:00
patrick-motsch
f9aa35647b
sync features a and p
2026-02-19 00:31:32 +01:00
patrick-motsch
2d7da8a66d
fix: resolve STT AttributeError and int/str TypeError in teamsbot service
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-19 00:09:00 +01:00
patrick-motsch
7778325e5e
feat: add debugMode to config, filter bot own captions to prevent repeats
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 23:52:51 +01:00
patrick-motsch
b616688411
feat: add screenshot proxy endpoints for debug viewer (SysAdmin only)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 22:00:34 +01:00
patrick-motsch
e313055de6
log admin
2026-02-18 21:39:37 +01:00
patrick-motsch
3fa5b98f47
security: restrict system bot access to SysAdmin only
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 21:03:08 +01:00
patrick-motsch
1227324703
feat: differential transcript, fix bot name in WS handler, AI commands support
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 17:50:31 +01:00
patrick-motsch
6963719499
fix: use enum .value for responseChannel comparison - was silently dropping all responses
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:48:41 +01:00
patrick-motsch
a3b771b12a
fix: derive botName from system bot email, robust responseChannel comparison
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:32:16 +01:00
patrick-motsch
33daa8dc74
feat: handle voiceGreeting message type - TTS for bot join greeting
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:17:42 +01:00
patrick-motsch
5d40657aef
fix: dynamic bot name in SPEECH_TEAMS prompt + phonetic name trigger
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:12:48 +01:00
patrick-motsch
070e3cbd96
fix: safe access to botAccountEmail in _isBotSpeaker - was crashing WebSocket handler on first transcript
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:54:18 +01:00
patrick-motsch
a27307263f
fix: create SSE event queue on-demand so transcript/chat events are never silently dropped
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:44:12 +01:00
patrick-motsch
a3c92ae8d5
fix: load system bot credentials from DB and pass to browser bot for authenticated join
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 19:58:01 +01:00
patrick-motsch
ad254aafb1
feat: handle audioChunk messages from bot, STT via Google Cloud Speech
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 18:43:42 +01:00
patrick-motsch
de573fd834
refactor: add TransferMode, remove backgroundImageUrl and botAccount fields from config
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 18:34:24 +01:00
patrick-motsch
5dd3b9f894
fix: add per-variant test-auth endpoints to avoid Azure timeout
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 16:33:21 +01:00
patrick-motsch
cd9b405d2e
fix: increase test-auth timeout to 900s for 5 browser variants
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 13:46:23 +01:00
patrick-motsch
7b4be3dbc9
feat: accept botEmail/botPassword from request, auto-create system bot in DB
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 00:33:05 +01:00
patrick-motsch
f743932768
fix: fallback to any active system bot if mandate mismatch, add credentialDebug to response
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 00:03:01 +01:00
patrick-motsch
1b2ca9512f
debug: add logging to test-auth credential loading
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 23:45:47 +01:00
patrick-motsch
bddb039bde
docs(teamsbot): update test-auth docstring variant count
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 23:06:56 +01:00
patrick-motsch
b08355ee45
teams test auth bot
2026-02-16 21:37:37 +01:00
patrick-motsch
3f9d791688
disable auth: use system bot display name, do not send credentials to browser bot
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 20:37:09 +01:00
patrick-motsch
1b70c07026
Merge branch 'int' of https://github.com/valueonag/gateway into int
2026-02-16 10:03:43 +01:00
patrick-motsch
a67c7f8b81
feat(teamsbot): stop via AI intent (multilingual), initial session context summarization
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 10:03:21 +01:00
3aaa4790c2
Merge branch 'int' of https://github.com/valueonag/gateway into int
2026-02-16 09:30:41 +01:00
2c1927663d
fix:user invitations
2026-02-16 09:30:21 +01:00
patrick-motsch
4186ec6188
feat(teamsbot): stop command detection, session context for AI, context summarization for long sessions
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:29:03 +01:00
patrick-motsch
c7d1642f61
fix(teamsbot): improve AI prompt - less floskel, stricter response rules, no repetition, language switching support
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:02:43 +01:00
patrick-motsch
856b9f3c05
feat(teamsbot): system bot accounts with encrypted credentials, per-user settings, credentials removed from UI
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 00:16:02 +01:00
patrick-motsch
ef813a9304
feat(teamsbot): chat message handling, response channel (voice/chat/both), join mode (systemBot/anonymous/userAccount)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 00:07:42 +01:00
patrick-motsch
cc86b144ac
fix(teamsbot): filter bot's own captions from AI trigger, mark bot responses in context to prevent repetition
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 22:52:02 +01:00
patrick-motsch
33b6da0d18
fix(msft): use delegated OnlineMeetings.Read scope instead of app-only .Read.All
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 15:31:17 +01:00
patrick-motsch
02dedc972d
fix(teamsbot): SSE rate-limit 60/min, TTS message format for bot protocol
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 15:19:31 +01:00
patrick-motsch
729c6355b5
fix: increase bot HTTP timeout to 60s for auth flow
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 12:20:58 +01:00
patrick-motsch
ad5c9d10cd
feat(teamsbot): dedicated bot account support with authenticated join
...
- New config fields: botAccountEmail, botAccountPassword for dedicated MSFT account
- BrowserBotConnector passes credentials + backgroundImageUrl to bot service
- Service passes config credentials to connector in joinMeeting
- Enables: full language settings, virtual background, no lobby wait
- Fallback: anonymous join when no bot account configured
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 11:56:04 +01:00
patrick-motsch
91425809c3
fix(teamsbot): AI prompt priority rules, bot-name trigger overrides cooldown
...
- SPEECH_TEAMS prompt: Rule 1 (bot name mentioned) now has highest priority
and ALWAYS triggers a response, even for greetings/smalltalk
- Bot-name detection in transcript overrides cooldown timer (immediate trigger)
- Added multilingual instruction: AI responds in the language it's addressed in
- Voice interface: clean camelCase mapping (audio_content -> audioContent)
- Config save: added "config" to allowed update fields in interfaceFeatures
- Default TTS voices for common languages in connectorVoiceGoogle
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 11:48:44 +01:00
patrick-motsch
e01c6dcb95
feat(teamsbot): HTTP fallback for transcripts, debug logging for WebSocket
...
- HTTP POST endpoints: /bot/transcript/{sessionId} and /bot/status/{sessionId}
- Fallback for when Azure App Service blocks WebSocket upgrade
- Debug logging [WS-DEBUG] in WebSocket handler for message tracking
- Handle websocket=None in AI response pipeline (HTTP mode)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 11:05:58 +01:00
patrick-motsch
3777839a5c
feat(billing): scope parameter on /view/statistics endpoint
...
- New query parameter scope: personal/mandate/all
- personal: filters to only current user's transactions (ignores admin role)
- mandate: filters by mandateId parameter
- all: existing RBAC-filtered behavior (default)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 10:44:26 +01:00
patrick-motsch
e24ef42617
feat(teamsbot): AI voice test, config save, camelCase mapping, default voices
...
- Voice test endpoint generates sample text dynamically via AI in selected language
- Fixed config save: added "config" to allowed update fields in interfaceFeatures
- Clean camelCase mapping in interfaceVoiceObjects (audio_content -> audioContent)
- Default TTS voices for common languages in connectorVoiceGoogle
- Fixed updateFeatureInstanceConfig -> updateFeatureInstance with config field
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 10:08:50 +01:00
patrick-motsch
89166a8f70
feat(teamsbot): URL extraction, status mapping, voice test, improved logging
...
- URL extraction: _extractTeamsMeetingUrl() handles SafeLinks, invitation text, and clean URLs
- Status mapping: added in_meeting, launching, navigating to bot status map
- Voice test endpoint: POST /{instanceId}/voice/test for TTS preview
- Improved error logging in browserBotConnector (shows exception type + repr)
- Improved AI trigger logging in service (shows buffer size, cooldown state, trigger reasons)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 03:26:23 +01:00
patrick-motsch
7f63dba4aa
fixed path realEstate and bot connect
2026-02-15 02:57:02 +01:00
patrick-motsch
5d987e72fe
fix(teamsbot): Fix Invalid Date + pass language to browser bot
...
- Add getIsoTimestamp() to timeUtils for JS-compatible ISO 8601 strings
- Replace getUtcTimestamp() (epoch float) with getIsoTimestamp() for all
teamsbot session/transcript/response timestamp fields (startedAt, endedAt,
creationDate, lastModified, SSE event timestamps)
- Pass config.language to browser bot in join request for captions spoken language
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 01:26:27 +01:00
patrick-motsch
294f1a001c
fix(teamsbot): Use APP_API_URL for WebSocket URL to ensure https/wss
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 00:12:45 +01:00
patrick-motsch
c7def85a4b
feat(teamsbot): Replace bridge with browser bot architecture
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 00:04:39 +01:00
f2fb7fd739
fix:keine features wurden in app.py registriert
2026-02-14 17:50:58 +01:00
f9d2f2061e
Merge branch 'int' of https://github.com/valueonag/gateway into int
2026-02-14 17:32:49 +01:00
69aa73ed73
fixed complete langgraph workflow and information fetching
2026-02-14 17:31:39 +01:00
Stephan Schellworth
3ff3cfd51c
feat(realestate): RBAC catalog, template roles sync, instance role access rules
2026-02-14 13:18:39 +01:00
c2f2ed3b14
feat: extract bzo information
2026-02-14 13:16:08 +01:00
238ff61740
fix:included oereb kataster
2026-02-14 13:13:46 +01:00
fb6bac7d92
feat: fetch oereb kataster and return Wohnzohne
2026-02-14 13:13:46 +01:00
patrick-motsch
ae4dc9fa48
fix: skip STT fallbacks for teamsbot, run audio processing in background
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 18:17:47 +01:00
patrick-motsch
77151df0f4
fix: STT audioFormat scoping, automation import name, orphan FK cleanup
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 18:03:23 +01:00
patrick-motsch
367edd83e2
fix: add missing await on speechToText and textToSpeech async calls
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 17:46:02 +01:00
patrick-motsch
65128db713
fix: use original session user for bridge callbacks instead of system user (RBAC)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 17:26:56 +01:00
patrick-motsch
77cbc5803a
fix: use poweron.swiss domain for system user email (Pydantic rejects .local TLD)
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 17:12:04 +01:00
patrick-motsch
d88bacc4a9
billing fix
2026-02-13 14:43:45 +01:00
patrick-motsch
92ee130c0a
fix: convert timestamp to string for Pydantic v2 validation in teamsbot service
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:13:25 +01:00
patrick-motsch
3c566b58d0
mail for websocket fixed
2026-02-13 14:01:37 +01:00
patrick-motsch
e85aa8366d
fix route mail
2026-02-13 13:51:05 +01:00
patrick-motsch
3a9812a9e2
test websocket
2026-02-13 13:35:38 +01:00
patrick-motsch
fa530bfd4c
fixed route to media center
2026-02-13 13:12:21 +01:00
patrick-motsch
0a9347cdd2
fixed routes exceptions for teams com
2026-02-13 12:37:22 +01:00
patrick-motsch
b7e4efb3a3
teams bridge
2026-02-13 07:27:33 +01:00
patrick-motsch
edecfb002c
teamsbot
2026-02-13 00:00:35 +01:00
patrick-motsch
1ce125ac75
fixes
2026-02-12 01:40:00 +01:00
patrick-motsch
7051a6e35f
fixed rbac issues and sysadmin integration
2026-02-12 00:34:17 +01:00
patrick-motsch
eb33b3dd38
enhanced invitation
2026-02-10 10:56:30 +01:00
patrick-motsch
0e6d4130ad
fixed automation issue
2026-02-10 09:55:51 +01:00
patrick-motsch
b16420db41
fixed mandate routing
2026-02-10 01:44:21 +01:00
patrick-motsch
82badd9e4d
fixed mandate bootstrap
2026-02-10 00:35:29 +01:00
patrick-motsch
ab48e2e853
enhanced generic navigation tree
2026-02-10 00:10:07 +01:00
patrick-motsch
d98c31a4d1
logical fixes
2026-02-09 23:44:52 +01:00
patrick-motsch
7532841d9d
fixed mandate flag
2026-02-09 12:57:47 +01:00
patrick-motsch
1f3746aef5
streamlined bootstrap and initial config
2026-02-09 12:49:35 +01:00
patrick-motsch
887867acd0
billing rbac
2026-02-08 16:14:01 +01:00
patrick-motsch
8d28f6d77b
fiixed feature instance role access
2026-02-08 14:26:01 +01:00
patrick-motsch
f15ed2e380
fixes
2026-02-08 14:00:08 +01:00
patrick-motsch
1b55db4581
admin views fixes
2026-02-08 13:28:36 +01:00