Commit Graph

25 Commits

Author SHA1 Message Date
itsrubberduck
bfa83305e8 ci: add pre-push hook (auto-installed) and API/model smoke tests
- .githooks/pre-push: runs vue-tsc before every push; blocks TypeScript
  regressions locally without any manual developer setup
- postinstall: git config core.hooksPath .githooks activates the hook
  automatically on yarn install (yarn 4, enableScripts: true)
- tests/smoke/apiHandlers.smoke.test.ts: import-level smoke tests for all
  bug-report handlers + 3 core admin handlers — catches broken exports and
  top-level runtime errors without a DB or running server
- tests/server/bugReport.test.ts: 16 unit tests covering comment validation,
  contact-string building, model schema fields, status enum, and patch logic

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 10:46:56 +02:00
itsrubberduck
d8c27260da fix(pm): make bug-report screenshots and state restore actually work
Screenshots: html2canvas 1.4.1 only parses rgb/hsl and throws on color-mix(),
which the app uses app-wide; the throw was swallowed so no screenshot was ever
captured. Swap to modern-screenshot (native SVG foreignObject — supports
color-mix/oklch), capture before opening the dialog, surface failures instead of
hiding them, and show a capture spinner on the Bug button.

State restore: the old handler only patched local vars/flags and loaded the tree
— it never entered the monitor screen or created a backend session, so nothing
happened. New restoreBugReportState() reuses startMonitoring() to spin up a real
session for the same flight/scenario from the snapshot, overlays saved
variables/flags, and replays the captured comm log. The Python backend has no
mid-session resume, so the session restarts at the flow start and the captured
state id is surfaced in a banner.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 10:43:55 +02:00
itsrubberduck
013ac12241 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
3ea297f050 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
itsrubberduck
24137229a3 chore: add three.js dependency for 3D aircraft model
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:28:32 +01:00
itsrubberduck
be3a3887fc smoketests 2026-02-17 18:26:20 +01:00
itsrubberduck
54c1b47dc2 fix typescript errors and update dependencies 2026-02-17 18:13:04 +01:00
itsrubberduck
f7efaf1d7b Fix local sharp setup for Nuxt image processing 2026-02-15 15:47:06 +01:00
Remi
b3baa3f709 Adopt AGPL v3 licensing 2025-10-18 14:03:14 +02:00
Remi
649cae11bc feat: integrate llm-backed routing with fallback 2025-10-16 19:55:13 +02:00
Remi
526f74c3b1 Build decision flow editor and runtime integration 2025-09-20 18:33:32 +02:00
itsrubberduck
c01c7d2801 “Adopt Nuxt Image and replace landing video with static image 2025-09-17 20:07:02 +02:00
itsrubberduck
8eaace39d1 merge 2025-09-17 19:38:37 +02:00
itsrubberduck
9ff6f6c533 ⚖️ Update legal & privacy pages, add Nuxt Image module
* Updated  and  with new company details (Faktor Mensch MEDIA UG), updated email to , and refreshed  dates.
* Replaced references to old OpenSquawk UG with new entity information.
* Added  module to  for image optimization support.
* Adjusted  dependencies: added , ensured  is correctly listed.
* Regenerated  to include new dependencies (, High performance, secure and easy-to-use image optimizer. (ipx v2.1.1)

USAGE ipx serve

COMMANDS

  serve    Start IPX Server

Use ipx <command> --help for more information about a command., Usage: svgo [options] [INPUT...]

Nodejs-based tool for optimizing SVG vector graphics files

Arguments:
  INPUT                      Alias to --input

Options:
  -v, --version              output the version number
  -i, --input <INPUT...>     Input files, "-" for STDIN
  -s, --string <STRING>      Input SVG data string
  -f, --folder <FOLDER>      Input folder, optimize and rewrite all *.svg files
  -o, --output <OUTPUT...>   Output file or folder (by default the same as the
                             input), "-" for STDOUT
  -p, --precision <INTEGER>  Set number of digits in the fractional part,
                             overrides plugins params
  --config <CONFIG>          Custom config file, only .js is supported
  --datauri <FORMAT>         Output as Data URI string (base64), URI encoded
                             (enc) or unencoded (unenc)
  --multipass                Pass over SVGs multiple times to ensure all
                             optimizations are applied
  --pretty                   Make SVG pretty printed
  --indent <INTEGER>         Indent number when pretty printing SVGs
  --eol <EOL>                Line break to use when outputting SVG: lf, crlf.
                             If unspecified, uses platform default.
  --final-newline            Ensure SVG ends with a line break
  -r, --recursive            Use with '--folder'. Optimizes *.svg files in
                             folders recursively.
  --exclude <PATTERN...>     Use with '--folder'. Exclude files matching
                             regular expression pattern.
  -q, --quiet                Only output error messages, not regular status
                             messages
  --show-plugins             Show available plugins and exit
  --no-color                 Output plain text without color
  -h, --help                 display help for command, etc.).
2025-09-17 19:36:15 +02:00
itsrubberduck
c751d45090 add hotjar 2025-09-17 19:25:46 +02:00
Remi
e355d0ba18 Align public messaging and add news banners 2025-09-17 19:22:56 +02:00
itsrubberduck
ee90ebfe54 sehr schlechte erste version vom p 2025-09-15 20:04:04 +02:00
itsrubberduck
d4ce409641 claude änderungen 2025-09-15 11:53:50 +02:00
itsrubberduck
d77ac4a25e globales css hinzu 2025-09-15 00:00:03 +02:00
itsrubberduck
99b8c87536 ssr false 2025-09-14 23:34:13 +02:00
itsrubberduck
8528b2518b kann ein bisschen normalized sprechen 2025-09-14 23:20:01 +02:00
itsrubberduck
70db201abd webseite sieht gut aus 2025-09-14 21:36:45 +02:00
itsrubberduck
f17624518d neue landing page 2025-09-14 21:14:20 +02:00
itsrubberduck
4a1e4df391 add tailwind 2025-09-14 21:10:30 +02:00
itsrubberduck
94ea407402 init 2025-09-14 21:09:47 +02:00