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