Commit Graph

95 Commits

Author SHA1 Message Date
Patrick Plate 02844e4c4a added doc 2026-06-22 11:38:09 +02:00
Lumen e18136baa4 Handover: homelab release tooling for Work Lumen (runbook + template + publish script) 2026-06-22 11:35:03 +02:00
Lumen 1603ddcd5c Homelab release tooling: runbook + port registry + homelab-publish.sh switch script 2026-06-22 11:34:20 +02:00
Patrick Plate ff58ec6add lumen-exchange: cannamanage public-hosting readiness + open auth blocker (for Work Lumen) 2026-06-18 21:47:22 +02:00
Patrick Plate fd84071489 chore(homelab): retire git-sync + mirror Gitea, git.plate-software.de now proxies single TrueNAS Gitea 2026-06-15 14:02:49 +02:00
Patrick Plate 67ed0edbe5 chore(homelab): preemptively mirror inspectflow.wiki via git-sync 2026-06-15 09:49:20 +02:00
Patrick Plate b7ef026dcd chore(homelab): add inspectflow to git-sync mirror repos 2026-06-15 09:46:57 +02:00
Patrick Plate 1a0a56a626 chore(java): consolidate mss-failsafe to single canonical copy
Replace the stale multi-module java/mss-failsafe skeleton (old user-management
prototype) with the active single-module machine-safety inspection app that was
living in its own standalone repo at the repo root.

- Remove old java/mss-failsafe/ multi-module tree (mss, userdata, userManagement,
  mssfailsafe.datalayer, mssfailsafeWeblayer) incl. committed build artifacts
- Add the active app (PrimeFaces 11 / JSF 2.3 / Hibernate 5.6 / iText / POI)
  flattened into java/mss-failsafe/ as the only mss-failsafe in git
