v1.2.0:4 — make avg. watts a first-class SetLog field

Average watts (assault bike, rower, ski erg) was a free-text entry stuffed
into the per-set customMetrics JSON blob. Promote it to a real nullable
column, SetLog.watts, written through every set path (create / PATCH /
add-sets / import-save / account-import) and shown everywhere as
"Avg. watts" with a proper numeric input.

The column is added by the boot-time guarded ALTER in docker_entrypoint.sh
(additive, idempotent), so the version migration stays empty. Existing data
is untouched: legacy watts values remain readable from customMetrics and
migrate to the column the next time a set is saved.
This commit is contained in:
Keysat
2026-06-16 12:52:59 -05:00
parent 4d1f9126b0
commit 390aaf556e
21 changed files with 202 additions and 19 deletions
+7 -1
View File
@@ -18,6 +18,7 @@ import { v_1_1_0_9 } from './v1.1.0.9'
import { v_1_2_0_1 } from './v1.2.0.1'
import { v_1_2_0_2 } from './v1.2.0.2'
import { v_1_2_0_3 } from './v1.2.0.3'
import { v_1_2_0_4 } from './v1.2.0.4'
/**
* Version graph for the `proof-of-work` package.
@@ -71,9 +72,13 @@ import { v_1_2_0_3 } from './v1.2.0.3'
* bcrypt on unknown email) and enforce exerciseId ownership on
* workout create/PATCH/add-sets + CSV-import-save (shared
* lib/exerciseOwnership). No schema/data change.
* v1.2.0:4 — Avg. watts promoted to a first-class set field (SetLog.watts
* column, added by the boot-time additive ALTER). Written through
* every set path; legacy watts in customMetrics stays readable and
* migrates on next save.
*/
export const versionGraph = VersionGraph.of({
current: v_1_2_0_3,
current: v_1_2_0_4,
other: [
v_1_0_0_1,
v_1_0_0_2,
@@ -93,5 +98,6 @@ export const versionGraph = VersionGraph.of({
v_1_1_0_9,
v_1_2_0_1,
v_1_2_0_2,
v_1_2_0_3,
],
})