Commit Graph
334 Commits
Author SHA1 Message Date
Moritz Graf c9e4ba519a fix(silverbullet): bypass forwardauth for service_worker.js and static assets to eliminate redirect error 2026-09-27 21:24:50 +02:00
Moritz Graf 41df233840 feat(wiki): isolate silverbullet pvc, add pre-commit wall, family group, and audit alert 2026-09-27 21:15:10 +02:00
Moritz Graf b54b9fdb53 chore(infra): update knowledge-wiki submodule and authentik terraform state 2026-09-27 11:41:10 +02:00
Moritz Graf 5d3d958ca1 feat(wiki): implement Google OKF v0.2 migration, decoupled audit CronJob, and SilverBullet web portal
- Update OpenClaw memory-wiki renderMode to 'native'
- Add decoupled Kubernetes CronJob openclaw-wiki-audit for OKF health checks
- Deploy SilverBullet PWA at wiki.moritzgraf.de with shared volume and Git auto-commit
- Add SilverBullet forward-auth proxy provider and admin policy in Authentik Terraform
- Update knowledge-wiki submodule to OKF v0.2 schema migration commit
2026-09-27 11:34:04 +02:00
Moritz Graf d2dac3470f feat(moritzgrafde): rewrite personal website with Vue 3, Vite, and Tailwind CSS
- Replace legacy Hugo static site generator and hugo-goa theme with a modern Vue 3 + Vite + TypeScript application
- Implement Clean Enterprise design system using Tailwind CSS with light/dark mode support
- Position website around Cloud Platform & Infrastructure Leadership (GCP & AWS central platforms, Kubernetes at scale, enterprise spin-off governance, and systems depth) without chronological resumes
- Add 6 comprehensive capability dossiers and verified credential badges (CKA, PSM II, M.Sc.)
- Implement interactive skill matrix with real-time text search and category filtering
- Add engineering philosophy section, contact channels with one-click email copying, and Impressum modal
- Configure multi-stage Dockerfile (Node builder to Nginx runtime) with custom gzip, caching, and security headers
- Update build scripts (Makefile, build.sh), .gitignore, and AGENTS.md documentation across the monorepo
2026-09-26 20:37:53 +02:00
Moritz Graf afb80bbba8 feat(projects): migrate moritzgrafde website into monorepo and document in AGENTS.md 2026-09-26 11:58:30 +02:00
Moritz Graf 945d80b232 chore(k8s,dns): decommission corona workloads and prune DNS records 2026-09-26 11:50:46 +02:00
Moritz Graf c91ab16b9b feat(sasch40): add printable medieval retro A4 proclamation flyer PDF with story and QR code 2026-09-25 10:07:03 +02:00
Moritz Graf bf15c2e9cb feat(sasch40): deliver schankraum v6 and zero-occlusion hotspot positions
- Replace schankraum with v6: exactly one Queen Verena with tiara on upper gallery, Lutz in hot tub, Armend at forge, rustic beer taps, no crowns at patron tables, seamless secret oak trapdoor without text
- Rename Papa Markus button to 'Markus (Vater)' and place above his head in stall window to avoid facial/body occlusion
- Relocate character hotspot badges across all tavern scenes (Verena, Lutz, Armend, Amy, Mane, Viktor, Pü) onto railings, table rims, and lower body levels to guarantee zero occlusion of faces or bodies
2026-09-25 09:46:45 +02:00
Moritz Graf 109d47d8d3 feat(sasch40): authentic 3 sisters portraits, 9:16 responsive stage with medieval ornaments, and hotspot fixes
- Recreate 16-bit LucasArts portraits for Saskia, Maja, and Miriam matching real-life source photos
- Add 3 sisters showcase in Act II intro modal and golden portrait badges on goal platforms
- Fix Act III background scaling: lock scene to 9:16 aspect ratio with medieval ornamental side borders and corner brackets
- Ensure 100% full background visibility with zero cropping and lock hotspot buttons to image features across all screen sizes
- Fix cache issue by referencing schankraum_v5.jpg with cache buster query
- Re-position NAT button to feet (top: 70%) and Mario button to knees (top: 79%) to eliminate face occlusion
2026-09-25 09:23:31 +02:00
Moritz Graf 07fef4547c feat(sasch40): overhaul Act III tavern schankraum and canonical papa markus scene
- Generate and integrate authentic 16-bit LucasArts taproom scene with Theke, brass taps, bartender, drinking patrons, and bunker trapdoor
- Realign Schankraum hotspots for Verena, Lutz in hot tub, Armend at forge, room transitions, and centered bunker trapdoor
- Update Papa Markus canonical portrait and Taiwan street dining scene to be bald and clean-shaven with glasses and modern attire
- Enforce hotspot zero-occlusion rules for signposts, characters, and mobile room navigation bars
- Document Papa Markus specifications, tavern invariants, and layout guidelines in AGENTS.md
- Add automated sister capture and playthrough recording scripts
2026-09-25 08:36:39 +02:00
Moritz Graf b61cf84082 fix(sasch40): bald Markus portrait & scene, authentic Schankraum taproom, and cleaned up Hinterland navigation 2026-09-24 22:15:08 +02:00
Moritz Graf fbc4158016 feat(sasch40): v4.0 full-screen mobile conversion, Hinter den Bergen room with Liars Dice, beat-only concert audio, and updated art 2026-09-24 21:11:12 +02:00
Moritz Graf 8a0b65c3fa feat(sasch40): major overhaul with doodle jump, party bunker, and guitar hero
- Add global settings & pause modal (gear icon) with mute and reset, removing obsolete bag button
- Extend Prologue with Flo Maier (castle fire game over & Löschzug restart) and Viktor (vampire bite game over & Knoblauch restart)
- Rebuild Akt II as 3-level vertical Doodle Jump climber to rescue sisters Saskia, Maja, and Miriam with custom pixel portraits
- Update Akt III Schankraum with seamless oak floor, double-tap 'Luke zum Party Bunker', duel intro modals, and Hansi's departure in Hinterland
- Rebuild Akt IV as 3-lane medieval Guitar Hero rock concert with live crowd meter, combo multipliers, and Hansi duo
- Update AGENTS.md architectural documentation and playtest test suite
2026-09-24 18:22:28 +02:00
Moritz Graf 6374ba9e8a feat(sasch40): add Nebenraum, Marktplatz minigame & trapdoor to Hinterzimmer
- Split GameBoy chassis brand header: 'AKT III' on clean dedicated second line
- Add 5-room tavern architecture: Schankraum, Nebenraum, Marktplatz, Hinterland, Hinterzimmer
- Introduce Nebenraum (Kemenate/Atelier) with Amy at her easel painting the neon banner and Zuluman magic mirror
- Update Marktplatz scene with Mario juggling chainsaws/hops and NAT on the festival stage
- Implement Wildschwein-Schnick-Schnack-Schnuck minigame against NAT (Best of 3, Keiler > Dickicht > Lanze > Keiler)
- Replace secret tap with cellar floor trapdoor ('Luke zum Hinterraum') initially invisible
- Update automated playtest covering all 25 screens with zero console/network errors
- Document all architectural decisions in projects/sasch40/AGENTS.md
2026-09-24 12:37:56 +02:00
Moritz Graf bbae8a8c78 docs(sasch40): document cache busting, easter egg invisibility, and localStorage persistence 2026-09-24 11:10:09 +02:00
Moritz Graf e45dbc2e19 feat(sasch40): improve Act III, add state persistence and fix portraits
- Fix character portrait crops and version assets to portrait_v2, ensuring correct identities (resolving Nat/Verena mismatch)
- Update Schankraum scene image and configure Nginx cache-control to prevent stale asset caching
- Make secret beer tap completely invisible in tavern until clicked
- Reposition room hotspots in Act III to eliminate overlapping click targets
- Add exit button [✕] to Bavarian Gstanzl duel minigame
- Implement localStorage persistence in gameStore to maintain progress across page reloads
- Enable clean game state and storage reset when clicking "Nochmal spielen"
- Expand automated playtest script to cover Nat dialogue, duel exit, reload persistence, and game restart
2026-09-24 11:03:22 +02:00
Moritz Graf 7a7038e2c2 feat(sasch40): multi-room tavern, authentic character portraits, pre-level start screens & bollerwagen redesign 2026-09-24 10:02:57 +02:00
Moritz Graf 4488749d6f docs(sasch40): document architecture decisions, agent rules, and character system in AGENTS.md 2026-09-24 07:59:01 +02:00
Moritz Graf f6d39f01da feat(sasch40): polish retro game layout, clean tavern scene, and improve mobile HUD
- Hide GameBoy D-Pad and action buttons during RPG and dialogue modes
- Add prequel intro landing screen for QR code arrivals with Haumdaucher lore
- Clean baked-in text from tavern scene background and streamline navigation bar
- Add safe-zone margins and HTML HUD in platformer and party express acts
- Optimize Certificate modal layout and scoring breakdown for mobile screens
- Add automated end-to-end browser playtest script with Puppeteer
- Accelerate Docker build via native pre-compilation
2026-09-24 07:55:42 +02:00
Moritz Graf 5852479c21 feat(sasch40): add retro birthday game subproject and k8s deployment
- Add Vue 3 + Vite + TypeScript retro game: 'Saschas Kronkorken Kreuzzug: 40 Jahre Bass & Gerstensaft'
- Add dynamic GameBoy layout: controls visible only during arcade modes, fullscreen during dialogue and tavern
- Add QR code welcome & prequel screen with lore, feature preview, and audio hints
- Add competitive party highscore and ranking breakdown on royal certificate
- Add dedicated individual 1:1 character portraits for Sascha, Verena, NAT, Hansi, Mop, Lutz, Armend, Amy, Mane, Pü, and Mario
- Add Dockerfile, Makefile, and K8s deployment at sasch40.haumdaucher.de
- Update openclaw timeout configuration
2026-09-23 21:56:34 +02:00
Moritz Graf d11a84a0d3 fix(openclaw): use base64 patch for garmin_mcp workouts normalization in init script 2026-09-20 08:09:58 +02:00
Moritz Graf f2ef5a8834 fix(openclaw): enforce sportType integrity on Garmin workout uploads 2026-09-20 08:06:06 +02:00
Moritz Graf 80a056f720 docs(bootstrap): document single-node cluster upgrade procedures and modernize init.sh
- Update init.sh with smart checkout, patch application, sync-inventory alias, and runbook output
- Rewrite bootstrap/README.md with step-by-step upgrade guide, architectural invariants, and troubleshooting
- Update bootstrap/AGENTS.md with single-node operational rules and OS constraints
2026-09-19 22:58:22 +02:00
Moritz Graf 87649e6e22 chore(bootstrap): upgrade kubespray to release-2.28 and kubernetes to v1.32.13
- Bump Kubespray baseline to release-2.28 (last release supporting Ubuntu 20.04)
- Upgrade Kubernetes control plane and node to v1.32.13
- Configure single-node cluster settings (drain_nodes: false)
- Add patch for Kubespray v1beta4 kubeadm preflight error handling
- Update init.sh, AGENTS.md, and README.md with two-phase upgrade instructions
2026-09-19 22:57:19 +02:00
Moritz Graf c9e21c082d chore(wiki): update knowledge-wiki submodule pointer 2026-09-19 21:06:42 +02:00
Moritz Graf a7b93ca34a feat(openclaw): add chart-to-chat skill to prompt and update PATH for dct 2026-09-19 21:06:07 +02:00
Moritz Graf 18a7292844 fix(dns,k8s): add moritzgraf.de apex A record, modernize ingress, and resolve cluster alerts
- terraform: add ovh_domain_zone_record.moritzgraf_domain pointing to cluster IP
- k8s/web: modernize Ingress to networking.k8s.io/v1 with traefik class and auto-renew TLS certificate
- k8s/backup: set activeDeadlineSeconds and backoffLimit: 3 on gdrive-to-gphotos, clean dead pods
- k8s/openclaw: set failedJobsHistoryLimit: 1 on wiki backup cronjob and purge stale failed job
- k8s/coder: increase postgresql CPU limit to 500m to eliminate CFS CPU throttling
2026-09-19 18:19:54 +02:00
Moritz Graf 79fa817480 feat(openclaw): enable itguy autonomous weekly health audit and 3-repo architecture 2026-09-19 16:58:23 +02:00
Moritz Graf 474af29c4d feat(openclaw): integrate YouTube and Google Maps Platform MCP skills and GCP infrastructure 2026-09-18 11:46:10 +02:00
Moritz Graf bdfd5f5057 feat(calendar): update OpenClaw calendar prompt with RRULE, transparency, reminders, free slots, and move capabilities 2026-09-18 11:29:49 +02:00
Moritz Graf 0282b82c7a fix(openclaw): increase timeout, bind heartbeat to main, add shared hardlinks, cleanup cron, and enrich subagent topic prompts 2026-09-18 07:57:46 +02:00
Moritz Graf 87b09ed55d feat(openclaw): add doktor, itguy, merged grabengasse_media and pin 10 telegram topics 2026-09-17 14:12:49 +02:00
Moritz Graf e9376c6552 fix(openclaw): configure timeout and provider order for glm-5.3-flash 2026-09-17 13:38:54 +02:00
Moritz Graf 10a94c3512 feat(openclaw): enable grill-me skill in skills.entries 2026-09-17 13:34:53 +02:00
Moritz Graf c1cd638039 feat(openclaw): add read-only github mcp server with tool search 2026-09-17 11:09:08 +02:00
Moritz Graf a93c1e3510 chore(wiki): update knowledge-wiki pointer to 20e8556 2026-09-17 09:47:39 +02:00
Moritz Graf e5fa7c6ff3 feat(openclaw): optimize Garmin tool calling with parameter signatures and fast-path 2026-09-17 09:42:20 +02:00
Moritz Graf ea8ce29574 chore(wiki): update knowledge-wiki pointer to dc273a3 2026-09-17 09:30:34 +02:00
Moritz Graf 2747e07148 fix(openclaw): preserve live garmin tokens on PVC and add garmin-auth MFA instructions 2026-09-17 09:28:13 +02:00
Moritz Graf 3e0922c5fa fix(openclaw): enforce dynamic chat/thread routing and single ask_user prompt for brother printer 2026-09-17 09:05:23 +02:00
Moritz Graf aad2dc874d feat(openclaw): integrate Brother HL-L8240CDW duplex laser printer with interactive Telegram options 2026-09-17 08:14:26 +02:00
Moritz Graf d8c95940a1 chore(openclaw): update garmin oauth tokens 2026-09-16 11:23:55 +02:00
Moritz Graf fd0633dace feat: add public hosting ingress, minio credentials, and skills for openclaw 2026-09-16 09:06:16 +02:00
Moritz Graf 707a1b02ef feat(openclaw): implement 9-agent specialist architecture and agents-as-code (ADR 0001) 2026-09-16 08:29:29 +02:00
Moritz Graf bcff777228 feat(openclaw): configure calendar-id-regensburg for HaumdaucherEvent Calendar 2026-09-15 22:42:33 +02:00
Moritz Graf ce025f4842 fix(openclaw): set bootstrapMaxChars to 60000 for agent defaults 2026-09-15 22:35:02 +02:00
Moritz Graf 5c3ff03124 feat(openclaw): update prompt with calendar color coding, conflict guard, and prep checklists 2026-09-15 22:28:30 +02:00
Moritz Graf 115ca3c80e feat(openclaw): add Bring! shopping lists MCP integration and multi-list support 2026-09-15 22:16:58 +02:00
Moritz Graf c7d0d471b6 feat(openclaw): add GrafFamily calendar ID to openclaw-secrets 2026-09-15 22:05:09 +02:00