- Working tree captured = master tip 2a142b5 + in-progress uncommitted work
  (incl. .github/*.instructions.md AI-context files)
- Archive the standalone repo's 33-commit history in GIT_HISTORY_ARCHIVE.md
  since its .git was not migrated

This is the source of truth / base for the upcoming upgraded rewrite.
2026-06-13 19:55:28 +02:00
Patrick Plate 7a573d7193 docs(lumen-exchange): CannaManage local Docker testing + Playwright e2e plan for Work Lumen
Why curl wasn't enough (hydration + missing auth token), the bug catalogue
(hydration crash, PWA middleware, consent principal bug, and the systemic
'frontend never sends the access token' issue), how to run the stack locally
on the Mac, and the concrete Playwright real-token e2e suite to implement.
2026-06-13 11:00:13 +02:00
Patrick Plate 57800f2518 chore(git-sync): add cannamanage.wiki to bidirectional sync repos 2026-06-12 08:55:45 +02:00
Patrick Plate 4f4372038c feat(lumen-exchange): 420cloud competitor analysis + git-sync bidirectional mirror
- Scraped 420cloud.io: feature matrix, AGB pricing analysis, Club Map legal risk
- Strategic recommendations for Sprint 4: compliance PDF, PWA, QR ID, federation
- Research agenda for Work Lumen (Amazon Q deep dive)
- Add plans/git-sync/ Docker container for IONOS→TrueNAS bidirectional sync
2026-06-12 08:52:36 +02:00
Patrick Plate 86d54a4f28 chore(homelab): update mcp.json after roo-zoo-semble zip 2026-06-11 10:17:55 +02:00
Patrick Plate aa9d877233 Merge branch 'chore/homelab/roo-zoo-semble-zip' 2026-06-11 10:17:33 +02:00
Patrick Plate 4760628661 chore(homelab): zip Zoo Code extension with Semble indexing for roo/zoo 2026-06-11 10:17:17 +02:00
Patrick Plate 31dc6d2174 docs(lumen-exchange): CannaManage code confirmed on IONOS + Work Lumen's code request 2026-06-11 09:59:21 +02:00
Patrick Plate e653d487a8 docs(lumen-exchange): request Sprint 1 code push to IONOS for Sprint 2 start 2026-06-11 09:57:38 +02:00
Patrick Plate 6936675af2 docs(lumen-exchange): merge reply and context update 2026-06-11 09:49:41 +02:00
Patrick Plate 49b0c8b285 docs(lumen-exchange): Homelab Lumen reply + update shared context with Work Lumen's eAU migration details 2026-06-11 09:49:41 +02:00
Patrick Plate e857c1b781 docs(lumen-exchange): first message from Work Lumen to Homelab Lumen 2026-06-11 09:40:55 +02:00
Patrick Plate 649096fc5b docs(lumen-exchange): merge initial exchange folder — README, hello note, shared context + open questions 2026-06-11 09:10:29 +02:00
Patrick Plate c8be9516a8 docs(lumen-exchange): create shared mailbox for two Lumen instances via git.plate-software.de 2026-06-11 09:10:29 +02:00
Patrick Plate c2f4c8fc39 chore(homelab): catchup push — roo modes, mcp servers, cannamanage docs, homelab plans 2026-06-11 09:02:28 +02:00
Patrick Plate 1859ccd1d6 chore(homelab): add homelab plans, frpc deploy script, odysseus workspace, heretic docs 2026-06-11 09:02:19 +02:00
Patrick Plate 17d14aae09 docs(cannamanage): update wiki pages and sprint plans + brand pipeline doc 2026-06-11 09:02:14 +02:00
Patrick Plate bf721c1379 feat(mcp): update bigmind/mcp-image-gen/webscraper servers; add image-gen batch scripts 2026-06-11 09:02:09 +02:00
Patrick Plate 0cb94122bf chore(roo): add pic-gen mode rules, update mcp.json and new-mcp-server skill 2026-06-11 09:01:58 +02:00
Patrick Plate 5692854ec4 fix(roo): merge anti-loop guardrails 2026-04-10 23:27:35 +02:00
Patrick Plate 9453aecf0b fix(roo): add anti-loop guardrails to prevent autonomous session resumption
- Add Rule 9 (Anti-Loop Guardrail) to 01-bigmind-core.md: detect 2+ identical
  partial sessions and surface the loop to user instead of auto-resuming
- Add partial=history clause to Rule 1: partial/blocked/abandoned outcomes are
  historical records only, never task queue items
- Add focus guard to memory_announce_focus: must reflect current user message,
  not prior session outcome; use 'Awaiting user task assignment' if no task yet
- Add .roo/rules/06-anti-loop.md: global injection for ALL modes overriding
  any mode-specific 'do the task immediately' behavior
- Add mode interaction safety clause to 00-identity.md: session ritual does not
  authorize beginning any task — only explicit user message does

Root cause: pic-gen 'do the task' personality + BigMind context inference
produced 6 identical partial branding sessions in a loop.
2026-04-10 23:27:32 +02:00
Patrick Plate 1d1e70776f docs(plans): add heretic encoder swap task for FLUX.2 Klein uncensored generation 2026-04-10 20:32:05 +02:00
Patrick Plate 1d8849cb41 fix(mcp-image-gen): confirmed working FLUX.2 Klein encoder filename
- CLIPLoader clip_name: qwen_3_4b_klein.safetensors (from Comfy-Org/vae-text-encorder-for-flux-klein-4b)
- VAE: flux2-vae.safetensors (321MB, same repo)
- Live test confirmed: 2.1MB photorealistic 1024x1024 PNG in 52.43s on RX 7900 XTX
- Test: assert clip_name == qwen_3_4b_klein.safetensors
- 37/37 tests pass
2026-04-10 20:29:18 +02:00
Patrick Plate 40c91edf2f fix(mcp-image-gen): merge CFGGuider workflow fix for FLUX.2 Klein 4B 2026-04-10 20:21:16 +02:00
Patrick Plate 4a99a3625a fix(mcp-image-gen): rewrite flux2_klein_heretic workflow with CFGGuider + correct node types
- Replace FluxDisableGuidance+BasicGuider chain with CFGGuider (cfg=5)
- CLIPLoader: add device='default', keep type='flux2'
- UNETLoader: weight_dtype='default' (not fp8_e4m3fn — avoids dimension mismatch)
- VAEDecode/SaveImage: updated node IDs (11→VAEDecode, 12→SaveImage)
- Encoder: qwen_3_4b_bfl.safetensors (7.5GB BFL-merged shards)
- Tests: update heretic model assertions for new node structure (37/37 pass)
- Add RECAP doc with root cause analysis and session history
2026-04-10 20:21:12 +02:00
Patrick Plate 38d26adb1f Merge branch 'fix/mcp-image-gen/heretic-flux2-bugfixes' 2026-04-10 19:21:51 +02:00
Patrick Plate ea0c5d39c4 fix(mcp-image-gen): fix Heretic/FLUX2 integration bugs
- Fix syntax error in server.py (dangling docstring lines)
- Correct model filename: flux-2-klein-4b.safetensors (without -fp8)
- Fix _WORKFLOW_REGISTRY key to match actual downloaded filename
- Update get_models() to always include registry models as fallback
- Fix test expectations to match corrected model names
- All 37 tests passing
2026-04-10 19:21:51 +02:00
Patrick Plate 8f24168dcd fix(bigmind): fix FTS sync in delete_chunks_before — use rowid DELETE not rebuild
conversation_chunks_fts is a standalone FTS5 table (no content= option).
The old INSERT ... VALUES('rebuild') is a no-op on standalone tables and
left deleted chunks searchable in the FTS shadow tables.

Fix: collect IDs before deletion, explicitly DELETE FROM conversation_chunks_fts
WHERE rowid IN (...) before removing from the main table. This keeps FTS
in sync after every vacuum call.

Tests: 303/303 passing. Vacuum tests now pass for the right reason.
2026-04-07 23:41:13 +02:00
Patrick Plate cda8946c75 docs(cannamanage): add CannaManage wiki pages and mockup images
- 11 wiki pages: CannaManage-Home + 01-10 covering full Phase 0 docs
- 5 mockup images in docs/wiki/images/
- Updated _Sidebar.md with CannaManage section
2026-04-06 11:21:35 +02:00
Patrick Plate 97ccafc0d7 Merge branch 'docs/cannamanage/phase0-docs' 2026-04-06 11:07:44 +02:00
Patrick Plate c25a97c37b docs(cannamanage): add complete Phase 0 documentation suite
- 01-PROJECT-CHARTER.md: project charter with Gantt chart and risk register
- 02-USER-STORIES.md: 25 user stories with MoSCoW priorities and ACs
- 03-ARCHITECTURE.md: system architecture, ERD (8 entities), multi-tenancy design
- 04-FLOWCHARTS.md: 5 business logic flow charts (distribution, recall, etc)
- 05-API-SPEC.md: REST API spec (7 controllers, 30+ endpoints)
- 06-WIREFRAMES.md: 6 screen wireframes with AI-generated mockup images
- 07-CODING-STANDARDS.md: Java 21 standards, Git strategy, compliance rules
- 08-TEST-PLAN.md: 26 test cases, JaCoCo coverage gates
- 09-DEPLOYMENT-GUIDE.md: Hetzner Docker Compose + Gitea CI/CD pipeline
- README.md + CHANGELOG.md + 10-RETROSPECTIVE.md
- 5 AI-generated UI mockup images (Flux Schnell/ComfyUI)
2026-04-06 11:07:35 +02:00
Patrick Plate a72a2efceb feat(mcp-image-gen): merge ComfyUI auto-start health check + systemd service 2026-04-06 10:43:44 +02:00
Patrick Plate c662a5237b feat(mcp-image-gen): add ComfyUI auto-start health check + systemd service
Option A: Add lifespan context manager to server.py
- _ping_comfyui(): async health check against /system_stats
- check_and_start_comfyui(): ping on startup; if down, launches ComfyUI
  via subprocess.Popen from COMFYUI_DIR (.venv/bin/python main.py)
  with HSA_OVERRIDE_GFX_VERSION=11.0.0 injected for AMD ROCm
- Polls up to 30s for readiness after auto-start
- New env var: COMFYUI_DIR (default ~/ComfyUI)
- FastMCP lifespan= wired in; 34/34 tests still passing

Option B: Add comfyui.service systemd user service file
- Install: cp mcp/mcp-image-gen/comfyui.service ~/.config/systemd/user/
- Enable: systemctl --user enable --now comfyui
- Sets HSA_OVERRIDE_GFX_VERSION=11.0.0, WorkingDirectory=%h/ComfyUI
- Restart=on-failure, logs via journald

docs: Update mcp-image-gen-ComfyUI-Setup.md
- New Step 4: systemd service install + linger instructions
- Step 5: manual start (moved from old Step 4)
- Step 6/7 renumbered; COMFYUI_DIR env var documented
- Architecture diagram added; troubleshooting rows updated
2026-04-06 10:43:36 +02:00
Patrick Plate 0ff3f20589 feat(mcp-image-gen): merge name and count params into main 2026-04-06 07:45:45 +02:00
Patrick Plate 79f1e6d65f feat(mcp-image-gen): add name and count params to generate_image
- Add name (str) param: filename prefix saved as {name}_{timestamp}_{seed}.png
- Add count (int, 1-10) param: generate N images in one call
- Extract _sanitize_name() helper: strips special chars, collapses underscores, caps at 64 chars
- Extract _build_filename() helper: pure function for testable filename construction
- Extract _generate_single() coroutine: clean loop body for batch generation
- Fixed seed batches increment seed per image (seed+i-1) for deterministic variation
- random seed (-1) batches give independent random seeds per image
- Partial batch failures continue (error TextContent in slot, remaining images proceed)
- Returns flat interleaved [Text1, Image1, Text2, Image2, ...] list
- 34/34 tests passing (was 19, added 15 new tests)
2026-04-06 07:45:37 +02:00
Patrick Plate 79a2e1d10a Merge branch 'feat/roo/ollama-backed-modes' 2026-04-05 10:27:37 +02:00
Patrick Plate 78de59243c feat(roo): add Ollama-backed doc-writer and ask-lite modes 2026-04-05 10:27:26 +02:00
Patrick Plate db8505fef1 merge: docs/wiki/promote-webscraper-search-hint → main 2026-04-05 10:11:37 +02:00
Patrick Plate 4107b8ede2 docs: promote webscraper_search_hint in wiki and mode rules 2026-04-05 10:11:33 +02:00
Patrick Plate 4202094f01 merge: fix/webscraper/search-hint-quality → main 2026-04-05 09:57:47 +02:00
Patrick Plate 62c3b67e66 fix(mcp-webscraper): improve search_hint quality — quote_plus, richer hint, dedup, result_count
- Use urllib.parse.quote_plus instead of str.replace(' ', '+') for correct
  URL encoding of special chars (&, %, +, #, =)
- Add search_url field to return dict so caller can verify/debug the query
- Add result_count field for quick summary without len(results)
- Deduplicate results by URL via seen_urls set
- Filter cards with both empty title AND empty snippet
- Richer hint string: 'Title (url): snippet[:120]' pipe-separated
- Max-results guard now breaks early (no over-fetching)
- 5 new tests (23→28): URL encoding, result_count, dedup, empty filter, hint format
2026-04-05 09:57:43 +02:00
Patrick Plate c2dd262727 chore(roo): document git-based wiki workflow in rules, skill, and README 2026-04-05 09:53:08 +02:00
Patrick Plate 9c2422d0a7 chore(roo): document git-based wiki workflow in rules, skill, and README
- mcp-builder rules: add wiki/ to structure diagram, add Wiki Update
  Workflow section (MANDATORY), update After Building a Server checklist
- gitea-push skill: add wiki deploy as a valid use case
- README.md: add wiki section with deploy_wiki.sh pointer, add
  mcp-image-gen to MCP servers table
2026-04-05 09:53:05 +02:00