Go to file
Lars 76b4b36617
All checks were successful
Deploy Development / deploy (push) Successful in 51s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 16s
feat: End Node template placeholders + clean output display
Three major improvements for workflow templates:

1. **Normalized Signal Placeholders:**
   - Signals now available as {{ node_4.signal_kalorienbilanz }}
   - Uses normalized_value (not raw decision_signals)
   - Enables structured decision-based outputs

2. **Question Text Placeholders:**
   - Question texts available as {{ node_4.question_kalorienbilanz }}
   - Extracted from workflow graph (question_augmentations)
   - Allows displaying questions alongside answers

3. **Clean End Node Output:**
   - End Node output no longer duplicated with "## node_4" headers
   - aggregate_results() detects End Nodes via graph.nodes
   - Only shows final template-rendered output
   - Backward compatible: Falls back to combined_analysis if no End Node

Backend workflow_executor.py:
- execute_end_node(): Added normalized signals to template context
- execute_end_node(): Added question texts to template context
- execute_workflow(): Added graph to context for End Node access
- aggregate_results(): Signature change to accept graph
- aggregate_results(): Detects End Nodes and uses only their output

Frontend WorkflowResultViewer.jsx:
- Now uses aggregated.analysis_core (primary output)
- Removed fallback to combined_analysis (was showing duplicates)

Example Template:
```jinja2
**Frage:** {{ node_4.question_kalorienbilanz }}
**Antwort:** {{ node_4.signal_kalorienbilanz }}

---
{{ node_4.analysis_core }}
```

Issue: Signal placeholders empty, question texts unavailable, duplicate output
Version: 0.9p (workflow module)
Part 3: End Node Template Engine - Complete

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 20:45:08 +02:00
.claude docs: Struktur .claude/docs versionieren, working/, Gitea-Index, Regeln 2026-04-08 13:01:49 +02:00
.gitea/workflows feat: Update deployment scripts to use git fetch and reset for more reliable state management 2026-04-05 11:39:15 +02:00
backend feat: End Node template placeholders + clean output display 2026-04-09 20:45:08 +02:00
docs docs(issue-53): kanonische Pfade Data Layer / Doku-Checkliste 2026-04-08 13:02:14 +02:00
frontend feat: End Node template placeholders + clean output display 2026-04-09 20:45:08 +02:00
nginx feat: initial commit – Mitai Jinkendo v9a 2026-03-16 13:35:11 +01:00
scripts/gitea feat: Enhance dashboard widget configuration and introduce new widgets 2026-04-07 14:19:45 +02:00
tests cursor_Setup 2026-04-04 14:05:50 +02:00
.env.example cursor_Setup 2026-04-04 14:05:50 +02:00
.gitignore docs: Struktur .claude/docs versionieren, working/, Gitea-Index, Regeln 2026-04-08 13:01:49 +02:00
CLAUDE.md docs: Struktur .claude/docs versionieren, working/, Gitea-Index, Regeln 2026-04-08 13:01:49 +02:00
create_issue_no_jq.sh Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
create_metadaten_review_issue.sh Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
docker-compose.dev-env.yml fix: add missing /app/data volume for SQLite migration 2026-03-18 12:11:37 +01:00
docker-compose.dev.yml feat: initial commit – Mitai Jinkendo v9a 2026-03-16 13:35:11 +01:00
docker-compose.yml docker-compose.yml aktualisiert 2026-03-19 08:28:30 +01:00
find-container.sh chore: rollback point before unified prompt system refactoring (Issue #28) 2026-03-25 10:42:18 +01:00
nutrition_cluster_final_check.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
nutrition_cluster_final.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
package-lock.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
package.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
playwright.config.js Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
README.md feat: initial commit – Mitai Jinkendo v9a 2026-03-16 13:35:11 +01:00
registry_export_final.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
registry_export_fixed.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
registry_export_new_data.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
registry_export_part_c_fixed.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
registry_export_part_c.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
registry_export_partb.json Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
SETUP.md feat: initial commit – Mitai Jinkendo v9a 2026-03-16 13:35:11 +01:00
test_activity_registration.py Add tests for Activity Cluster registration and smoke tests for login functionality 2026-04-03 08:22:08 +02:00
test-pipeline-api.sh chore: add pipeline system test scripts (Issue #28) 2026-03-25 09:47:58 +01:00
test-pipeline-backend.sh fix: use postgres container for psql commands 2026-03-25 09:54:44 +01:00
test-unified-migration.sh fix: migration 020 SQL syntax - correlated subquery issue 2026-03-25 12:58:02 +01:00

BodyTrack

Körpervermessung & Körperfett Tracker selbst gehostet, PWA-fähig.

Features

  • Umfänge & Caliper-Messungen (4 Methoden) mit Verlauf
  • Abgeleitete Werte: WHR, WHtR, FFMI, Magermasse
  • Verlaufsdiagramme (Gewicht, KF%, Taille, …)
  • KI-Interpretationen via Claude (Anthropic)
  • Fortschrittsfotos mit Galerie
  • PDF & CSV Export
  • PWA installierbar auf iPhone-Homescreen
  • Alle Daten lokal auf deinem Server (SQLite)

Schnellstart

1. Voraussetzungen

# Docker & Docker Compose installieren (Ubuntu)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Neu einloggen

2. Projekt klonen / kopieren

mkdir ~/bodytrack && cd ~/bodytrack
# Dateien hierher kopieren

3. API Key setzen

cp .env.example .env
nano .env
# ANTHROPIC_API_KEY=sk-ant-... eintragen

4. Starten

docker compose up -d

App läuft auf: http://DEINE-IP:3000

5. iPhone Als App installieren

  1. Safari öffnen → http://DEINE-IP:3000
  2. Teilen-Button (□↑) → „Zum Home-Bildschirm"
  3. BodyTrack erscheint als App-Icon

6. Von außen erreichbar (optional)

# Tailscale (einfachste Lösung  VPN zu deinem MiniPC)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# Dann: http://TAILSCALE-IP:3000

Updates

docker compose pull
docker compose up -d --build

Backup

# Datenbank & Fotos sichern
docker run --rm -v bodytrack-data:/data -v bodytrack-photos:/photos \
  -v $(pwd):/backup alpine \
  tar czf /backup/bodytrack_backup_$(date +%Y%m%d).tar.gz /data /photos

Konfiguration

Variable Beschreibung Standard
ANTHROPIC_API_KEY Claude API Key (für KI-Analyse)

Ports

Port Dienst
3000 Frontend (Nginx)
8000 Backend API (intern)