25 Commits

Author SHA1 Message Date
itsrubberduck
ccab0e7116 feat(pm): add bug-report button with screenshot annotation and admin panel
- New BugReport MongoDB model (comment, contact, userId, screenshot, pmState, status)
- POST /api/bug-reports — authenticated submit; emails emanuel@faktorxmensch.com on receipt
- GET/PATCH /api/admin/bug-reports + /[id] — admin list, detail with screenshot, status toggle
- /pm: "Bug" button in HUD captures viewport screenshot (html2canvas), shows annotation
  canvas where testers can draw arrows; submits comment + contact + state snapshot
- /admin: new "Bug Reports" tab with open-count badge, screenshot expand, "Erledigt" toggle,
  and "In /pm öffnen" link that restores captured engine state via ?restoreBugReport=<id>

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 10:05:25 +02:00
leubeem
58f9bfad4c ci: make typecheck a real blocking gate; bump actions to Node 24 majors
The previous `vue-tsc --noEmit` step was a no-op: the root tsconfig uses
`files: []` with project references, so without `--build` it checks zero files
and always passes. Switch to `vue-tsc --build` (new `yarn typecheck` script)
and make the job blocking.

Fix the one error this surfaced: UsageEventDocument extended mongoose.Document,
whose `model` method collides with the `model: string` field. Use the
recommended pattern — a plain attrs interface passed to the Schema/Model
generics (hydrated docs still expose Document methods). Typecheck is now clean.

Bump actions/checkout@v5 and actions/setup-node@v5 to silence the Node.js 20
runtime deprecation (forced to Node 24 from 2026-06-16).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 15:28:27 +02:00
leubeem
f8fdd8bc79 feat(server): per-user AI usage tracking, cost alerting, and endpoint hardening
Usage tracking:
- new UsageEvent collection records every STT/TTS/LLM call per user with
  provider, model, volume (audio seconds, characters, tokens) and an
  estimated USD cost; self-hosted providers (Speaches/Piper) and cache
  hits record at $0
- pricing table for whisper-1, tts-1, gpt-5-nano & co. in server/utils/usage.ts
- weekly KPI mail gains an "AI-Nutzung & Kosten" section: weekly and
  rolling 30-day cost, per-kind breakdown, top 5 users by cost
- quota alert mail when rolling 30-day cost exceeds USAGE_ALERT_USD
  (default $5), at most once per calendar month (UsageAlertDelivery)

Hardening:
- /api/atc/say now requires an authenticated session (middleware
  exemption removed); useFlightLabAudio sends the bearer token
- /api/service/tools/latency requires auth (was a public LLM endpoint)
- per-user rate limits: PTT 20/min, say 60/min, latency 5/min
- cron endpoints (waitlist-drip, weekly-kpi-report) require a shared
  secret via ?secret= or x-cron-secret (CRON_SECRET, falls back to
  KPI_CRON_SECRET); allowed with a warning while unset so existing
  deployments keep working
- PTT records the actual transcribed audio duration for billing accuracy

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 23:17:03 +02:00
itsrubberduck
f38b47acbd Wochenreport 2026-05-06 17:38:36 +02:00
itsrubberduck
73b3d19e33 personal waitlist link 2026-02-17 19:04:52 +01:00
itsrubberduck
8f45c3397d fix typescript errors and update dependencies 2026-02-17 18:13:04 +01:00
Remi
55e02aca6c Add waitlist drip cron route 2025-11-20 21:10:50 +01:00
Remi
b602a16cef Brighten high-readability profiles and default to level 5 2025-10-18 21:39:23 +02:00
itsrubberduck
87b2e3b215 merge 2025-10-12 15:42:18 +02:00
Remi
5a4fa7737d Add admin notes and deletion tools for users 2025-10-07 20:59:43 +02:00
Remi
0bcaf85c23 Add waitlist invitation sending from admin 2025-10-07 12:34:02 +02:00
Remi
e3c76f452c Point bridge download to GitHub 2025-09-24 00:01:00 +02:00
Remi
839795f6a3 feat: allow manual unlocks in learn missions 2025-09-22 07:40:15 +02:00
Remi
ba93c494c9 Add session timeline logging and admin sessions view 2025-09-21 23:08:10 +02:00
Remi
10cae457f9 Enable flow-aware decision routing 2025-09-21 21:16:33 +02:00
Remi
cf6748b9bc Build decision flow editor and runtime integration 2025-09-20 18:33:32 +02:00
itsrubberduck
e45fedb62b Fix duplicate schema index warning 2025-09-20 12:01:12 +02:00
Remi
e861578e4e Translate learn page and add audio speed control 2025-09-18 23:57:39 +02:00
Remi
f30d671b0f Persist learn progress per user 2025-09-18 23:30:55 +02:00
Remi
3efd64a5b2 Finalize admin tools and transmission fault flow 2025-09-18 14:03:26 +02:00
Remi
3e4c1093b8 feat: add manual invitation generator 2025-09-17 20:26:33 +02:00
Remi
1741405c3f Add password reset flow 2025-09-17 16:21:11 +02:00
Remi
e6755d2042 Revise landing messaging and add news feed 2025-09-17 15:44:41 +02:00
Remi
c46ac3765d Add roadmap voting and waitlist stats updates 2025-09-16 18:37:13 +02:00
Remi
147761311d Implement authentication, waitlist, and logging upgrades 2025-09-16 17:28:52 +02:00