diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 0000000..82456f7 --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ -f package.json && -f scripts/release-sync.cjs && -f scripts/release-verify.cjs ]]; then + npm run --silent release:sync >/dev/null + if [[ -d public ]]; then + while IFS= read -r -d '' file; do + git add -- "$file" + done < <(find public -type f -name '*.html' -print0 2>/dev/null) + fi + npm run --silent release:verify +fi diff --git a/AGENTS.md b/AGENTS.md index 5109bed..ee38f29 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,3 +30,10 @@ helldivers/ ## Sicherheit - Niemals `data/helldivers.db` committen + +## Release-Automation +- **Version ist Single Source of Truth:** `package.json` +- **Cache-Busting nie manuell pflegen** – stattdessen `npm run release:sync` +- **Vor jedem Commit zusätzlich:** `npm run release:verify` +- Repo-Hook: `.githooks/pre-commit` führt `release:sync` und `release:verify` automatisch aus +- Für Versionssprünge: `npm run release:bump:patch`, `release:bump:minor` oder `release:bump:major` diff --git a/CHANGELOG.md b/CHANGELOG.md index 3671bdc..f18a884 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ -# Changelog – helldivers-trainer +# Changelog + +## [Unreleased] + +### Changed +- Release-Automation ergänzt: `npm run release:sync`, `npm run release:verify`, `.githooks/pre-commit` und versionsbasiertes Cache-Busting aus `package.json` – helldivers-trainer ## [2.1.3] – 2026-03-31 diff --git a/CLAUDE.md b/CLAUDE.md index c1a9a80..5d8870a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -40,3 +40,11 @@ Falls Funktionen, API-Routen, WebSocket-Message-Types oder State-Variablen **hin ## Changelog - Nach jeder Änderung `CHANGELOG.md` aktualisieren - Format: `## [Unreleased]` für laufende Änderungen + +## Release Automation + +- Version source of truth: `package.json` +- Never update `?v=...` asset parameters manually; use `npm run release:sync` +- Run `npm run release:verify` before commit whenever frontend/server/version files changed +- Repo hook: `.githooks/pre-commit` runs release sync + verification automatically +- Use `npm run release:bump:patch`, `release:bump:minor`, or `release:bump:major` for version bumps diff --git a/PROJECT_MAP.md b/PROJECT_MAP.md index 8d678dd..5183e97 100644 --- a/PROJECT_MAP.md +++ b/PROJECT_MAP.md @@ -132,3 +132,9 @@ state = { ### WebSocket Message Types (Server → Client) `lobby_update`, `challenge_received`, `challenge_declined`, `match_start`, `round_start`, `round_result`, `match_end`, `opponent_progress`, `error` + +## Release Automation +- Version source of truth: `package.json` +- `scripts/release-sync.cjs`: synchronisiert lokale CSS/JS-Referenzen in HTML-Dateien auf die aktuelle Paketversion +- `scripts/release-verify.cjs`: prüft Version-Parameter sowie Pflichtdateien wie `CHANGELOG.md` und `PROJECT_MAP.md` vor Commits +- `.githooks/pre-commit`: führt Release-Sync und Verify automatisch aus diff --git a/package.json b/package.json index b356c6e..d68093c 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,12 @@ "main": "server.js", "scripts": { "start": "node server.js", - "dev": "node --watch server.js" + "dev": "node --watch server.js", + "release:sync": "node scripts/release-sync.cjs", + "release:verify": "node scripts/release-verify.cjs", + "release:bump:patch": "npm version patch --no-git-tag-version && npm run release:sync", + "release:bump:minor": "npm version minor --no-git-tag-version && npm run release:sync", + "release:bump:major": "npm version major --no-git-tag-version && npm run release:sync" }, "dependencies": { "bcryptjs": "^3.0.3", diff --git a/public/index.html b/public/index.html index 0a0cfab..39e38fc 100644 --- a/public/index.html +++ b/public/index.html @@ -7,7 +7,7 @@ - + @@ -55,24 +55,47 @@
-
- @@ -105,6 +128,28 @@ -
- -
- -
+
+
+ Live Drill + Stay on target
-
-
-
-
Arrow Keys or D-Pad · Esc to stop
-
+ - -
+
+ +
+ +
+
+
+
+
+
Arrow Keys or D-Pad · Esc to stop
+
-
- -
-
TIME
-
- - - - -
30
+ +
+ +
+ +
+
TIME
+
+ + + + +
30
+
+
+ + + + +
+
SCORE
+
0
+
+
+
STREAK
+
0
+
- -
@@ -406,27 +461,38 @@
-
-
-
YOU
-
+
+ +
+
+
YOU
+
+
+
0 / 0
+
+
+
+
+
OPPONENT
+
+
+
0 / 0
+
+
+
-
-
OPPONENT
-
-
-
-
-
- -
-
- -
- -
-
- +
+
+ +
+
+ +
+ +
+
+ +
@@ -451,14 +517,16 @@
- - - - - - - -
#HelldiverRankTotal ScoreSessionsMatch W/Total
Loading...
+
+ + + + + + + +
#HelldiverRankTotal ScoreSessionsMatch W/Total
Loading...
+
@@ -466,6 +534,29 @@ @@ -566,6 +680,9 @@
+

PERFORMANCE ANALYSIS

+
+

TOP STRATAGEMS