Commit Graph

53 Commits (ee795237db72f868bb2343482d88977bc572e5c6)

Author SHA1 Message Date
boban ee795237db fix: reminder validation + remove dead reminder_at in EventPlannerService
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 22:39:52 +02:00
boban b88093ed46 Fix: 0 credits for farewell chat messages
Abschlussnachrichten (danke, ok, tschüss, passt, ...) kosten 0 statt 5
Credits — keine Leistung erbracht, keine Verrechnung.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 08:30:10 +02:00
boban 89cb058e83 Fix: parseJson chat responses, force override for conflicts
- parseJson: plain text (kein { oder [) → type=chat statt type=unknown
  Behebt WARNING für normale Chat-Antworten wie "Alles klar! [END]"
- AgentAIService Prompt: Regel 12 — Konflikt-Handling mit force:true erklärt
  AI fragt nach Überschneidung und sendet force:true wenn User bestätigt
- AgentActionService: Duplikat-Check bei force=true überspringen
  damit erzwungene Events auch bei gleichem Titel+Datum gespeichert werden

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 08:22:52 +02:00
boban 7d50647f39 Fix: strip markdown backticks from OpenAI JSON response
Vorher: preg_match mit Capture-Group schlug fehl wenn ``` am Ende fehlt.
Nachher: zwei preg_replace entfernen öffnendes ```json und schließendes ```
unabhängig voneinander — robuster gegen unvollständige Codeblöcke.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 08:09:44 +02:00
boban 9beb8c15a3 Fix: unknown type logging, event_update fallback to create, multi-event example
- AgentAIService: Raw response + type=unknown immer loggen (Debug)
- AgentActionService: event_update ohne Kandidaten + Zeitangabe → neu erstellen
  statt mit 'failed' abbrechen
- AgentAIService Prompt: Pflicht-Beispiel Reifenwechsel+Volleyball als
  Multi-Event mit reminder_at, explizit FALSCH: task anlegen markiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 08:04:02 +02:00
boban bcc1c0aac2 Fix: event vs task distinction, event reminder support, correct credit calculation
- AgentChatController: _multi hatte kein type-Key → wurde als 'chat' gewertet
  → nur 5 Credits statt Action-Credits. Fix: isset(_multi) erkennt Multi-Actions
- AgentAIService: EVENT vs TASK Entscheidungsregel + reminder_at für Events
  Event mit Erinnerung → immer event+reminder_at, niemals als Task anlegen
- EventPlannerService: reminder_at beim Event-Erstellen speichern (UTC)
- Event Model + Migration: reminder_at + reminder_sent Felder ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 07:49:39 +02:00
boban e205186465 Fix: ignore all-day conflicts, verify chat credits
- Ganztägige Konflikt-Prüfung: EventPlannerService hatte bereits
  ->where('is_all_day', false) in hasConflict() + hasMultiDayConflict()
  AgentActionService delegiert dorthin — kein zusätzlicher Fix nötig
- Chat-Credits: immer 5 Credits pauschal (vorher: nur 1. Nachricht einer
  Session, Follow-ups = 0 + kein Log)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 07:36:01 +02:00
boban 68aa62db6f Fix: korrekte Credit-Verrechnung + Duplikat-Schutz
- Credits nur bei status='success': Konflikt/Fehler/Failed → 0 Credits
- Multi-Action: Credits proportional zu erfolgreichen Aktionen
- AgentActionService: Duplikat-Check vor Event/Task/Notiz-Anlage
- Multi-Action-Status: 'success'/'partial'/'failed' statt immer 'success'
- Gilt für Web (Livewire/Agent/Index) und API (AgentChatController)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 07:31:36 +02:00
boban 24f43be627 Test: webhook5 2026-04-19 07:17:01 +02:00
boban da647db4ca Test: webhook3 2026-04-19 07:15:44 +02:00
boban d90b5d5ae2 Test: webhook2 2026-04-19 07:03:36 +02:00
boban f48b0b8114 Test: webhook 2026-04-19 07:01:09 +02:00
boban b46b6d2720 Test: webhook 2026-04-19 06:57:28 +02:00
boban a13cd56f8d Test: webhook 2026-04-19 06:50:34 +02:00
boban ee63529289 Fix: ignore all-day events in conflict detection 2026-04-19 06:45:30 +02:00
boban 7bab29b5eb Fix: system prompt — multi-action, Austrian time expressions, dynamic UTC offset 2026-04-19 06:43:24 +02:00
boban d7a70a0e9b Fix: favicon light/dark mode separate SVG files 2026-04-19 04:30:10 +02:00
boban fac177da70 Fix: favicon dark mode clean 2026-04-19 04:25:29 +02:00
boban 6fb3f16f16 Fix: favicon dark mode correct 2026-04-19 04:23:52 +02:00
boban 4a10c71c89 Fix: separate favicons for dark/light mode 2026-04-19 04:20:02 +02:00
boban 53f3e60044 Fix: favicon dark mode support 2026-04-19 04:05:03 +02:00
boban e23b852488 Fix: DB name unified to aziros 2026-04-19 02:14:45 +02:00
boban ed098ba59b Feature: logos, favicon, layout fixes 2026-04-19 01:45:44 +02:00
boban 79397797b1 Fix: staging build with relative font URLs 2026-04-19 01:44:05 +02:00
boban 601c0ecb77 Build: staging assets 2026-04-19 01:24:12 +02:00
boban f1acec3af5 Fix: npm build in setup.sh 2026-04-19 01:16:29 +02:00
boban 431f1b80a9 Fix: export env vars in sudo context 2026-04-19 01:11:27 +02:00
boban 707517bc39 Add: CORS config for all environments 2026-04-19 01:04:46 +02:00
boban 2ca74dd80e Fix: APP_API_URL for version check 2026-04-19 00:58:15 +02:00
boban 7c4884c1a0 Fix: complete deploy script, ASSET_URL empty for staging/prod
- deploy.sh: mkdir + chmod for storage/bootstrap added
- deploy.sh: SCRIPT_DIR fixed for source path
- src/.env.staging + production: ASSET_URL/LIVEWIRE_ASSET_URL cleared (local only)
- setup.sh SCHRITT 9+11: already correct, no changes needed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 00:44:12 +02:00
boban 2a2c373bd3 Fix: CORS location block for build assets 2026-04-19 00:20:15 +02:00
boban b251b9b48f Fix: CORS headers staging 2026-04-19 00:13:02 +02:00
boban c9d5e5af21 Fix: use script directory instead of ~/aziros 2026-04-19 00:07:52 +02:00
boban fb7dcf2629 Fix: build per server, remove build from git
- src/public/build/ removed from git tracking
- .gitignore + src/.gitignore: /public/build added
- deploy.sh: npm ci + npm run build:staging/prod added back

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 00:04:34 +02:00
boban a693cecb61 Fix: include build assets in git, remove npm from deploy
- Production build committed (socket.aziros.com:443, forceTLS=true)
- deploy.sh: removed npm install + npm run build steps
- Build strategy: build locally before deploy, commit to git
- Staging build: run npm run build:staging before staging deploy

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 00:02:04 +02:00
boban ca61f6f65a Fix: staging build URLs, healthcheck, docker-compose env_file
- Staging build created: socket.staging.aziros.com:443, forceTLS=true
- Root .env recreated for Docker Compose YAML interpolation (${DB_*})
- Old build assets removed from git tracking (src/public/build/ gitignored)
- Healthchecks use $$DB_ROOT_PASSWORD in all compose files (verified)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 23:57:45 +02:00
boban 8a42240c2f Fix: correct order in Laravel setup step 2026-04-18 23:47:14 +02:00
boban aa78b40c6c Fix: export env vars for docker compose 2026-04-18 23:40:04 +02:00
boban a7478cce44 Fix: add safe.directory for git 2026-04-18 23:31:11 +02:00
boban 28fcd48a06 Fix: DB healthcheck use DB_ROOT_PASSWORD 2026-04-18 23:28:09 +02:00
boban 5bcc381c87 Improve: auto copy SSH key
and fetch .env from local server
2026-04-18 23:23:36 +02:00
boban f87b464af0 Improve: auto fetch .env from local server 2026-04-18 23:20:24 +02:00
boban 652056a63d Fix: check .git dir not just aziros dir 2026-04-18 23:16:48 +02:00
boban 65016869b7 Improve: git token auth in setup.sh 2026-04-18 23:06:17 +02:00
boban ef3b43ccbd Improve: setup.sh + deploy.sh complete 2026-04-18 22:58:04 +02:00
boban fcc3bf2529 Build: add staging assets to git 2026-04-18 22:55:26 +02:00
boban daafa9c042 Remove public/build from gitignore 2026-04-18 22:53:41 +02:00
boban 977ddf5ef6 Improve: deploy script with git pull, npm build, composer 2026-04-18 22:49:55 +02:00
boban 55f560d554 Add: server setup script 2026-04-18 22:25:35 +02:00
boban ae5294ce1d Rename: local → development compose 2026-04-18 21:52:10 +02:00