Files
premier-gunner/s9pk/startos/versions/current.ts
T
Keysat cf64a2dc50 Add EPA speeds, entry editing, and tap-to-type numeric inputs
- EPA Agility & Speed: add Max Speed and Max Weighted Speed (mph),
  decimal record-tracked metrics, per session.
- Logged sessions are editable: tapping a category or a logged entry
  opens it pre-filled; saving updates that entry (PUT /api/entries/:id)
  instead of creating a duplicate. Record auto-update runs on edit too.
- Every value field is now a tap-to-type number input (decimal keypad
  for speeds) while keeping the +/- stepper buttons; native spinners
  removed. New decimal metric kind; seed + idempotent migration add the
  EPA speed metrics.
- Bump StartOS package to 0.1.5:0; service worker cache to v5.
2026-06-04 08:05:30 -05:00

29 lines
1.6 KiB
TypeScript

import { IMPOSSIBLE, utils, VersionInfo } from '@start9labs/start-sdk'
import { store } from '../fileModels/store'
export const current = VersionInfo.of({
version: '0.1.5:0',
releaseNotes: {
en_US: 'Every value field is now tap-to-type: tap the number to enter an exact value (decimals supported for speeds) or use the +/- buttons as before.',
es_ES: 'Cada campo de valor ahora permite escribir: toca el número para introducir un valor exacto (con decimales para las velocidades) o usa los botones +/- como antes.',
de_DE: 'Jedes Wertefeld kann jetzt direkt eingetippt werden: Tippe auf die Zahl für einen exakten Wert (Dezimalstellen für Geschwindigkeiten) oder nutze wie bisher die +/- Tasten.',
pl_PL: 'Każde pole wartości można teraz wpisać dotykiem: dotknij liczby, aby wprowadzić dokładną wartość (z dziesiętnymi dla prędkości) lub użyj przycisków +/- jak wcześniej.',
fr_FR: "Chaque champ de valeur est désormais modifiable au clavier : touchez le nombre pour saisir une valeur exacte (décimales pour les vitesses) ou utilisez les boutons +/- comme avant.",
},
migrations: {
up: async ({ effects }) => {
// Generate a random login password on first install so the app is never
// left on a known default. The user can change it via "Set Login Password".
const existing = await store.read().once()
if (!existing) {
const password = utils.getDefaultString({
charset: 'a-z,A-Z,2-9',
len: 16,
})
await store.write(effects, { password })
}
},
down: IMPOSSIBLE,
},
})