Files
Keysat 5868852686 Add records, Elijah scores, per-session notes, and PWA update prompt
App features:
- Personal-best records per metric: manually settable in Settings and
  auto-updated when a session beats them; shown in the log modal and a
  new dashboard "Personal records" card.
- Juggling now counts by 1 instead of 5.
- 1-on-1 with Elijah gains Technical Skill and Effort scores (out of 10)
  as manual inputs, plus an optional per-session note.
- Service worker now uses a controlled update flow: an in-app
  "new version ready" banner activates the update on tap and reloads.

Data model:
- category_metrics gains track_record + record; entries gains note.
- Idempotent migrations bring existing databases up to date (juggling
  step/record, Elijah score metrics) alongside the updated seed.

StartOS package:
- Bump to 0.1.2:0 with release notes.
- Build x86_64 only (drop aarch64) per deployment target.
2026-06-03 08:46:27 -05:00

40 lines
1019 B
Makefile

ARCHES := x86
# overrides to s9pk.mk must precede the include statement
# Build x86_64 + aarch64 only (matches manifest images.arch).
# The default goal vendors the Node app into ./app (the Docker build context)
# before delegating to s9pk.mk's build matrix.
.DEFAULT_GOAL := default
.PHONY: default prep clean-app
# Root of the Premier Gunner Node app (this s9pk lives in ./s9pk).
APP_SRC := ..
default: prep
@$(MAKE) --no-print-directory all
# Sync app sources into ./app so the Dockerfile can COPY them. node_modules and
# runtime data are excluded; the Dockerfile reinstalls deps via `npm ci`.
prep:
@echo " Vendoring Node app into ./app ..."
@rm -rf app
@mkdir -p app
@rsync -a \
--exclude='node_modules/' \
--exclude='data/' \
--exclude='s9pk/' \
--exclude='.git/' \
--exclude='*.log' \
--exclude='.DS_Store' \
--exclude='.env' \
"$(APP_SRC)/package.json" \
"$(APP_SRC)/package-lock.json" \
"$(APP_SRC)/src" \
"$(APP_SRC)/public" \
app/
clean-app:
rm -rf app
include s9pk.mk