5b0535f6df
The popup HAD an IntersectionObserver-based infinite scroll (since v1.0.0:6 alongside the main workout-history page), but the observer was unreliable inside an `absolute`-positioned scroll container with a small 60px rootMargin. It often didn't fire at all — leaving the user with a popup that scrolled internally but never fetched more data even when hundreds of history entries existed server-side. Fix: replace IntersectionObserver with a plain `scroll` event listener on the popup. Fires whenever the user scrolls within 300px of the bottom (matching WorkoutsList's lookahead on the main page). Also runs once on mount in case the first page doesn't fill the popup. Bottom status row now shows "Loading more..." / "Scroll to load more" / "End of history" so the user has feedback on state. No schema, no API, no data. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
70 lines
2.7 KiB
TypeScript
70 lines
2.7 KiB
TypeScript
import { VersionGraph } from '@start9labs/start-sdk'
|
|
import { v_1_0_0_1 } from './v1.0.0.1'
|
|
import { v_1_0_0_2 } from './v1.0.0.2'
|
|
import { v_1_0_0_3 } from './v1.0.0.3'
|
|
import { v_1_0_0_4 } from './v1.0.0.4'
|
|
import { v_1_0_0_5 } from './v1.0.0.5'
|
|
import { v_1_0_0_6 } from './v1.0.0.6'
|
|
import { v_1_0_0_7 } from './v1.0.0.7'
|
|
import { v_1_1_0_1 } from './v1.1.0.1'
|
|
import { v_1_1_0_2 } from './v1.1.0.2'
|
|
import { v_1_1_0_3 } from './v1.1.0.3'
|
|
import { v_1_1_0_4 } from './v1.1.0.4'
|
|
import { v_1_1_0_5 } from './v1.1.0.5'
|
|
import { v_1_1_0_6 } from './v1.1.0.6'
|
|
import { v_1_1_0_7 } from './v1.1.0.7'
|
|
|
|
/**
|
|
* Version graph for the `proof-of-work` package.
|
|
*
|
|
* 1.0.0 line — feature-complete logger + multi-user + library curation.
|
|
* 1.1.0 line — Programs (manual + AI) + AI integration.
|
|
*
|
|
* v1.0.0:1 — initial release, seeded cutover.
|
|
* v1.0.0:2 — CSP fix.
|
|
* v1.0.0:3 — post-cutover seed strip.
|
|
* v1.0.0:4 — removes default admin@local credentials.
|
|
* v1.0.0:5 — caloriesBurned raw-SQL workaround removed.
|
|
* v1.0.0:6 — paginate workout history (infinite scroll).
|
|
* v1.0.0:7 — exercise library cleanup, photo-import removal.
|
|
* v1.1.0:1 — Programs UI (manual create / save / follow).
|
|
* v1.1.0:2 — AI program generation, 5 providers (Claude / OpenAI /
|
|
* OpenAI-compatible / Gemini / Ollama).
|
|
* v1.1.0:3 — AI upgrades: history-as-context, test connection,
|
|
* cost estimator, streaming preview render.
|
|
* v1.1.0:4 — AI integration overhaul: multi-config persistence,
|
|
* background generation (survives navigation), Ollama
|
|
* auto-detect + installed-model dropdown, curated model
|
|
* dropdowns for Claude / OpenAI / Gemini with current
|
|
* 2026 model names, system-prompt overhaul forcing library
|
|
* exerciseIds + suggested weights, sidebar sub-navigation,
|
|
* history detail view.
|
|
* v1.1.0:5 — Gemini menu correctness: adds gemini-3.1-pro (short),
|
|
* gemini-3.1-flash, gemini-3.1-flash-lite, gemini-3-pro,
|
|
* gemini-3-flash + pricing entries.
|
|
* v1.1.0:6 — Exercise-history popup max-height bumped from ~320px
|
|
* (5 rows) to 70vh (~15+ rows). Users with deep history
|
|
* can scroll without fighting a tiny inner scrollbar.
|
|
* v1.1.0:7 — Exercise-history popup auto-loads more rows on scroll
|
|
* (switched from a flaky IntersectionObserver-in-popup to
|
|
* a plain scroll listener with 300px lookahead).
|
|
*/
|
|
export const versionGraph = VersionGraph.of({
|
|
current: v_1_1_0_7,
|
|
other: [
|
|
v_1_0_0_1,
|
|
v_1_0_0_2,
|
|
v_1_0_0_3,
|
|
v_1_0_0_4,
|
|
v_1_0_0_5,
|
|
v_1_0_0_6,
|
|
v_1_0_0_7,
|
|
v_1_1_0_1,
|
|
v_1_1_0_2,
|
|
v_1_1_0_3,
|
|
v_1_1_0_4,
|
|
v_1_1_0_5,
|
|
v_1_1_0_6,
|
|
],
|
|
})
|