these 73 derivations will be built: /nix/store/083wxxzss7z4j4jzkfqdy7m42cp95xs7-miniflux-provisioning-seungwon.json.drv /nix/store/rmhhh47dxm7jmxijfjcdly3klc9h6hnh-nixos-tmpfiles.d.drv /nix/store/87ll3asgzsi0ykadxqpbp5znxfpp0jfg-tmpfiles.d.drv /nix/store/31q7zhxi1ksbch73fz9h483w92s14wb9-vdirsyncer-hooks.drv /nix/store/jyl34dk2p71yj8r6pklzjgj3j7d0whr5-system-path.drv /nix/store/n5ia9qv23ld8mc55y2kaip0apddwv8xs-dbus-1.drv /nix/store/lfcwn4fbcdpcv7r3wwhas0l2nr120gmb-X-Restart-Triggers-systemd-tmpfiles-resetup.drv /nix/store/56z8kbyk2mgd32g8m6zahw7p5q1d8ac2-unit-systemd-tmpfiles-resetup.service.drv /nix/store/64gi5jxrjgyaqy4rbcr1vyzm2gbgbfgi-unit-opencrow.service.drv /nix/store/x9rva2lf9mvvyqhl5y4g5pslnnyvfqz1-X-Restart-Triggers-dbus-broker.drv /nix/store/hdma9hlxyzj041sv13s598dc4i5ff31p-unit-dbus-broker.service.drv /nix/store/rayl7nxsawf5v0jl6j7qm686sz06xnfr-system-units.drv /nix/store/x420yfiiqlcgamjb86ymi224qfq494wq-unit-dbus-broker.service.drv /nix/store/xlnannrz3631jl7yrzzcvg306zm7k2r0-user-units.drv /nix/store/d6bfrqw4p5cwmqgnnkilgpyv7lafjgz9-etc.drv /nix/store/vgwgbxc5fkp86lij0g492vp04xwljr8v-activate.drv /nix/store/6xqy4irajzz54miyyjr0izqb3qrni24g-nixos-system-opencrow-26.11pre-git.drv /nix/store/azcyi4hq3zyqaj1a3p0w5f1grmv7vk7j-etc-nixos-containers-opencrow.conf.drv /nix/store/zqzvm7diacyffdxykkqnynrjlxfjqllx-X-Restart-Triggers-container-opencrow.drv /nix/store/0b93241v2fi09hn74bqq03xwl7wjp34v-unit-container-opencrow.service.drv /nix/store/0ilii3xch05wfbz76qizflld0dqsk53j-rustic-clan-create_fish-completions.drv /nix/store/wxfvc5k3bls5zd45dhc9jybf7kdr1qvj-state-commands.drv /nix/store/0wmxzhsg6q5ld2mf7wqfbw7zkgxapgxv-system-path.drv /nix/store/0yxjb5c3lz9p8r8sr5zchbb2x8bymbjs-nextcloud-occ_fish-completions.drv /nix/store/k4mqg82rfpj7r2m650sdv5gpslbg528w-pg_hba.conf.drv /nix/store/aycrg5m8m7k3jrysvymw4mhzah6rmgzr-postgresql.conf.drv /nix/store/1gifblm6ki0n8ghqbmz6a7sac06sil1d-unit-script-postgresql-pre-start.drv /nix/store/4b9ajn2bdgqgsgjh58hzasfq939zzn27-dbus-1.drv /nix/store/46kmmvqnn988h9k0cnk86mxp9q2x8r8n-sparkyfitness-frontend-pnpm-deps.drv /nix/store/cfpc2m1yzlwv8qia94iyjij4q391g9ih-sparkyfitness-frontend-1.7.3.drv /nix/store/4zxwchl0z0r8xlw3njcvs6yswa97xlsn-nginx.conf.drv /nix/store/1mwb4vm4mq6lyvhr0swm2zi3nfghxfy7-zfstools-0.3.6_fish-completions.drv /nix/store/5fqzia0377hqh17l05w4kxrpy5gwnrd0-redis-8.10.1_fish-completions.drv /nix/store/7acpvmyf29m3h4sn7plqdi6jwqiy9avp-rustic-clan-restore_fish-completions.drv /nix/store/7bknmw34g83fn32z0nsqp0ffn6f32s1b-glibc-locales-2.42-84_fish-completions.drv /nix/store/8vba2mv1w3k880g4rl1wmr2n29vpyczs-opencrow-pi_fish-completions.drv /nix/store/b5dhj2k6i07ffya2jwh9znv41l5nfj5m-nixos-container_fish-completions.drv /nix/store/f1bwfyg8cdamn955mk8c8jidlzb8abqs-rad-system_fish-completions.drv /nix/store/h0f80p2qv1kmi269zzcyg5bcmyyiqkji-docker-29.8.0_fish-completions.drv /nix/store/h4fd37h7mirkhk7a7wx5h8ycybb6k1if-iptables-1.8.13_fish-completions.drv /nix/store/hzxv02s53lm8cyb4xfbdc6mjkm66x272-zfs-user-2.4.4_fish-completions.drv /nix/store/ip6b5inmv9zkrbawg67wjqpcxp7x8xd3-nixos-facter-0.4.4_fish-completions.drv /nix/store/lsmm0q2z3xf4d1j1b371mxzz2gm22qcx-paperless-manage_fish-completions.drv /nix/store/lw1d36gmc39i719hnwylvqmgpyxsfjr3-ghostty-terminfo_fish-completions.drv /nix/store/m9fymagsnkvjvz8vmc6w912zaf9pgdwj-rustic-0.11.4_fish-completions.drv /nix/store/qc5zcq6dh8fkn6hzl74fjwmi28jdpdwi-podman-5.8.6_fish-completions.drv /nix/store/rlbblvdc8lkzm027cv2yv7599sjp4ds7-state-commands_fish-completions.drv /nix/store/ygcfd4nhbmj7nzss9gqrmdma1b3h6lsp-upgrade-pg-cluster_fish-completions.drv /nix/store/zsv601b16zf48xw91s8478jb1pda71i6-rustic-clan-list_fish-completions.drv /nix/store/qv7ki98jcwgld394n1dkspjzkadbywd9-system_fish-completions.drv /nix/store/gdb3l0ny0ddvqjd6r1qqkn3av805vbp2-X-Restart-Triggers-dbus-broker.drv /nix/store/fkkzqgqaknic9nc6s681bjzggzyavdqq-unit-dbus-broker.service.drv /nix/store/s0mh4726wf75vvr3v7wizs6h7d4j4wwg-user-units.drv /nix/store/lxwnlvjl3gmhfj4kqp9fg4zpqcq7a0y3-sparkyfitness-server-pnpm-deps.drv /nix/store/cpwjny9xxl1bygl334x667ylbrc1spw4-sparkyfitness-server-1.7.3.drv /nix/store/ywwgll239hrxk5mgmb1yifbhjhsvwims-unit-script-sparkyfitness-pre-start.drv /nix/store/3jsz4iw1ayix5k13w02hgwbpng00yl7i-unit-sparkyfitness.service.drv /nix/store/745sb7v2x1kynmn40k5pxknhc14w8gjz-unit-dbus-broker.service.drv /nix/store/9vizfcvci0bdmmjpghb0bvh51xfgc60i-unit-postgresql.service.drv /nix/store/rhi4nwxj150qjxj3lgrp9n4zj24dfafj-unit-script-sparkyfitness-db-init-start.drv /nix/store/9zhs65ndxqilmzw4qkh25m0020xfrpsj-unit-sparkyfitness-db-init.service.drv /nix/store/zizpm1ys9k7fcr6al0y45nbq1hr3h7mb-unit-script-nginx-pre-start.drv /nix/store/ayp7am4w662v6n1v7f0ym2526l94f8vm-unit-nginx.service.drv /nix/store/99rrz3jiw19vxqlim07z13jxqy19qkib-miniflux-provisioning-seungwon.drv /nix/store/gzvwbq4i7gpbgl1rzzkscmlvgraiz86y-unit-miniflux-provisioning-seungwon.service.drv /nix/store/y5ajv8lq6h3jivfmqrqrw1hzs6m54hfz-system-units.drv /nix/store/1ijvvmn1mc6818f6i0wmp0rby95wsd5l-etc.drv /nix/store/72fszfjs0pxxrk7k787zmi6zms4nz5bl-users-groups.json.drv /nix/store/wab7sg79l8p3p40h0mx6p0vv4dqw9f4y-manifest.json.drv /nix/store/51s59x5bc1r2z0z6mikywvc3a5apshl5-dry-activate.drv /nix/store/664nk9bff0hrml1x8n5xl4xhkc7903jn-activate.drv /nix/store/zny2l1c1kv34vx34piq4an27mp4dk7wb-postgresql-configfile-check.drv /nix/store/jz5zhbzmzivz9d6d2fi1cpxpxvmjmyli-nixos-system-malt-26.11.20260916.bb79322.drv these 5 paths will be fetched (23.8 MiB download, 96.7 MiB unpacked): /nix/store/mk0vyl5nq5s0qccpxknf034lsa4azlab-nodejs-slim-24.20.0-dev /nix/store/7r65mfj55kprclz0ilxnl8vribzbbp7w-pnpm-10.34.5 /nix/store/gv3hv31yhz25mv15sc8x6b50m8r09mp8-pnpm-fixup-state-db-1.0.0 /nix/store/rlsjzyv8wlns19s8s00c1vl4ffy1fwb5-podman-5.8.6-man /nix/store/npvqbsw45x2l1ansz4i8xsa4ax384cwm-zfs-user-2.4.4-man building '/nix/store/h0f80p2qv1kmi269zzcyg5bcmyyiqkji-docker-29.8.0_fish-completions.drv' building '/nix/store/lw1d36gmc39i719hnwylvqmgpyxsfjr3-ghostty-terminfo_fish-completions.drv' building '/nix/store/7bknmw34g83fn32z0nsqp0ffn6f32s1b-glibc-locales-2.42-84_fish-completions.drv' building '/nix/store/h4fd37h7mirkhk7a7wx5h8ycybb6k1if-iptables-1.8.13_fish-completions.drv' building '/nix/store/0yxjb5c3lz9p8r8sr5zchbb2x8bymbjs-nextcloud-occ_fish-completions.drv' building '/nix/store/b5dhj2k6i07ffya2jwh9znv41l5nfj5m-nixos-container_fish-completions.drv' building '/nix/store/ip6b5inmv9zkrbawg67wjqpcxp7x8xd3-nixos-facter-0.4.4_fish-completions.drv' building '/nix/store/8vba2mv1w3k880g4rl1wmr2n29vpyczs-opencrow-pi_fish-completions.drv' building '/nix/store/lsmm0q2z3xf4d1j1b371mxzz2gm22qcx-paperless-manage_fish-completions.drv' building '/nix/store/qc5zcq6dh8fkn6hzl74fjwmi28jdpdwi-podman-5.8.6_fish-completions.drv' building '/nix/store/f1bwfyg8cdamn955mk8c8jidlzb8abqs-rad-system_fish-completions.drv' building '/nix/store/5fqzia0377hqh17l05w4kxrpy5gwnrd0-redis-8.10.1_fish-completions.drv' building '/nix/store/m9fymagsnkvjvz8vmc6w912zaf9pgdwj-rustic-0.11.4_fish-completions.drv' building '/nix/store/0ilii3xch05wfbz76qizflld0dqsk53j-rustic-clan-create_fish-completions.drv' building '/nix/store/zsv601b16zf48xw91s8478jb1pda71i6-rustic-clan-list_fish-completions.drv' building '/nix/store/7acpvmyf29m3h4sn7plqdi6jwqiy9avp-rustic-clan-restore_fish-completions.drv' building '/nix/store/ygcfd4nhbmj7nzss9gqrmdma1b3h6lsp-upgrade-pg-cluster_fish-completions.drv' building '/nix/store/hzxv02s53lm8cyb4xfbdc6mjkm66x272-zfs-user-2.4.4_fish-completions.drv' building '/nix/store/1mwb4vm4mq6lyvhr0swm2zi3nfghxfy7-zfstools-0.3.6_fish-completions.drv' building '/nix/store/rhi4nwxj150qjxj3lgrp9n4zj24dfafj-unit-script-sparkyfitness-db-init-start.drv' building '/nix/store/ywwgll239hrxk5mgmb1yifbhjhsvwims-unit-script-sparkyfitness-pre-start.drv' building '/nix/store/rmhhh47dxm7jmxijfjcdly3klc9h6hnh-nixos-tmpfiles.d.drv' building '/nix/store/k4mqg82rfpj7r2m650sdv5gpslbg528w-pg_hba.conf.drv' nixos-tmpfiles.d> structuredAttrs is enabled unit-script-sparkyfitness-db-init-start> structuredAttrs is enabled unit-script-sparkyfitness-pre-start> structuredAttrs is enabled pg_hba.conf> structuredAttrs is enabled building '/nix/store/87ll3asgzsi0ykadxqpbp5znxfpp0jfg-tmpfiles.d.drv' building '/nix/store/9zhs65ndxqilmzw4qkh25m0020xfrpsj-unit-sparkyfitness-db-init.service.drv' building '/nix/store/aycrg5m8m7k3jrysvymw4mhzah6rmgzr-postgresql.conf.drv' unit-sparkyfitness-db-init.service> structuredAttrs is enabled building '/nix/store/wxfvc5k3bls5zd45dhc9jybf7kdr1qvj-state-commands.drv' building '/nix/store/31q7zhxi1ksbch73fz9h483w92s14wb9-vdirsyncer-hooks.drv' building '/nix/store/wab7sg79l8p3p40h0mx6p0vv4dqw9f4y-manifest.json.drv' building '/nix/store/083wxxzss7z4j4jzkfqdy7m42cp95xs7-miniflux-provisioning-seungwon.json.drv' building '/nix/store/72fszfjs0pxxrk7k787zmi6zms4nz5bl-users-groups.json.drv' manifest.json> structuredAttrs is enabled miniflux-provisioning-seungwon.json> structuredAttrs is enabled postgresql.conf> structuredAttrs is enabled building '/nix/store/lfcwn4fbcdpcv7r3wwhas0l2nr120gmb-X-Restart-Triggers-systemd-tmpfiles-resetup.drv' building '/nix/store/rlbblvdc8lkzm027cv2yv7599sjp4ds7-state-commands_fish-completions.drv' building '/nix/store/0wmxzhsg6q5ld2mf7wqfbw7zkgxapgxv-system-path.drv' building '/nix/store/jyl34dk2p71yj8r6pklzjgj3j7d0whr5-system-path.drv' building '/nix/store/64gi5jxrjgyaqy4rbcr1vyzm2gbgbfgi-unit-opencrow.service.drv' X-Restart-Triggers-systemd-tmpfiles-resetup> structuredAttrs is enabled system-path> structuredAttrs is enabled system-path> structuredAttrs is enabled users-groups.json> structuredAttrs is enabled building '/nix/store/99rrz3jiw19vxqlim07z13jxqy19qkib-miniflux-provisioning-seungwon.drv' building '/nix/store/zny2l1c1kv34vx34piq4an27mp4dk7wb-postgresql-configfile-check.drv' building '/nix/store/qv7ki98jcwgld394n1dkspjzkadbywd9-system_fish-completions.drv' building '/nix/store/1gifblm6ki0n8ghqbmz6a7sac06sil1d-unit-script-postgresql-pre-start.drv' miniflux-provisioning-seungwon> structuredAttrs is enabled postgresql-configfile-check> 2026-09-30 11:44:48.253 GMT [5] LOG: skipping missing configuration file "/nix/store/v3l54ps3zm4h7ab0nzp0iq9rvikbscr3-postgresql.conf/postgresql.auto.conf" system-path> pkgs.buildEnv warning: creating dangling symlink `/nix/store/bkl2l961j4yn7bd79flcqv960h9y8glc-system-path//share/terminfo/g/ghostty' -> `/nix/store/1yrc05qnrbq5iha0a6ysl36c93b0n3pn-ghostty-terminfo/share/terminfo/g/ghostty' -> `.././78/xterm-ghostty' system-path> created 2790 symlinks in user environment system_fish-completions> structuredAttrs is enabled unit-opencrow.service> structuredAttrs is enabled building '/nix/store/51s59x5bc1r2z0z6mikywvc3a5apshl5-dry-activate.drv' building '/nix/store/56z8kbyk2mgd32g8m6zahw7p5q1d8ac2-unit-systemd-tmpfiles-resetup.service.drv' dry-activate> structuredAttrs is enabled system_fish-completions> created 233 symlinks in user environment unit-script-postgresql-pre-start> structuredAttrs is enabled building '/nix/store/4b9ajn2bdgqgsgjh58hzasfq939zzn27-dbus-1.drv' building '/nix/store/gzvwbq4i7gpbgl1rzzkscmlvgraiz86y-unit-miniflux-provisioning-seungwon.service.drv' system-path> created 7200 symlinks in user environment system-path> install-info: warning: no info dir entry in `/nix/store/sskifhzg7nnzw6gdxyacv45770rpizdq-system-path/share/info/gawknotes.info' unit-systemd-tmpfiles-resetup.service> structuredAttrs is enabled building '/nix/store/9vizfcvci0bdmmjpghb0bvh51xfgc60i-unit-postgresql.service.drv' unit-miniflux-provisioning-seungwon.service> structuredAttrs is enabled building '/nix/store/gdb3l0ny0ddvqjd6r1qqkn3av805vbp2-X-Restart-Triggers-dbus-broker.drv' building '/nix/store/n5ia9qv23ld8mc55y2kaip0apddwv8xs-dbus-1.drv' X-Restart-Triggers-dbus-broker> structuredAttrs is enabled unit-postgresql.service> structuredAttrs is enabled building '/nix/store/745sb7v2x1kynmn40k5pxknhc14w8gjz-unit-dbus-broker.service.drv' building '/nix/store/fkkzqgqaknic9nc6s681bjzggzyavdqq-unit-dbus-broker.service.drv' unit-dbus-broker.service> structuredAttrs is enabled building '/nix/store/x9rva2lf9mvvyqhl5y4g5pslnnyvfqz1-X-Restart-Triggers-dbus-broker.drv' unit-dbus-broker.service> structuredAttrs is enabled X-Restart-Triggers-dbus-broker> structuredAttrs is enabled building '/nix/store/s0mh4726wf75vvr3v7wizs6h7d4j4wwg-user-units.drv' building '/nix/store/hdma9hlxyzj041sv13s598dc4i5ff31p-unit-dbus-broker.service.drv' building '/nix/store/x420yfiiqlcgamjb86ymi224qfq494wq-unit-dbus-broker.service.drv' unit-dbus-broker.service> structuredAttrs is enabled building '/nix/store/7a6z47v77d5yiq95r98d1bmicnnrzfxp-sparkyfitness-frontend-pnpm-deps.drv' building '/nix/store/g97w5sgkaqcsr9yw9nacky9r6ggiz12g-sparkyfitness-server-pnpm-deps.drv' unit-dbus-broker.service> structuredAttrs is enabled building '/nix/store/rayl7nxsawf5v0jl6j7qm686sz06xnfr-system-units.drv' sparkyfitness-frontend-pnpm-deps> Running phase: unpackPhase sparkyfitness-frontend-pnpm-deps> unpacking source archive /nix/store/mki2wwbvl80fnfpjp3khsz1cm4idwr4g-source sparkyfitness-server-pnpm-deps> Running phase: unpackPhase sparkyfitness-server-pnpm-deps> unpacking source archive /nix/store/mki2wwbvl80fnfpjp3khsz1cm4idwr4g-source building '/nix/store/xlnannrz3631jl7yrzzcvg306zm7k2r0-user-units.drv' sparkyfitness-frontend-pnpm-deps> source root is source sparkyfitness-server-pnpm-deps> source root is source sparkyfitness-frontend-pnpm-deps> Running phase: patchPhase sparkyfitness-frontend-pnpm-deps> Running phase: updateAutotoolsGnuConfigScriptsPhase sparkyfitness-server-pnpm-deps> Running phase: patchPhase sparkyfitness-server-pnpm-deps> Running phase: updateAutotoolsGnuConfigScriptsPhase sparkyfitness-frontend-pnpm-deps> Running phase: installPhase sparkyfitness-server-pnpm-deps> Running phase: installPhase sparkyfitness-frontend-pnpm-deps> ~ /build/source sparkyfitness-server-pnpm-deps> ~ /build/source building '/nix/store/d6bfrqw4p5cwmqgnnkilgpyv7lafjgz9-etc.drv' building '/nix/store/vgwgbxc5fkp86lij0g492vp04xwljr8v-activate.drv' activate> structuredAttrs is enabled building '/nix/store/6xqy4irajzz54miyyjr0izqb3qrni24g-nixos-system-opencrow-26.11pre-git.drv' sparkyfitness-frontend-pnpm-deps> /build/source sparkyfitness-server-pnpm-deps> /build/source nixos-system-opencrow-26.11pre-git> structuredAttrs is enabled building '/nix/store/azcyi4hq3zyqaj1a3p0w5f1grmv7vk7j-etc-nixos-containers-opencrow.conf.drv' etc-nixos-containers-opencrow.conf> structuredAttrs is enabled building '/nix/store/zqzvm7diacyffdxykkqnynrjlxfjqllx-X-Restart-Triggers-container-opencrow.drv' X-Restart-Triggers-container-opencrow> structuredAttrs is enabled building '/nix/store/0b93241v2fi09hn74bqq03xwl7wjp34v-unit-container-opencrow.service.drv' sparkyfitness-frontend-pnpm-deps> Final pnpm config: sparkyfitness-server-pnpm-deps> Final pnpm config: unit-container-opencrow.service> structuredAttrs is enabled sparkyfitness-server-pnpm-deps> @jsr:registry=https://npm.jsr.io/ sparkyfitness-server-pnpm-deps> globalconfig=/build/.home/.config/pnpm/rc sparkyfitness-server-pnpm-deps> inject-workspace-packages=true sparkyfitness-server-pnpm-deps> manage-package-manager-versions=false sparkyfitness-server-pnpm-deps> minimum-release-age=4320 sparkyfitness-server-pnpm-deps> minimum-release-age-exclude[]=assistant-cloud sparkyfitness-server-pnpm-deps> minimum-release-age-exclude[]=@assistant-ui/* sparkyfitness-server-pnpm-deps> minimum-release-age-exclude[]=expo sparkyfitness-server-pnpm-deps> minimum-release-age-exclude[]=expo-* sparkyfitness-server-pnpm-deps> minimum-release-age-exclude[]=@expo/* sparkyfitness-server-pnpm-deps> minimum-release-age-exclude[]=babel-preset-expo sparkyfitness-server-pnpm-deps> npm-globalconfig=/nix/store/z5piarlh57mjwr4c9w318ay97sxr6c9m-nodejs-slim-24.20.0/etc/npmrc sparkyfitness-server-pnpm-deps> only-built-dependencies[]=@scarf/scarf sparkyfitness-server-pnpm-deps> only-built-dependencies[]=@shopify/react-native-skia sparkyfitness-server-pnpm-deps> only-built-dependencies[]=@swc/core sparkyfitness-server-pnpm-deps> only-built-dependencies[]=@parcel/watcher sparkyfitness-server-pnpm-deps> only-built-dependencies[]=bcrypt sparkyfitness-server-pnpm-deps> only-built-dependencies[]=sharp sparkyfitness-server-pnpm-deps> only-built-dependencies[]=esbuild sparkyfitness-server-pnpm-deps> only-built-dependencies[]=unrs-resolver sparkyfitness-server-pnpm-deps> only-built-dependencies[]=vue-demi sparkyfitness-server-pnpm-deps> packages[]=frontend sparkyfitness-server-pnpm-deps> packages[]=SparkyFitnessFrontend sparkyfitness-server-pnpm-deps> packages[]=shared sparkyfitness-server-pnpm-deps> packages[]=SparkyFitnessMobile sparkyfitness-server-pnpm-deps> packages[]=SparkyFitnessServer sparkyfitness-server-pnpm-deps> packages[]=docs sparkyfitness-server-pnpm-deps> registry=https://registry.npmjs.org/ sparkyfitness-server-pnpm-deps> reporter=append-only sparkyfitness-server-pnpm-deps> side-effects-cache=false sparkyfitness-server-pnpm-deps> store-dir=/build/tmp.LRCqZyUPpr sparkyfitness-server-pnpm-deps> update-notifier=false sparkyfitness-server-pnpm-deps> user-agent=pnpm/10.34.5 npm/? node/v24.20.0 linux x64 sparkyfitness-server-pnpm-deps> sparkyfitness-server-pnpm-deps> [overrides] sparkyfitness-server-pnpm-deps> @babel/core=7.29.0 sparkyfitness-server-pnpm-deps> @expo/dom-webview=57.0.1 sparkyfitness-server-pnpm-deps> assistant-cloud=0.2.0 sparkyfitness-server-pnpm-deps> eslint-plugin-react-hooks=7.0.1 sparkyfitness-server-pnpm-deps> react=19.2.3 sparkyfitness-server-pnpm-deps> react-dom=19.2.3 sparkyfitness-server-pnpm-deps> side-channel=1.0.6 sparkyfitness-server-pnpm-deps> tailwindcss=4.3.3 sparkyfitness-server-pnpm-deps> tsx>esbuild=0.28.1 sparkyfitness-server-pnpm-deps> vite>esbuild=0.28.1 sparkyfitness-server-pnpm-deps> zustand=5.0.15 sparkyfitness-server-pnpm-deps> sparkyfitness-server-pnpm-deps> [package-extensions.@kingstinct/react-native-healthkit@13.dependencies] sparkyfitness-server-pnpm-deps> @expo/config-plugins=^57.0.0 sparkyfitness-server-pnpm-deps> sparkyfitness-server-pnpm-deps> [package-extensions.react-native-worklets.dependencies] sparkyfitness-server-pnpm-deps> @babel/generator=* sparkyfitness-server-pnpm-deps> sparkyfitness-server-pnpm-deps> [package-extensions.uniwind.dependencies] sparkyfitness-server-pnpm-deps> metro=* sparkyfitness-server-pnpm-deps> metro-cache=* sparkyfitness-server-pnpm-deps> sparkyfitness-server-pnpm-deps> [patched-dependencies] sparkyfitness-server-pnpm-deps> @bacons/apple-targets@4.0.6=/build/source/patches/@bacons__apple-targets@4.0.6.patch sparkyfitness-server-pnpm-deps> react-native-health-connect@4.1.3=/build/source/patches/react-native-health-connect@4.1.3.patch sparkyfitness-server-pnpm-deps> sparkyfitness-server-pnpm-deps> [supported-architectures] sparkyfitness-server-pnpm-deps> cpu[]=current sparkyfitness-server-pnpm-deps> cpu[]=x64 sparkyfitness-server-pnpm-deps> cpu[]=arm64 sparkyfitness-server-pnpm-deps> os[]=current sparkyfitness-server-pnpm-deps> os[]=linux sparkyfitness-server-pnpm-deps> sparkyfitness-frontend-pnpm-deps> @jsr:registry=https://npm.jsr.io/ sparkyfitness-frontend-pnpm-deps> globalconfig=/build/.home/.config/pnpm/rc sparkyfitness-frontend-pnpm-deps> inject-workspace-packages=true sparkyfitness-frontend-pnpm-deps> manage-package-manager-versions=false sparkyfitness-frontend-pnpm-deps> minimum-release-age=4320 sparkyfitness-frontend-pnpm-deps> minimum-release-age-exclude[]=assistant-cloud sparkyfitness-frontend-pnpm-deps> minimum-release-age-exclude[]=@assistant-ui/* sparkyfitness-frontend-pnpm-deps> minimum-release-age-exclude[]=expo sparkyfitness-frontend-pnpm-deps> minimum-release-age-exclude[]=expo-* sparkyfitness-frontend-pnpm-deps> minimum-release-age-exclude[]=@expo/* sparkyfitness-frontend-pnpm-deps> minimum-release-age-exclude[]=babel-preset-expo sparkyfitness-frontend-pnpm-deps> npm-globalconfig=/nix/store/z5piarlh57mjwr4c9w318ay97sxr6c9m-nodejs-slim-24.20.0/etc/npmrc sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=@scarf/scarf sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=@shopify/react-native-skia sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=@swc/core sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=@parcel/watcher sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=bcrypt sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=sharp sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=esbuild sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=unrs-resolver sparkyfitness-frontend-pnpm-deps> only-built-dependencies[]=vue-demi sparkyfitness-frontend-pnpm-deps> packages[]=frontend sparkyfitness-frontend-pnpm-deps> packages[]=SparkyFitnessFrontend sparkyfitness-frontend-pnpm-deps> packages[]=shared sparkyfitness-frontend-pnpm-deps> packages[]=SparkyFitnessMobile sparkyfitness-frontend-pnpm-deps> packages[]=SparkyFitnessServer sparkyfitness-frontend-pnpm-deps> packages[]=docs sparkyfitness-frontend-pnpm-deps> registry=https://registry.npmjs.org/ sparkyfitness-frontend-pnpm-deps> reporter=append-only sparkyfitness-frontend-pnpm-deps> side-effects-cache=false sparkyfitness-frontend-pnpm-deps> store-dir=/build/tmp.lFhW71oRoh sparkyfitness-frontend-pnpm-deps> update-notifier=false sparkyfitness-frontend-pnpm-deps> user-agent=pnpm/10.34.5 npm/? node/v24.20.0 linux x64 sparkyfitness-frontend-pnpm-deps> sparkyfitness-frontend-pnpm-deps> [overrides] sparkyfitness-frontend-pnpm-deps> @babel/core=7.29.0 sparkyfitness-frontend-pnpm-deps> @expo/dom-webview=57.0.1 sparkyfitness-frontend-pnpm-deps> assistant-cloud=0.2.0 sparkyfitness-frontend-pnpm-deps> eslint-plugin-react-hooks=7.0.1 sparkyfitness-frontend-pnpm-deps> react=19.2.3 sparkyfitness-frontend-pnpm-deps> react-dom=19.2.3 sparkyfitness-frontend-pnpm-deps> side-channel=1.0.6 sparkyfitness-frontend-pnpm-deps> tailwindcss=4.3.3 sparkyfitness-frontend-pnpm-deps> tsx>esbuild=0.28.1 sparkyfitness-frontend-pnpm-deps> vite>esbuild=0.28.1 sparkyfitness-frontend-pnpm-deps> zustand=5.0.15 sparkyfitness-frontend-pnpm-deps> sparkyfitness-frontend-pnpm-deps> [package-extensions.@kingstinct/react-native-healthkit@13.dependencies] sparkyfitness-frontend-pnpm-deps> @expo/config-plugins=^57.0.0 sparkyfitness-frontend-pnpm-deps> sparkyfitness-frontend-pnpm-deps> [package-extensions.react-native-worklets.dependencies] sparkyfitness-frontend-pnpm-deps> @babel/generator=* sparkyfitness-frontend-pnpm-deps> sparkyfitness-frontend-pnpm-deps> [package-extensions.uniwind.dependencies] sparkyfitness-frontend-pnpm-deps> metro=* sparkyfitness-frontend-pnpm-deps> metro-cache=* sparkyfitness-frontend-pnpm-deps> sparkyfitness-frontend-pnpm-deps> [patched-dependencies] sparkyfitness-frontend-pnpm-deps> @bacons/apple-targets@4.0.6=/build/source/patches/@bacons__apple-targets@4.0.6.patch sparkyfitness-frontend-pnpm-deps> react-native-health-connect@4.1.3=/build/source/patches/react-native-health-connect@4.1.3.patch sparkyfitness-frontend-pnpm-deps> sparkyfitness-frontend-pnpm-deps> [supported-architectures] sparkyfitness-frontend-pnpm-deps> cpu[]=current sparkyfitness-frontend-pnpm-deps> cpu[]=x64 sparkyfitness-frontend-pnpm-deps> cpu[]=arm64 sparkyfitness-frontend-pnpm-deps> os[]=current sparkyfitness-frontend-pnpm-deps> os[]=linux sparkyfitness-frontend-pnpm-deps> sparkyfitness-server-pnpm-deps> . |  WARN  using --force I sure hope you know what you are doing sparkyfitness-server-pnpm-deps> Scope: 2 of 6 workspace projects sparkyfitness-frontend-pnpm-deps> . |  WARN  using --force I sure hope you know what you are doing sparkyfitness-frontend-pnpm-deps> Scope: 2 of 6 workspace projects sparkyfitness-server-pnpm-deps> Lockfile is up to date, resolution step is skipped sparkyfitness-frontend-pnpm-deps> Lockfile is up to date, resolution step is skipped sparkyfitness-frontend-pnpm-deps> Progress: resolved 1, reused 0, downloaded 0, added 0 sparkyfitness-server-pnpm-deps> Progress: resolved 1, reused 0, downloaded 0, added 0 sparkyfitness-server-pnpm-deps> . | +1163 sparkyfitness-frontend-pnpm-deps> . | +1615 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 91, added 85 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 281, added 164 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 104, added 105 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 383, added 387 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 106, added 107 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 385, added 389 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 171, added 171 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 415, added 418 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 328, added 319 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 494, added 496 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 667, added 665 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 614, added 616 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 901, added 873 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 856, added 849 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 1121, added 1114 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 1039, added 1039 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 1131, added 1143 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 1232, added 1120 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 1434, added 1244 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 1138, added 1151 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 1146, added 1161 sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 1607, added 1601 sparkyfitness-server-pnpm-deps> Progress: resolved 1163, reused 0, downloaded 1146, added 1163, done sparkyfitness-frontend-pnpm-deps> Progress: resolved 1615, reused 0, downloaded 1609, added 1615, done sparkyfitness-server-pnpm-deps> Done in 11.9s using pnpm v10.34.5 sparkyfitness-server-pnpm-deps> Running phase: fixupPhase sparkyfitness-frontend-pnpm-deps> Done in 12.2s using pnpm v10.34.5 sparkyfitness-frontend-pnpm-deps> Running phase: fixupPhase building '/nix/store/cpwjny9xxl1bygl334x667ylbrc1spw4-sparkyfitness-server-1.7.3.drv' building '/nix/store/cfpc2m1yzlwv8qia94iyjij4q391g9ih-sparkyfitness-frontend-1.7.3.drv' sparkyfitness-server-1.7.3> Running phase: unpackPhase sparkyfitness-server-1.7.3> unpacking source archive /nix/store/mki2wwbvl80fnfpjp3khsz1cm4idwr4g-source sparkyfitness-server-1.7.3> source root is source sparkyfitness-server-1.7.3> Running phase: patchPhase sparkyfitness-server-1.7.3> Running phase: updateAutotoolsGnuConfigScriptsPhase sparkyfitness-server-1.7.3> Running phase: configurePhase sparkyfitness-server-1.7.3> no configure script, doing nothing sparkyfitness-server-1.7.3> Executing pnpmConfigHook sparkyfitness-server-1.7.3> ~ /build/source sparkyfitness-server-1.7.3> /build/source sparkyfitness-server-1.7.3> Found 'pnpm' with version '10.34.5' sparkyfitness-server-1.7.3> Using fetcherVersion: 3 sparkyfitness-server-1.7.3> Configuring pnpm store sparkyfitness-server-1.7.3> Installing dependencies sparkyfitness-server-1.7.3> Final pnpm config: sparkyfitness-server-1.7.3> @jsr:registry=https://npm.jsr.io/ sparkyfitness-server-1.7.3> arch=x64 sparkyfitness-server-1.7.3> globalconfig=/build/.home/.config/pnpm/rc sparkyfitness-server-1.7.3> inject-workspace-packages=true sparkyfitness-server-1.7.3> manage-package-manager-versions=false sparkyfitness-server-1.7.3> minimum-release-age=4320 sparkyfitness-server-1.7.3> minimum-release-age-exclude[]=assistant-cloud sparkyfitness-server-1.7.3> minimum-release-age-exclude[]=@assistant-ui/* sparkyfitness-server-1.7.3> minimum-release-age-exclude[]=expo sparkyfitness-server-1.7.3> minimum-release-age-exclude[]=expo-* sparkyfitness-server-1.7.3> minimum-release-age-exclude[]=@expo/* sparkyfitness-server-1.7.3> minimum-release-age-exclude[]=babel-preset-expo sparkyfitness-server-1.7.3> npm-globalconfig=/nix/store/z5piarlh57mjwr4c9w318ay97sxr6c9m-nodejs-slim-24.20.0/etc/npmrc sparkyfitness-server-1.7.3> only-built-dependencies[]=@scarf/scarf sparkyfitness-server-1.7.3> only-built-dependencies[]=@shopify/react-native-skia sparkyfitness-server-1.7.3> only-built-dependencies[]=@swc/core sparkyfitness-server-1.7.3> only-built-dependencies[]=@parcel/watcher sparkyfitness-server-1.7.3> only-built-dependencies[]=bcrypt sparkyfitness-server-1.7.3> only-built-dependencies[]=sharp sparkyfitness-server-1.7.3> only-built-dependencies[]=esbuild sparkyfitness-server-1.7.3> only-built-dependencies[]=unrs-resolver sparkyfitness-server-1.7.3> only-built-dependencies[]=vue-demi sparkyfitness-server-1.7.3> package-import-method=clone-or-copy sparkyfitness-server-1.7.3> packages[]=frontend sparkyfitness-server-1.7.3> packages[]=SparkyFitnessFrontend sparkyfitness-server-1.7.3> packages[]=shared sparkyfitness-server-1.7.3> packages[]=SparkyFitnessMobile sparkyfitness-server-1.7.3> packages[]=SparkyFitnessServer sparkyfitness-server-1.7.3> packages[]=docs sparkyfitness-server-1.7.3> platform=linux sparkyfitness-server-1.7.3> registry=https://registry.npmjs.org/ sparkyfitness-server-1.7.3> reporter=append-only sparkyfitness-server-1.7.3> store-dir=/build/tmp.iYJFjpkDqd sparkyfitness-server-1.7.3> user-agent=pnpm/10.34.5 npm/? node/v24.20.0 linux x64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> [overrides] sparkyfitness-server-1.7.3> @babel/core=7.29.0 sparkyfitness-server-1.7.3> @expo/dom-webview=57.0.1 sparkyfitness-server-1.7.3> assistant-cloud=0.2.0 sparkyfitness-server-1.7.3> eslint-plugin-react-hooks=7.0.1 sparkyfitness-server-1.7.3> react=19.2.3 sparkyfitness-server-1.7.3> react-dom=19.2.3 sparkyfitness-server-1.7.3> side-channel=1.0.6 sparkyfitness-server-1.7.3> tailwindcss=4.3.3 sparkyfitness-server-1.7.3> tsx>esbuild=0.28.1 sparkyfitness-server-1.7.3> vite>esbuild=0.28.1 sparkyfitness-server-1.7.3> zustand=5.0.15 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> [package-extensions.@kingstinct/react-native-healthkit@13.dependencies] sparkyfitness-server-1.7.3> @expo/config-plugins=^57.0.0 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> [package-extensions.react-native-worklets.dependencies] sparkyfitness-server-1.7.3> @babel/generator=* sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> [package-extensions.uniwind.dependencies] sparkyfitness-server-1.7.3> metro=* sparkyfitness-server-1.7.3> metro-cache=* sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> [patched-dependencies] sparkyfitness-server-1.7.3> @bacons/apple-targets@4.0.6=/build/source/patches/@bacons__apple-targets@4.0.6.patch sparkyfitness-server-1.7.3> react-native-health-connect@4.1.3=/build/source/patches/react-native-health-connect@4.1.3.patch sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> [supported-architectures] sparkyfitness-server-1.7.3> cpu[]=current sparkyfitness-server-1.7.3> cpu[]=x64 sparkyfitness-server-1.7.3> cpu[]=arm64 sparkyfitness-server-1.7.3> os[]=current sparkyfitness-server-1.7.3> os[]=linux sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Scope: 2 of 6 workspace projects sparkyfitness-server-1.7.3> Lockfile is up to date, resolution step is skipped sparkyfitness-server-1.7.3> Progress: resolved 1, reused 0, downloaded 0, added 0 sparkyfitness-server-1.7.3> . | +1116 sparkyfitness-frontend-1.7.3> Running phase: unpackPhase sparkyfitness-frontend-1.7.3> unpacking source archive /nix/store/mki2wwbvl80fnfpjp3khsz1cm4idwr4g-source sparkyfitness-frontend-1.7.3> source root is source sparkyfitness-frontend-1.7.3> Running phase: patchPhase sparkyfitness-frontend-1.7.3> Running phase: updateAutotoolsGnuConfigScriptsPhase sparkyfitness-frontend-1.7.3> Running phase: configurePhase sparkyfitness-frontend-1.7.3> no configure script, doing nothing sparkyfitness-frontend-1.7.3> Executing pnpmConfigHook sparkyfitness-frontend-1.7.3> ~ /build/source sparkyfitness-server-1.7.3> Progress: resolved 1116, reused 1099, downloaded 0, added 239 sparkyfitness-frontend-1.7.3> /build/source sparkyfitness-frontend-1.7.3> Found 'pnpm' with version '10.34.5' sparkyfitness-frontend-1.7.3> Using fetcherVersion: 3 sparkyfitness-frontend-1.7.3> Configuring pnpm store sparkyfitness-server-1.7.3> Progress: resolved 1116, reused 1099, downloaded 0, added 824 sparkyfitness-server-1.7.3> Progress: resolved 1116, reused 1099, downloaded 0, added 1109 sparkyfitness-server-1.7.3> Progress: resolved 1116, reused 1099, downloaded 0, added 1116, done sparkyfitness-server-1.7.3> Done in 4.9s using pnpm v10.34.5 sparkyfitness-server-1.7.3> Patching scripts sparkyfitness-server-1.7.3> patching script interpreter paths in node_modules/husky node_modules/js-yaml node_modules/lint-staged node_modules/prettier node_modules/.bin node_modules/.modules.yaml node_modules/.pnpm node_modules/.pnpm-workspace-state-v1.json sparkyfitness-server-1.7.3> node_modules/.bin/prettier: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.bin/lint-staged: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.bin/husky: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/better-auth@1.7.4_@opentelemetry+api@1.9.1_mongodb@7.1.0_pg@8.23.0_react-dom@19.2.3_rea_e9c92e7aa1369ccf0b30a651c6af54c3/node_modules/better-auth/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/bson@7.3.2/node_modules/bson/etc/prepare.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/mongodb@7.1.0/node_modules/mongodb/etc/prepare.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/vitest.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/node_modules/.bin/why-is-node-running: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/bin/vite.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/rolldown: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/tsx: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/postcss@8.5.28/node_modules/postcss/node_modules/.bin/nanoid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/nanoid@3.3.18/node_modules/nanoid/bin/nanoid.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/rolldown@1.2.8/node_modules/rolldown/bin/cli.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/esbuild@0.28.1/node_modules/esbuild/bin/esbuild: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/esbuild@0.28.1/node_modules/esbuild/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/acorn@8.18.0/node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/terser@5.51.2/node_modules/terser/bin/terser: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/terser@5.51.2/node_modules/terser/bin/uglifyjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/terser@5.51.2/node_modules/terser/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/tsx@4.23.13/node_modules/tsx/dist/cli.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/tsx@4.23.13/node_modules/tsx/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/bin.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/why-is-node-running@2.3.0/node_modules/why-is-node-running/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@vitest+coverage-v8@5.0.0_vitest@5.0.0/node_modules/@vitest/coverage-v8/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/magicast@0.5.4/node_modules/magicast/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+parser@7.29.8/node_modules/@babel/parser/bin/babel-parser.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@vitest+mocker@5.0.0_vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0_/node_modules/@vitest/mocker/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/node_modules/.bin/tldts: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/tldts@6.1.86/node_modules/tldts/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/vue@3.5.30_typescript@6.0.3/node_modules/vue/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/vue@3.5.30_typescript@6.0.3/node_modules/vue/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@vue+compiler-sfc@3.5.30/node_modules/@vue/compiler-sfc/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@vue+compiler-core@3.5.30/node_modules/@vue/compiler-core/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_51f2382afb91985c854d1907004cfcf5/node_modules/expo-constants/scripts/get-app-config-ios.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_51f2382afb91985c854d1907004cfcf5/node_modules/expo-constants/scripts/with-node.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_51f2382afb91985c854d1907004cfcf5/node_modules/expo-constants/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_51f2382afb91985c854d1907004cfcf5/node_modules/expo-constants/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_51f2382afb91985c854d1907004cfcf5/node_modules/expo-constants/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_51f2382afb91985c854d1907004cfcf5/node_modules/expo-constants/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/main.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/excpretty: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/agent-cli-detector: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/lan-network: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/sandbox-cli-detector: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_4b16acdc0bdf1bdd112d6668e416f8a8/node_modules/@expo/cli/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+config-plugins@57.0.9_typescript@6.0.3/node_modules/@expo/config-plugins/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/bin/autolinking: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/bin/cli: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/bin/fingerprint: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/scripts/xcode/with-environment.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/scripts/compose-source-maps.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/scripts/node-binary.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/scripts/react-native-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/scripts/resolveAppEntry.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/node_modules/.bin/expo-internal: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_5e0ab52f2fb02efaba1aa9f3f0d2720e/node_modules/expo/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+config@57.0.9_typescript@6.0.3/node_modules/@expo/config/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+json-file@11.0.1/node_modules/@expo/json-file/node_modules/.bin/json5: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+require-utils@57.0.5_typescript@6.0.3/node_modules/@expo/require-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+require-utils@57.0.5_typescript@6.0.3/node_modules/@expo/require-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+core@7.29.0/node_modules/@babel/core/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+core@7.29.0/node_modules/@babel/core/node_modules/.bin/json5: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+core@7.29.0/node_modules/@babel/core/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+helper-compilation-targets@7.29.7/node_modules/@babel/helper-compilation-targets/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+helper-compilation-targets@7.29.7/node_modules/@babel/helper-compilation-targets/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+generator@7.29.8/node_modules/@babel/generator/node_modules/.bin/jsesc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+generator@7.29.8/node_modules/@babel/generator/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/jsesc@3.1.0/node_modules/jsesc/bin/jsesc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/update-browserslist-db@1.3.2_browserslist@4.28.9/node_modules/update-browserslist-db/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/update-browserslist-db@1.3.2_browserslist@4.28.9/node_modules/update-browserslist-db/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/browserslist@4.28.9/node_modules/browserslist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/browserslist@4.28.9/node_modules/browserslist/node_modules/.bin/baseline-browser-mapping: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/browserslist@4.28.9/node_modules/browserslist/node_modules/.bin/update-browserslist-db: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/baseline-browser-mapping@2.11.21/node_modules/baseline-browser-mapping/dist/cli.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/semver@6.3.1/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+template@7.29.7/node_modules/@babel/template/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+traverse@7.29.8/node_modules/@babel/traverse/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/xcode@3.0.1/node_modules/xcode/node_modules/.bin/uuid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/uuid@7.0.3/node_modules/uuid/dist/bin/uuid: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/node_modules/.bin/node-which: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/which@2.0.2/node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+image-utils@0.11.5_typescript@6.0.3/node_modules/@expo/image-utils/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_1ba95531e8eb6604a9563b6ea9a65f64/node_modules/@expo/log-box/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_1ba95531e8eb6604a9563b6ea9a65f64/node_modules/@expo/log-box/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_1ba95531e8eb6604a9563b6ea9a65f64/node_modules/@expo/log-box/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_1ba95531e8eb6604a9563b6ea9a65f64/node_modules/@expo/log-box/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_301a0ae60e60be7f9d55a04f9dccec05/node_modules/@expo/dom-webview/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_301a0ae60e60be7f9d55a04f9dccec05/node_modules/@expo/dom-webview/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_301a0ae60e60be7f9d55a04f9dccec05/node_modules/@expo/dom-webview/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_301a0ae60e60be7f9d55a04f9dccec05/node_modules/@expo/dom-webview/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/sdks/hermes-engine/utils/build-apple-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/sdks/hermes-engine/utils/build-hermes-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/sdks/hermes-engine/utils/build-hermesc-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/sdks/hermes-engine/utils/build-ios-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/sdks/hermes-engine/utils/build-mac-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/sdks/hermes-engine/utils/copy-hermes-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/xcode/ccache-clang++.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/xcode/ccache-clang.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/xcode/with-environment.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/react_native_pods_utils/script_phases.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/compose-source-maps.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/ios-configure-glog.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/packager.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/scripts/react-native-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_95e0479207c4e7f5eb7f8c665178b2ad/node_modules/react-native/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+codegen@0.86.3_@babel+core@7.29.0/node_modules/@react-native/codegen/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/node_modules/.bin/loose-envify: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/loose-envify@1.4.0/node_modules/loose-envify/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+community-cli-plugin@0.86.3_@react-native+metro-config@0.86.3_@babel+core@7.29.0_/node_modules/@react-native/community-cli-plugin/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+community-cli-plugin@0.86.3_@react-native+metro-config@0.86.3_@babel+core@7.29.0_/node_modules/@react-native/community-cli-plugin/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+debugger-shell@0.86.3/node_modules/@react-native/debugger-shell/node_modules/.bin/dotslash: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/is-wsl@2.2.0/node_modules/is-wsl/node_modules/.bin/is-docker: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+dev-middleware@0.86.3/node_modules/@react-native/dev-middleware/node_modules/.bin/print-chrome-path: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/fb-dotslash@0.5.8/node_modules/fb-dotslash/bin/dotslash: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/bin/print-chrome-path.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/scripts/download-chrome.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/scripts/format.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/manual-chrome-launcher.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/is-docker@2.2.1/node_modules/is-docker/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/mkdirp@1.0.4/node_modules/mkdirp/bin/cmd.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/chromium-edge-launcher@0.3.0/node_modules/chromium-edge-launcher/scripts/format.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> Installing dependencies sparkyfitness-frontend-1.7.3> Final pnpm config: sparkyfitness-server-1.7.3> node_modules/.pnpm/chromium-edge-launcher@0.3.0/node_modules/chromium-edge-launcher/manual-edge-launcher.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/chromium-edge-launcher@0.3.0/node_modules/chromium-edge-launcher/node_modules/.bin/mkdirp: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/open@7.4.2/node_modules/open/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/open@7.4.2/node_modules/open/node_modules/.bin/is-docker: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/send@0.19.2/node_modules/send/node_modules/.bin/mime: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/mime@1.6.0/node_modules/mime/src/build.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/mime@1.6.0/node_modules/mime/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro@0.84.6/node_modules/metro/src/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro@0.84.6/node_modules/metro/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro@0.84.6/node_modules/metro/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-config@0.84.6/node_modules/metro-config/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-config@0.84.6/node_modules/metro-config/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-source-map@0.84.6/node_modules/metro-source-map/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-symbolicate@0.84.6/node_modules/metro-symbolicate/src/index.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-transform-worker@0.84.6/node_modules/metro-transform-worker/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-transform-worker@0.84.6/node_modules/metro-transform-worker/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/semver@7.8.5/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-minify-terser@0.84.6/node_modules/metro-minify-terser/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+helper-create-class-features-plugin@7.29.7_@babel+core@7.29.0/node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> @jsr:registry=https://npm.jsr.io/ sparkyfitness-frontend-1.7.3> arch=x64 sparkyfitness-frontend-1.7.3> globalconfig=/build/.home/.config/pnpm/rc sparkyfitness-frontend-1.7.3> inject-workspace-packages=true sparkyfitness-frontend-1.7.3> manage-package-manager-versions=false sparkyfitness-frontend-1.7.3> minimum-release-age=4320 sparkyfitness-frontend-1.7.3> minimum-release-age-exclude[]=assistant-cloud sparkyfitness-frontend-1.7.3> minimum-release-age-exclude[]=@assistant-ui/* sparkyfitness-frontend-1.7.3> minimum-release-age-exclude[]=expo sparkyfitness-frontend-1.7.3> minimum-release-age-exclude[]=expo-* sparkyfitness-frontend-1.7.3> minimum-release-age-exclude[]=@expo/* sparkyfitness-frontend-1.7.3> minimum-release-age-exclude[]=babel-preset-expo sparkyfitness-frontend-1.7.3> npm-globalconfig=/nix/store/z5piarlh57mjwr4c9w318ay97sxr6c9m-nodejs-slim-24.20.0/etc/npmrc sparkyfitness-frontend-1.7.3> only-built-dependencies[]=@scarf/scarf sparkyfitness-frontend-1.7.3> only-built-dependencies[]=@shopify/react-native-skia sparkyfitness-frontend-1.7.3> only-built-dependencies[]=@swc/core sparkyfitness-frontend-1.7.3> only-built-dependencies[]=@parcel/watcher sparkyfitness-frontend-1.7.3> only-built-dependencies[]=bcrypt sparkyfitness-frontend-1.7.3> only-built-dependencies[]=sharp sparkyfitness-frontend-1.7.3> only-built-dependencies[]=esbuild sparkyfitness-frontend-1.7.3> only-built-dependencies[]=unrs-resolver sparkyfitness-frontend-1.7.3> only-built-dependencies[]=vue-demi sparkyfitness-frontend-1.7.3> package-import-method=clone-or-copy sparkyfitness-frontend-1.7.3> packages[]=frontend sparkyfitness-frontend-1.7.3> packages[]=SparkyFitnessFrontend sparkyfitness-frontend-1.7.3> packages[]=shared sparkyfitness-frontend-1.7.3> packages[]=SparkyFitnessMobile sparkyfitness-frontend-1.7.3> packages[]=SparkyFitnessServer sparkyfitness-frontend-1.7.3> packages[]=docs sparkyfitness-frontend-1.7.3> platform=linux sparkyfitness-frontend-1.7.3> registry=https://registry.npmjs.org/ sparkyfitness-frontend-1.7.3> reporter=append-only sparkyfitness-frontend-1.7.3> store-dir=/build/tmp.rYl5LRzvBO sparkyfitness-frontend-1.7.3> user-agent=pnpm/10.34.5 npm/? node/v24.20.0 linux x64 sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> [overrides] sparkyfitness-frontend-1.7.3> @babel/core=7.29.0 sparkyfitness-frontend-1.7.3> @expo/dom-webview=57.0.1 sparkyfitness-frontend-1.7.3> assistant-cloud=0.2.0 sparkyfitness-frontend-1.7.3> eslint-plugin-react-hooks=7.0.1 sparkyfitness-frontend-1.7.3> react=19.2.3 sparkyfitness-frontend-1.7.3> react-dom=19.2.3 sparkyfitness-frontend-1.7.3> side-channel=1.0.6 sparkyfitness-frontend-1.7.3> tailwindcss=4.3.3 sparkyfitness-frontend-1.7.3> tsx>esbuild=0.28.1 sparkyfitness-frontend-1.7.3> vite>esbuild=0.28.1 sparkyfitness-frontend-1.7.3> zustand=5.0.15 sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> [package-extensions.@kingstinct/react-native-healthkit@13.dependencies] sparkyfitness-frontend-1.7.3> @expo/config-plugins=^57.0.0 sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> [package-extensions.react-native-worklets.dependencies] sparkyfitness-frontend-1.7.3> @babel/generator=* sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> [package-extensions.uniwind.dependencies] sparkyfitness-frontend-1.7.3> metro=* sparkyfitness-frontend-1.7.3> metro-cache=* sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> [patched-dependencies] sparkyfitness-frontend-1.7.3> @bacons/apple-targets@4.0.6=/build/source/patches/@bacons__apple-targets@4.0.6.patch sparkyfitness-frontend-1.7.3> react-native-health-connect@4.1.3=/build/source/patches/react-native-health-connect@4.1.3.patch sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> [supported-architectures] sparkyfitness-frontend-1.7.3> cpu[]=current sparkyfitness-frontend-1.7.3> cpu[]=x64 sparkyfitness-frontend-1.7.3> cpu[]=arm64 sparkyfitness-frontend-1.7.3> os[]=current sparkyfitness-frontend-1.7.3> os[]=linux sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+helper-create-regexp-features-plugin@7.29.7_@babel+core@7.29.0/node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> sparkyfitness-server-1.7.3> node_modules/.pnpm/regexpu-core@6.4.0/node_modules/regexpu-core/node_modules/.bin/regjsparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/regjsparser@0.13.0/node_modules/regjsparser/bin/parser: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/regjsparser@0.13.0/node_modules/regjsparser/node_modules/.bin/jsesc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+helper-define-polyfill-provider@0.6.8_@babel+core@7.29.0/node_modules/@babel/helper-define-polyfill-provider/node_modules/.bin/resolve: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@babel+plugin-transform-runtime@7.29.7_@babel+core@7.29.0/node_modules/@babel/plugin-transform-runtime/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/babel-plugin-polyfill-corejs2@0.4.17_@babel+core@7.29.0/node_modules/babel-plugin-polyfill-corejs2/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/resolve@1.22.12/node_modules/resolve/bin/resolve: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/core-js-compat@3.50.0/node_modules/core-js-compat/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+virtualized-lists@0.86.3_@types+react@19.3.0_react-native@0.86.3_@babel+c_b37565098ac3885cc4fac7b599307341/node_modules/@react-native/virtualized-lists/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+gradle-plugin@0.86.3/node_modules/@react-native/gradle-plugin/gradlew: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@istanbuljs+load-nyc-config@1.1.0/node_modules/@istanbuljs/load-nyc-config/node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/bin/esparse.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/bin/esvalidate.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/js-yaml@3.15.2/node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/js-yaml@3.15.2/node_modules/js-yaml/node_modules/.bin/esparse: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/js-yaml@3.15.2/node_modules/js-yaml/node_modules/.bin/esvalidate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/istanbul-lib-instrument@5.2.1/node_modules/istanbul-lib-instrument/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/istanbul-lib-instrument@5.2.1/node_modules/istanbul-lib-instrument/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@types+babel__template@7.4.4/node_modules/@types/babel__template/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@types+babel__core@7.20.5/node_modules/@types/babel__core/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> Scope: 2 of 6 workspace projects sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+metro@56.0.2/node_modules/@expo/metro/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+metro@56.0.2/node_modules/@expo/metro/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro@0.84.5/node_modules/metro/src/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro@0.84.5/node_modules/metro/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro@0.84.5/node_modules/metro/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> Lockfile is up to date, resolution step is skipped sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-config@0.84.5/node_modules/metro-config/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-config@0.84.5/node_modules/metro-config/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-source-map@0.84.5/node_modules/metro-source-map/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-symbolicate@0.84.5/node_modules/metro-symbolicate/src/index.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-minify-terser@0.84.5/node_modules/metro-minify-terser/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-transform-worker@0.84.5/node_modules/metro-transform-worker/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/metro-transform-worker@0.84.5/node_modules/metro-transform-worker/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> Progress: resolved 1, reused 0, downloaded 0, added 0 sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+metro-config@57.0.12_expo@57.0.25_typescript@6.0.3/node_modules/@expo/metro-config/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+metro-config@57.0.12_expo@57.0.25_typescript@6.0.3/node_modules/@expo/metro-config/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+metro-config@57.0.12_expo@57.0.25_typescript@6.0.3/node_modules/@expo/metro-config/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+metro-config@57.0.12_expo@57.0.25_typescript@6.0.3/node_modules/@expo/metro-config/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_db1948992568104411c6b009d2432067/node_modules/@expo/log-box/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_db1948992568104411c6b009d2432067/node_modules/@expo/log-box/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_db1948992568104411c6b009d2432067/node_modules/@expo/log-box/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+log-box@57.0.4_@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+c_db1948992568104411c6b009d2432067/node_modules/@expo/log-box/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/main.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/excpretty: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/agent-cli-detector: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> . | +1456 sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/sandbox-cli-detector: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+cli@57.0.27_@expo+dom-webview@57.0.1_expo-constants@57.0.19_expo@57.0.25_react-na_1cbbd51be371c1cd60af61a44f2f7e23/node_modules/@expo/cli/node_modules/.bin/lan-network: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/bin/autolinking: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/bin/cli: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/bin/fingerprint: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/scripts/xcode/with-environment.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/scripts/compose-source-maps.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/scripts/node-binary.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/scripts/react-native-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/scripts/resolveAppEntry.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo@57.0.25_@babel+core@7.29.0_@expo+dom-webview@57.0.1_expo-widgets@57.0.21_react-dom_21d38cc3ff1a0ea56edb7b1fa976a6ea/node_modules/expo/node_modules/.bin/expo-internal: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_892c6724f75642ddedeb9f2966d7200b/node_modules/@expo/dom-webview/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_892c6724f75642ddedeb9f2966d7200b/node_modules/@expo/dom-webview/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_892c6724f75642ddedeb9f2966d7200b/node_modules/@expo/dom-webview/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+dom-webview@57.0.1_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nat_892c6724f75642ddedeb9f2966d7200b/node_modules/@expo/dom-webview/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@react-native+virtualized-lists@0.86.3_@types+react@19.2.18_react-native@0.86.3_@babel+_0fb47266d89a8b37a375ac288495cd6c/node_modules/@react-native/virtualized-lists/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-apple-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-hermes-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-hermesc-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-ios-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-mac-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/copy-hermes-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/xcode/ccache-clang++.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/xcode/ccache-clang.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/xcode/with-environment.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/react_native_pods_utils/script_phases.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/compose-source-maps.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/ios-configure-glog.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/packager.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/react-native-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/npm-package-arg@11.0.3/node_modules/npm-package-arg/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-autolinking@57.0.13_typescript@6.0.3/node_modules/expo-modules-autolinking/bin/expo-modules-autolinking.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+prebuild-config@57.0.16_typescript@6.0.3/node_modules/@expo/prebuild-config/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+prebuild-config@57.0.16_typescript@6.0.3/node_modules/@expo/prebuild-config/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+router-server@57.0.11_expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@ba_0175d04bef7b18c39700df5930550a50/node_modules/@expo/router-server/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+router-server@57.0.11_expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@ba_0175d04bef7b18c39700df5930550a50/node_modules/@expo/router-server/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+router-server@57.0.11_expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@ba_0175d04bef7b18c39700df5930550a50/node_modules/@expo/router-server/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_5b9a05aebea279f400bcc55346154797/node_modules/expo-font/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_5b9a05aebea279f400bcc55346154797/node_modules/expo-font/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_5b9a05aebea279f400bcc55346154797/node_modules/expo-font/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_5b9a05aebea279f400bcc55346154797/node_modules/expo-font/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_9d95ae86aa9861eca811f4393c7e4ea8/node_modules/expo-constants/scripts/get-app-config-ios.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_9d95ae86aa9861eca811f4393c7e4ea8/node_modules/expo-constants/scripts/with-node.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_9d95ae86aa9861eca811f4393c7e4ea8/node_modules/expo-constants/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_9d95ae86aa9861eca811f4393c7e4ea8/node_modules/expo-constants/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_9d95ae86aa9861eca811f4393c7e4ea8/node_modules/expo-constants/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nativ_9d95ae86aa9861eca811f4393c7e4ea8/node_modules/expo-constants/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+xcpretty@4.4.4/node_modules/@expo/xcpretty/build/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+xcpretty@4.4.4/node_modules/@expo/xcpretty/node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/js-yaml@4.3.2/node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/agent-cli-detector@0.1.7/node_modules/agent-cli-detector/dist/cli.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/agent-cli-detector@0.1.7/node_modules/agent-cli-detector/dist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/lan-network@0.2.1/node_modules/lan-network/dist/lan-network-cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/sandbox-cli-detector@0.2.0/node_modules/sandbox-cli-detector/dist/cli.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/sandbox-cli-detector@0.2.0/node_modules/sandbox-cli-detector/dist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+devtools@57.0.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@_1e2d8ede91bf8be17af9dab6906b4126/node_modules/@expo/devtools/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+fingerprint@0.20.13/node_modules/@expo/fingerprint/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+fingerprint@0.20.13/node_modules/@expo/fingerprint/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/babel-preset-expo@57.0.13_@babel+core@7.29.0_@babel+runtime@7.29.7_expo-widgets@57.0.21_07338d8c3a53dd20cd7b296f84f86b83/node_modules/babel-preset-expo/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/babel-preset-expo@57.0.13_@babel+core@7.29.0_@babel+runtime@7.29.7_expo-widgets@57.0.21_07338d8c3a53dd20cd7b296f84f86b83/node_modules/babel-preset-expo/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/babel-preset-expo@57.0.13_@babel+core@7.29.0_@babel+runtime@7.29.7_expo-widgets@57.0.21_07338d8c3a53dd20cd7b296f84f86b83/node_modules/babel-preset-expo/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> Progress: resolved 1456, reused 1451, downloaded 0, added 145 sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-widgets@57.0.21_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@_69bad55a7d8ea3bc46484ce3c15b7f0a/node_modules/expo-widgets/scripts/with-node.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-widgets@57.0.21_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@_69bad55a7d8ea3bc46484ce3c15b7f0a/node_modules/expo-widgets/scripts/xcode-build-bundle.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-widgets@57.0.21_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@_69bad55a7d8ea3bc46484ce3c15b7f0a/node_modules/expo-widgets/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-widgets@57.0.21_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@_69bad55a7d8ea3bc46484ce3c15b7f0a/node_modules/expo-widgets/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-widgets@57.0.21_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@_69bad55a7d8ea3bc46484ce3c15b7f0a/node_modules/expo-widgets/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-widgets@57.0.21_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@_69bad55a7d8ea3bc46484ce3c15b7f0a/node_modules/expo-widgets/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+ui@57.0.20_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@type_86835e44acb1479604ba4358ec6f6c1c/node_modules/@expo/ui/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+ui@57.0.20_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@type_86835e44acb1479604ba4358ec6f6c1c/node_modules/@expo/ui/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+ui@57.0.20_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@type_86835e44acb1479604ba4358ec6f6c1c/node_modules/@expo/ui/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+ui@57.0.20_@babel+core@7.29.0_@types+react-dom@19.3.0_@types+react@19.2.18__@type_86835e44acb1479604ba4358ec6f6c1c/node_modules/@expo/ui/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native-worklets@0.10.1_@babel+core@7.29.0_@react-native+metro-config@0.86.3_@babe_d7714303070f5f8f19d3c6bfe384219f/node_modules/react-native-worklets/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native-worklets@0.10.1_@babel+core@7.29.0_@react-native+metro-config@0.86.3_@babe_d7714303070f5f8f19d3c6bfe384219f/node_modules/react-native-worklets/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_b725de7ff16d95711193ac32d2e2c0c8/node_modules/expo-asset/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_b725de7ff16d95711193ac32d2e2c0c8/node_modules/expo-asset/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_b725de7ff16d95711193ac32d2e2c0c8/node_modules/expo-asset/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_b725de7ff16d95711193ac32d2e2c0c8/node_modules/expo-asset/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_817b755039ed5fd4e5d49f3acdd660f4/node_modules/expo-file-system/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_817b755039ed5fd4e5d49f3acdd660f4/node_modules/expo-file-system/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_817b755039ed5fd4e5d49f3acdd660f4/node_modules/expo-file-system/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_817b755039ed5fd4e5d49f3acdd660f4/node_modules/expo-file-system/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+expo-modules-macros-plugin@0.6.1/node_modules/@expo/expo-modules-macros-plugin/apple/build.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_a91d6885f473a20decb00f2b842bdc4a/node_modules/expo-font/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_a91d6885f473a20decb00f2b842bdc4a/node_modules/expo-font/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_a91d6885f473a20decb00f2b842bdc4a/node_modules/expo-font/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-font@57.0.4_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest_a91d6885f473a20decb00f2b842bdc4a/node_modules/expo-font/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-keep-awake@57.0.2_expo@57.0.25_react@19.2.3/node_modules/expo-keep-awake/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-keep-awake@57.0.2_expo@57.0.25_react@19.2.3/node_modules/expo-keep-awake/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-keep-awake@57.0.2_expo@57.0.25_react@19.2.3/node_modules/expo-keep-awake/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-core@57.0.19_react-native-worklets@0.10.1_@babel+core@7.29.0_@react-native_e59e638792f803c7d3cc7ad20fa341ee/node_modules/expo-modules-core/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+devtools@57.0.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@_c70f77d92175281fb22d97dec00884a1/node_modules/@expo/devtools/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_8026a16a804fbcfba5ffe7364f159418/node_modules/expo-modules-jsi/apple/scripts/build-xcframework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_8026a16a804fbcfba5ffe7364f159418/node_modules/expo-modules-jsi/apple/scripts/create-stub-xcframework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_8026a16a804fbcfba5ffe7364f159418/node_modules/expo-modules-jsi/apple/scripts/generate-modulemap.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_8026a16a804fbcfba5ffe7364f159418/node_modules/expo-modules-jsi/apple/scripts/test.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_8026a16a804fbcfba5ffe7364f159418/node_modules/expo-modules-jsi/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+router-server@57.0.11_expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@ba_892c1e3dc28d929daa1be8e02e3a712a/node_modules/@expo/router-server/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+router-server@57.0.11_expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@ba_892c1e3dc28d929daa1be8e02e3a712a/node_modules/@expo/router-server/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@expo+router-server@57.0.11_expo-constants@57.0.19_expo@57.0.25_react-native@0.86.3_@ba_892c1e3dc28d929daa1be8e02e3a712a/node_modules/@expo/router-server/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-core@57.0.19_react-native-worklets@0.10.1_@babel+core@7.29.0_@react-native_3f576f0ecf43532b9726c915c3667304/node_modules/expo-modules-core/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_a18691d4849eb0d9de834a5aff2d1f58/node_modules/expo-modules-jsi/apple/scripts/build-xcframework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_a18691d4849eb0d9de834a5aff2d1f58/node_modules/expo-modules-jsi/apple/scripts/create-stub-xcframework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_a18691d4849eb0d9de834a5aff2d1f58/node_modules/expo-modules-jsi/apple/scripts/generate-modulemap.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_a18691d4849eb0d9de834a5aff2d1f58/node_modules/expo-modules-jsi/apple/scripts/test.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-modules-jsi@57.1.1_react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-prese_a18691d4849eb0d9de834a5aff2d1f58/node_modules/expo-modules-jsi/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native-worklets@0.10.1_@babel+core@7.29.0_@react-native+metro-config@0.86.3_@babe_fb3a8ad4e81285ae2f4c2171580c4deb/node_modules/react-native-worklets/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/react-native-worklets@0.10.1_@babel+core@7.29.0_@react-native+metro-config@0.86.3_@babe_fb3a8ad4e81285ae2f4c2171580c4deb/node_modules/react-native-worklets/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-network@57.0.2_expo@57.0.25_react@19.2.3/node_modules/expo-network/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-network@57.0.2_expo@57.0.25_react@19.2.3/node_modules/expo-network/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-network@57.0.2_expo@57.0.25_react@19.2.3/node_modules/expo-network/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_6029eb630a6b7faebe9e56aa9900a40e/node_modules/expo-file-system/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_6029eb630a6b7faebe9e56aa9900a40e/node_modules/expo-file-system/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_6029eb630a6b7faebe9e56aa9900a40e/node_modules/expo-file-system/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-file-system@57.0.7_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_6029eb630a6b7faebe9e56aa9900a40e/node_modules/expo-file-system/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_5d688fe6f4317073a28440d6561b89f2/node_modules/expo-asset/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_5d688fe6f4317073a28440d6561b89f2/node_modules/expo-asset/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_5d688fe6f4317073a28440d6561b89f2/node_modules/expo-asset/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-asset@57.0.18_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+je_5d688fe6f4317073a28440d6561b89f2/node_modules/expo-asset/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-web-browser@57.0.3_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_a1b93d1c05badc6c099ad5d212033f8d/node_modules/expo-web-browser/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-web-browser@57.0.3_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_a1b93d1c05badc6c099ad5d212033f8d/node_modules/expo-web-browser/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-web-browser@57.0.3_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_a1b93d1c05badc6c099ad5d212033f8d/node_modules/expo-web-browser/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-web-browser@57.0.3_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-nati_a1b93d1c05badc6c099ad5d212033f8d/node_modules/expo-web-browser/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-secure-store@57.0.4_expo@57.0.25/node_modules/expo-secure-store/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-secure-store@57.0.4_expo@57.0.25/node_modules/expo-secure-store/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-secure-store@57.0.4_expo@57.0.25/node_modules/expo-secure-store/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/expo-linking@57.0.11_expo@57.0.25_react-native@0.86.3_@babel+core@7.29.0_@react-native+_0f855f614732f3f20dac730c7d0a080e/node_modules/expo-linking/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@better-auth+sso@1.7.4_@better-auth+core@1.7.4_@better-auth+utils@0.4.2_@better-fetch+f_a7acb67057e476f2d250c87f6e41ed32/node_modules/@better-auth/sso/node_modules/.bin/tldts: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@better-auth+sso@1.7.4_@better-auth+core@1.7.4_@better-auth+utils@0.4.2_@better-fetch+f_a7acb67057e476f2d250c87f6e41ed32/node_modules/@better-auth/sso/node_modules/.bin/fxparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/fast-xml-parser@5.11.1/node_modules/fast-xml-parser/src/cli/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/tldts@7.4.12/node_modules/tldts/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/bcryptjs@3.0.3/node_modules/bcryptjs/bin/bcrypt: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@apidevtools+json-schema-ref-parser@14.0.1/node_modules/@apidevtools/json-schema-ref-parser/node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/swagger-jsdoc@6.3.0_openapi-types@12.1.3/node_modules/swagger-jsdoc/bin/swagger-jsdoc.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/swagger-jsdoc@6.3.0_openapi-types@12.1.3/node_modules/swagger-jsdoc/node_modules/.bin/glob: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/glob@11.1.0/node_modules/glob/dist/esm/bin.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/uuid@14.0.2/node_modules/uuid/dist-node/bin/uuid: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> Progress: resolved 1456, reused 1451, downloaded 0, added 840 sparkyfitness-server-1.7.3> node_modules/.pnpm/@eslint+js@10.0.1_eslint@10.10.0_jiti@2.7.0_/node_modules/@eslint/js/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint@10.10.0_jiti@2.7.0/node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint@10.10.0_jiti@2.7.0/node_modules/eslint/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@eslint-community+eslint-utils@4.10.1_eslint@10.10.0_jiti@2.7.0_/node_modules/@eslint-community/eslint-utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/info: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/prepare-tests: interpreter directive changed from "#!/usr/bin/env sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/publish-built-version: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/travis-gh-pages: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/espree@11.2.0/node_modules/espree/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.18.0/node_modules/acorn-jsx/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.70.0_@typescript-eslint+parser@8.70.0_eslint@10.10.0_8ce3c7b80ac493969ffea18a75a849a9/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.70.0_@typescript-eslint+parser@8.70.0_eslint@10.10.0_8ce3c7b80ac493969ffea18a75a849a9/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.70.0_@typescript-eslint+parser@8.70.0_eslint@10.10.0_8ce3c7b80ac493969ffea18a75a849a9/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+parser@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+parser@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/parser/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+parser@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/parser/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+type-utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+type-utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+type-utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+tsconfig-utils@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+tsconfig-utils@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+project-service@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+project-service@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript-eslint+utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-api-utils@2.5.0_typescript@6.0.3/node_modules/ts-api-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-api-utils@2.5.0_typescript@6.0.3/node_modules/ts-api-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint-plugin-n@18.3.0_eslint@10.10.0_jiti@2.7.0__ts-declaration-location@1.0.7_typescript@6.0.3__typescript@6.0.3/node_modules/eslint-plugin-n/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint-plugin-n@18.3.0_eslint@10.10.0_jiti@2.7.0__ts-declaration-location@1.0.7_typescript@6.0.3__typescript@6.0.3/node_modules/eslint-plugin-n/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint-plugin-n@18.3.0_eslint@10.10.0_jiti@2.7.0__ts-declaration-location@1.0.7_typescript@6.0.3__typescript@6.0.3/node_modules/eslint-plugin-n/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint-plugin-n@18.3.0_eslint@10.10.0_jiti@2.7.0__ts-declaration-location@1.0.7_typescript@6.0.3__typescript@6.0.3/node_modules/eslint-plugin-n/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint-compat-utils@0.5.1_eslint@10.10.0_jiti@2.7.0_/node_modules/eslint-compat-utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint-compat-utils@0.5.1_eslint@10.10.0_jiti@2.7.0_/node_modules/eslint-compat-utils/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/eslint-plugin-es-x@7.8.0_eslint@10.10.0_jiti@2.7.0_/node_modules/eslint-plugin-es-x/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-declaration-location@1.0.7_typescript@6.0.3/node_modules/ts-declaration-location/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-declaration-location@1.0.7_typescript@6.0.3/node_modules/ts-declaration-location/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/bin/regexp-tree: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/node_modules/.bin/regexp-tree: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/simple-update-notifier@2.0.0/node_modules/simple-update-notifier/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/nodemon@3.1.14/node_modules/nodemon/bin/nodemon.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/nodemon@3.1.14/node_modules/nodemon/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/nodemon@3.1.14/node_modules/nodemon/node_modules/.bin/nodetouch: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/touch@3.1.1/node_modules/touch/bin/nodetouch.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/prettier@3.9.6/node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/superagent@10.3.0/node_modules/superagent/node_modules/.bin/mime: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/mime@2.6.0/node_modules/mime/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/typescript-eslint@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/typescript-eslint/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/typescript-eslint@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/typescript-eslint/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/typescript-eslint@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/typescript-eslint/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@oclif+core@4.8.3/node_modules/@oclif/core/node_modules/.bin/ejs: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@oclif+core@4.8.3/node_modules/@oclif/core/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/node_modules/.bin/jake: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/jake@10.9.4/node_modules/jake/bin/bash_completion.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> node_modules/.pnpm/jake@10.9.4/node_modules/jake/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript+vfs@1.6.4_typescript@5.9.3/node_modules/@typescript/vfs/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/@typescript+vfs@1.6.4_typescript@5.9.3/node_modules/@typescript/vfs/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/js-yaml@5.4.1/node_modules/js-yaml/bin/js-yaml.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/tsutils@3.21.0_typescript@5.9.3/node_modules/tsutils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/tsutils@3.21.0_typescript@5.9.3/node_modules/tsutils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/lint-staged@17.5.0/node_modules/lint-staged/bin/lint-staged.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/lint-staged@17.5.0/node_modules/lint-staged/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/bin/dev: interpreter directive changed from "#!/usr/bin/env -S node --loader ts-node/esm --disable-warning=ExperimentalWarning" to "/nix/store/xjl7p8dvyk2j53kqf7f43kdj4ypbxz7g-coreutils-9.11/bin/env -S /nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node --loader ts-node/esm --disable-warning=ExperimentalWarning" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/bin/run: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/nodemon: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> Progress: resolved 1456, reused 1451, downloaded 0, added 1419 sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/bcrypt: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/ts-to-zod: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/fxparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/swagger-jsdoc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/tsx: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/uuid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/tldts: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/nodetouch: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/glob: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/why-is-node-running: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/ejs: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/node-which: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/fingerprint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/expo: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/expo-modules-autolinking: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/mime: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/regexp-tree: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/rolldown: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/jake: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/loose-envify: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/excpretty: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/sandbox-cli-detector: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/nanoid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/expo-internal: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/lan-network: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/agent-cli-detector: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/jsesc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/json5: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/print-chrome-path: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/update-browserslist-db: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/mkdirp: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/resolve: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/baseline-browser-mapping: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/dotslash: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/is-docker: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/esvalidate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/regjsparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> node_modules/.pnpm/node_modules/.bin/esparse: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> Finished pnpmConfigHook sparkyfitness-server-1.7.3> Running phase: checkPhase sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> > sparkyfitnessserver@1.7.3 validate /build/source/SparkyFitnessServer sparkyfitness-server-1.7.3> > pnpm run typecheck && pnpm run lint && pnpm run format:check sparkyfitness-server-1.7.3> sparkyfitness-frontend-1.7.3> Progress: resolved 1456, reused 1451, downloaded 0, added 1451 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> > sparkyfitnessserver@1.7.3 typecheck /build/source/SparkyFitnessServer sparkyfitness-server-1.7.3> > tsc --noEmit sparkyfitness-server-1.7.3> sparkyfitness-frontend-1.7.3> Progress: resolved 1456, reused 1451, downloaded 0, added 1456, done sparkyfitness-frontend-1.7.3> Done in 5.1s using pnpm v10.34.5 sparkyfitness-frontend-1.7.3> Patching scripts sparkyfitness-frontend-1.7.3> patching script interpreter paths in node_modules/husky node_modules/js-yaml node_modules/lint-staged node_modules/prettier node_modules/.bin node_modules/.modules.yaml node_modules/.pnpm node_modules/.pnpm-workspace-state-v1.json sparkyfitness-frontend-1.7.3> node_modules/.bin/husky: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.bin/prettier: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.bin/lint-staged: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/node_modules/.bin/node-which: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/which@2.0.2/node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@assistant-ui+core@0.3.18_@assistant-ui+store@0.3.13_@assistant-ui+tap@0.9.17_@types+re_d0ea39e24d1fed432fe497669179f7e1/node_modules/@assistant-ui/core/node_modules/.bin/nanoid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/nanoid@6.0.1/node_modules/nanoid/bin/nanoid.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/assistant-stream@0.3.42_ioredis@5.10.1/node_modules/assistant-stream/node_modules/.bin/nanoid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/better-auth@1.7.4_@opentelemetry+api@1.9.1_mongodb@7.1.0_pg@8.23.0_react-dom@19.2.3_rea_e9c92e7aa1369ccf0b30a651c6af54c3/node_modules/better-auth/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/mongodb@7.1.0/node_modules/mongodb/etc/prepare.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/bson@7.3.2/node_modules/bson/etc/prepare.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/vitest.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/node_modules/.bin/why-is-node-running: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@vitest+mocker@5.0.0_vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0_/node_modules/@vitest/mocker/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/bin/vite.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/rolldown: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.9.6_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/tsx: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/nanoid@3.3.18/node_modules/nanoid/bin/nanoid.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/postcss@8.5.28/node_modules/postcss/node_modules/.bin/nanoid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/rolldown@1.2.8/node_modules/rolldown/bin/cli.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/esbuild@0.28.1/node_modules/esbuild/bin/esbuild: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/esbuild@0.28.1/node_modules/esbuild/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/terser@5.51.2/node_modules/terser/bin/terser: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/terser@5.51.2/node_modules/terser/bin/uglifyjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/terser@5.51.2/node_modules/terser/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/tsx@4.23.13/node_modules/tsx/dist/cli.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/tsx@4.23.13/node_modules/tsx/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/bin.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/why-is-node-running@2.3.0/node_modules/why-is-node-running/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@vitest+coverage-v8@5.0.0_vitest@5.0.0/node_modules/@vitest/coverage-v8/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+parser@7.29.8/node_modules/@babel/parser/bin/babel-parser.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/magicast@0.5.4/node_modules/magicast/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/tough-cookie@5.1.2/node_modules/tough-cookie/node_modules/.bin/tldts: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/tldts@6.1.86/node_modules/tldts/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@vue+compiler-core@3.5.30/node_modules/@vue/compiler-core/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vue@3.5.30_typescript@6.0.3/node_modules/vue/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vue@3.5.30_typescript@6.0.3/node_modules/vue/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/acorn@8.18.0/node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@vue+compiler-sfc@3.5.30/node_modules/@vue/compiler-sfc/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@better-auth+sso@1.7.4_@better-auth+core@1.7.4_@better-auth+utils@0.4.2_@better-fetch+f_eddd3f7f8ae833ec8fbf0ab56a5c53b9/node_modules/@better-auth/sso/node_modules/.bin/fxparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@better-auth+sso@1.7.4_@better-auth+core@1.7.4_@better-auth+utils@0.4.2_@better-fetch+f_eddd3f7f8ae833ec8fbf0ab56a5c53b9/node_modules/@better-auth/sso/node_modules/.bin/tldts: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/fast-xml-parser@5.11.1/node_modules/fast-xml-parser/src/cli/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/tldts@7.4.12/node_modules/tldts/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/sharp@0.34.5/node_modules/sharp/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/semver@7.8.5/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/i18next@26.4.2_typescript@6.0.3/node_modules/i18next/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/i18next@26.4.2_typescript@6.0.3/node_modules/i18next/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/node_modules/.bin/loose-envify: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/loose-envify@1.4.0/node_modules/loose-envify/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-i18next@17.0.13_i18next@26.4.2_typescript@6.0.3__react-dom@19.2.3_react@19.2.3__r_41d415f90df1bff745222991ce89cddc/node_modules/react-i18next/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-i18next@17.0.13_i18next@26.4.2_typescript@6.0.3__react-dom@19.2.3_react@19.2.3__r_41d415f90df1bff745222991ce89cddc/node_modules/react-i18next/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-i18next@17.0.13_i18next@26.4.2_typescript@6.0.3__react-dom@19.2.3_react@19.2.3__r_41d415f90df1bff745222991ce89cddc/node_modules/react-i18next/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-apple-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-hermes-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-hermesc-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-ios-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/build-mac-framework.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/sdks/hermes-engine/utils/copy-hermes-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/xcode/ccache-clang++.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/xcode/ccache-clang.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/xcode/with-environment.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/react_native_pods_utils/script_phases.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/compose-source-maps.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/ios-configure-glog.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/packager.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/scripts/react-native-xcode.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/react-native@0.86.3_@babel+core@7.29.0_@react-native+jest-preset@0.86.3_@babel+core@7.2_aa56d519de450133511be1349fc267e3/node_modules/react-native/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@react-native+codegen@0.86.3_@babel+core@7.29.0/node_modules/@react-native/codegen/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+core@7.29.0/node_modules/@babel/core/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+core@7.29.0/node_modules/@babel/core/node_modules/.bin/json5: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+core@7.29.0/node_modules/@babel/core/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jsesc@3.1.0/node_modules/jsesc/bin/jsesc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+generator@7.29.8/node_modules/@babel/generator/node_modules/.bin/jsesc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+generator@7.29.8/node_modules/@babel/generator/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+helper-compilation-targets@7.29.7/node_modules/@babel/helper-compilation-targets/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+helper-compilation-targets@7.29.7/node_modules/@babel/helper-compilation-targets/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/update-browserslist-db@1.3.2_browserslist@4.28.9/node_modules/update-browserslist-db/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/update-browserslist-db@1.3.2_browserslist@4.28.9/node_modules/update-browserslist-db/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/browserslist@4.28.9/node_modules/browserslist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/browserslist@4.28.9/node_modules/browserslist/node_modules/.bin/baseline-browser-mapping: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/browserslist@4.28.9/node_modules/browserslist/node_modules/.bin/update-browserslist-db: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/baseline-browser-mapping@2.11.21/node_modules/baseline-browser-mapping/dist/cli.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/semver@6.3.1/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+traverse@7.29.8/node_modules/@babel/traverse/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+template@7.29.7/node_modules/@babel/template/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/node_modules/.bin/loose-envify: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@react-native+community-cli-plugin@0.86.3_@react-native+metro-config@0.86.3_@babel+core@7.29.0_/node_modules/@react-native/community-cli-plugin/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@react-native+community-cli-plugin@0.86.3_@react-native+metro-config@0.86.3_@babel+core@7.29.0_/node_modules/@react-native/community-cli-plugin/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@react-native+dev-middleware@0.86.3/node_modules/@react-native/dev-middleware/node_modules/.bin/print-chrome-path: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/bin/print-chrome-path.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/scripts/download-chrome.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/scripts/format.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/chrome-launcher@0.15.2/node_modules/chrome-launcher/manual-chrome-launcher.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@react-native+debugger-shell@0.86.3/node_modules/@react-native/debugger-shell/node_modules/.bin/dotslash: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/fb-dotslash@0.5.8/node_modules/fb-dotslash/bin/dotslash: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/is-wsl@2.2.0/node_modules/is-wsl/node_modules/.bin/is-docker: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/mkdirp@1.0.4/node_modules/mkdirp/bin/cmd.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/is-docker@2.2.1/node_modules/is-docker/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/chromium-edge-launcher@0.3.0/node_modules/chromium-edge-launcher/scripts/format.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/chromium-edge-launcher@0.3.0/node_modules/chromium-edge-launcher/manual-edge-launcher.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/chromium-edge-launcher@0.3.0/node_modules/chromium-edge-launcher/node_modules/.bin/mkdirp: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/open@7.4.2/node_modules/open/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/open@7.4.2/node_modules/open/node_modules/.bin/is-docker: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/send@0.19.2/node_modules/send/node_modules/.bin/mime: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/mime@1.6.0/node_modules/mime/src/build.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/mime@1.6.0/node_modules/mime/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro@0.84.6/node_modules/metro/src/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro@0.84.6/node_modules/metro/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro@0.84.6/node_modules/metro/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro-config@0.84.6/node_modules/metro-config/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro-config@0.84.6/node_modules/metro-config/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro-source-map@0.84.6/node_modules/metro-source-map/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro-symbolicate@0.84.6/node_modules/metro-symbolicate/src/index.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro-transform-worker@0.84.6/node_modules/metro-transform-worker/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro-transform-worker@0.84.6/node_modules/metro-transform-worker/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/metro-minify-terser@0.84.6/node_modules/metro-minify-terser/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+helper-create-class-features-plugin@7.29.7_@babel+core@7.29.0/node_modules/@babel/helper-create-class-features-plugin/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/regexpu-core@6.4.0/node_modules/regexpu-core/node_modules/.bin/regjsparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+helper-create-regexp-features-plugin@7.29.7_@babel+core@7.29.0/node_modules/@babel/helper-create-regexp-features-plugin/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/regjsparser@0.13.0/node_modules/regjsparser/bin/parser: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/regjsparser@0.13.0/node_modules/regjsparser/node_modules/.bin/jsesc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+helper-define-polyfill-provider@0.6.8_@babel+core@7.29.0/node_modules/@babel/helper-define-polyfill-provider/node_modules/.bin/resolve: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+plugin-transform-runtime@7.29.7_@babel+core@7.29.0/node_modules/@babel/plugin-transform-runtime/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/babel-plugin-polyfill-corejs2@0.4.17_@babel+core@7.29.0/node_modules/babel-plugin-polyfill-corejs2/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/resolve@1.22.12/node_modules/resolve/bin/resolve: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/core-js-compat@3.50.0/node_modules/core-js-compat/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@react-native+gradle-plugin@0.86.3/node_modules/@react-native/gradle-plugin/gradlew: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@react-native+virtualized-lists@0.86.3_@types+react@19.2.18_react-native@0.86.3_@babel+_0fb47266d89a8b37a375ac288495cd6c/node_modules/@react-native/virtualized-lists/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@istanbuljs+load-nyc-config@1.1.0/node_modules/@istanbuljs/load-nyc-config/node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/js-yaml@3.15.2/node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/js-yaml@3.15.2/node_modules/js-yaml/node_modules/.bin/esvalidate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/js-yaml@3.15.2/node_modules/js-yaml/node_modules/.bin/esparse: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/bin/esparse.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/bin/esvalidate.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/istanbul-lib-instrument@5.2.1/node_modules/istanbul-lib-instrument/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/istanbul-lib-instrument@5.2.1/node_modules/istanbul-lib-instrument/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@types+babel__core@7.20.5/node_modules/@types/babel__core/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@types+babel__template@7.4.4/node_modules/@types/babel__template/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/uuid@14.0.2/node_modules/uuid/dist-node/bin/uuid: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/eslint@10.10.0_jiti@2.7.0/node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/eslint@10.10.0_jiti@2.7.0/node_modules/eslint/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@eslint+js@10.0.1_eslint@10.10.0_jiti@2.7.0_/node_modules/@eslint/js/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@eslint-community+eslint-utils@4.10.1_eslint@10.10.0_jiti@2.7.0_/node_modules/@eslint-community/eslint-utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/info: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/prepare-tests: interpreter directive changed from "#!/usr/bin/env sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/publish-built-version: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ajv@6.14.0/node_modules/ajv/scripts/travis-gh-pages: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.18.0/node_modules/acorn-jsx/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/espree@11.2.0/node_modules/espree/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@tailwindcss+vite@4.3.3_vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0_/node_modules/@tailwindcss/vite/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@tailwindcss+node@4.3.3/node_modules/@tailwindcss/node/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@testing-library+jest-dom@7.0.1_@testing-library+dom@10.4.1_vitest@5.0.0/node_modules/@testing-library/jest-dom/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/node_modules/.bin/lz-string: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/bin/vite.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/rolldown: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0/node_modules/vite/node_modules/.bin/tsx: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/lz-string@1.5.0/node_modules/lz-string/bin/bin.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.5.0_@vitest+coverage-v8@5.0.0_jsdo_84e7de9f6eeef8d88ebf0222da6818d7/node_modules/vitest/vitest.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.5.0_@vitest+coverage-v8@5.0.0_jsdo_84e7de9f6eeef8d88ebf0222da6818d7/node_modules/vitest/node_modules/.bin/why-is-node-running: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.5.0_@vitest+coverage-v8@5.0.0_jsdo_84e7de9f6eeef8d88ebf0222da6818d7/node_modules/vitest/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@vitest+mocker@5.0.0_vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5.51.2_tsx@4.23.13_yaml@2.9.0_/node_modules/@vitest/mocker/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@vitejs+plugin-react@6.1.1_babel-plugin-react-compiler@1.0.0_vite@8.3.0_@types+node@25._a0686cafc383f3593b14f2dbcff78ada/node_modules/@vitejs/plugin-react/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/eslint-plugin-react-hooks@7.0.1_eslint@10.10.0_jiti@2.7.0_/node_modules/eslint-plugin-react-hooks/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/eslint-plugin-react-hooks@7.0.1_eslint@10.10.0_jiti@2.7.0_/node_modules/eslint-plugin-react-hooks/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/eslint-plugin-unused-imports@4.4.1_@typescript-eslint+eslint-plugin@8.70.0_@typescript-_407940c5e6e8c9c6e1e3c4bab15c8227/node_modules/eslint-plugin-unused-imports/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/eslint-plugin-react-refresh@0.5.6_eslint@10.10.0_jiti@2.7.0_/node_modules/eslint-plugin-react-refresh/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.70.0_@typescript-eslint+parser@8.70.0_eslint@10.10.0_8ce3c7b80ac493969ffea18a75a849a9/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.70.0_@typescript-eslint+parser@8.70.0_eslint@10.10.0_8ce3c7b80ac493969ffea18a75a849a9/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.70.0_@typescript-eslint+parser@8.70.0_eslint@10.10.0_8ce3c7b80ac493969ffea18a75a849a9/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+parser@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/parser/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+parser@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+parser@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/parser/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+project-service@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+project-service@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+type-utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+type-utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+type-utils@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+tsconfig-utils@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript-eslint+tsconfig-utils@8.70.0_typescript@6.0.3/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jest@30.5.1_@types+node@25.5.0/node_modules/jest/bin/jest.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jest@30.5.1_@types+node@25.5.0/node_modules/jest/node_modules/.bin/import-local-fixture: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jest@30.5.1_@types+node@25.5.0/node_modules/jest/node_modules/.bin/jest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-api-utils@2.5.0_typescript@6.0.3/node_modules/ts-api-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-api-utils@2.5.0_typescript@6.0.3/node_modules/ts-api-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/glob@10.5.0/node_modules/glob/dist/esm/bin.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/istanbul-lib-instrument@6.0.3/node_modules/istanbul-lib-instrument/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/istanbul-lib-instrument@6.0.3/node_modules/istanbul-lib-instrument/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/test-exclude@7.0.2/node_modules/test-exclude/node_modules/.bin/glob: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/exit-x@0.2.2/node_modules/exit-x/test/fixtures/create-files.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node-addon-api@7.1.1/node_modules/node-addon-api/tools/conversion.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/make-dir@4.0.0/node_modules/make-dir/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jest-snapshot@30.5.1/node_modules/jest-snapshot/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/unrs-resolver@1.12.2/node_modules/unrs-resolver/node_modules/.bin/napi-postinstall: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/napi-postinstall@0.3.4/node_modules/napi-postinstall/lib/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/import-local@3.2.0/node_modules/import-local/fixtures/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jest-cli@30.5.1_@types+node@25.5.0/node_modules/jest-cli/bin/jest.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jest-cli@30.5.1_@types+node@25.5.0/node_modules/jest-cli/node_modules/.bin/import-local-fixture: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/formatly@0.7.0/node_modules/formatly/bin/index.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/knip@6.35.1/node_modules/knip/bin/knip.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/knip@6.35.1/node_modules/knip/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/knip@6.35.1/node_modules/knip/node_modules/.bin/formatly: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/knip@6.35.1/node_modules/knip/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/prettier@3.9.6/node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/node_modules/.bin/json5: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/node_modules/.bin/handlebars: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/node_modules/.bin/jest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-jest@29.4.12_@babel+core@7.29.0_@jest+transform@30.5.1_@jest+types@30.5.1_babel-jest_7150a825fa22528341ad95ac759ab1bc/node_modules/ts-jest/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/handlebars@4.7.9/node_modules/handlebars/bin/handlebars: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/handlebars@4.7.9/node_modules/handlebars/node_modules/.bin/uglifyjs: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/uglify-js@3.19.3/node_modules/uglify-js/bin/uglifyjs: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/typescript-eslint@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/typescript-eslint/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/typescript-eslint@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/typescript-eslint/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/typescript-eslint@8.70.0_eslint@10.10.0_jiti@2.7.0__typescript@6.0.3/node_modules/typescript-eslint/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/workbox-build@7.4.0_@types+babel__core@7.20.5/node_modules/workbox-build/node_modules/.bin/glob: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/workbox-build@7.4.0_@types+babel__core@7.20.5/node_modules/workbox-build/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@babel+preset-env@7.29.7_@babel+core@7.29.0/node_modules/@babel/preset-env/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+pluginutils@3.1.0_rollup@2.80.0/node_modules/@rollup/pluginutils/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/rollup@2.80.0/node_modules/rollup/dist/bin/rollup: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+plugin-node-resolve@15.3.1_rollup@2.80.0/node_modules/@rollup/plugin-node-resolve/node_modules/.bin/resolve: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+plugin-node-resolve@15.3.1_rollup@2.80.0/node_modules/@rollup/plugin-node-resolve/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+plugin-babel@5.3.1_@babel+core@7.29.0_@types+babel__core@7.20.5_rollup@2.80.0/node_modules/@rollup/plugin-babel/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+plugin-replace@2.4.2_rollup@2.80.0/node_modules/@rollup/plugin-replace/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+pluginutils@5.3.0_rollup@2.80.0/node_modules/@rollup/pluginutils/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+plugin-terser@0.4.4_rollup@2.80.0/node_modules/@rollup/plugin-terser/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@rollup+plugin-terser@0.4.4_rollup@2.80.0/node_modules/@rollup/plugin-terser/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@surma+rollup-plugin-off-main-thread@2.2.3/node_modules/@surma/rollup-plugin-off-main-thread/node_modules/.bin/json5: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@surma+rollup-plugin-off-main-thread@2.2.3/node_modules/@surma/rollup-plugin-off-main-thread/node_modules/.bin/ejs: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jake@10.9.4/node_modules/jake/bin/bash_completion.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/jake@10.9.4/node_modules/jake/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite-plugin-pwa@1.3.0_vite@8.3.0_@types+node@25.5.0_esbuild@0.28.1_jiti@2.7.0_terser@5._933e6764f2c5e2db4b00e6bad9b8626f/node_modules/vite-plugin-pwa/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/glob@11.1.0/node_modules/glob/dist/esm/bin.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/vite-plugin-react-click-to-component@4.2.3_react@19.2.3_vite@8.3.0_@types+node@25.5.0_e_63d202c3239845b8bbfb8ac7e855cfef/node_modules/vite-plugin-react-click-to-component/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/bin/dev: interpreter directive changed from "#!/usr/bin/env -S node --loader ts-node/esm --disable-warning=ExperimentalWarning" to "/nix/store/xjl7p8dvyk2j53kqf7f43kdj4ypbxz7g-coreutils-9.11/bin/env -S /nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node --loader ts-node/esm --disable-warning=ExperimentalWarning" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/bin/run: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ts-to-zod@5.1.0/node_modules/ts-to-zod/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@oclif+core@4.8.3/node_modules/@oclif/core/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@oclif+core@4.8.3/node_modules/@oclif/core/node_modules/.bin/ejs: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript+vfs@1.6.4_typescript@5.9.3/node_modules/@typescript/vfs/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/@typescript+vfs@1.6.4_typescript@5.9.3/node_modules/@typescript/vfs/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/node_modules/.bin/jake: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/js-yaml@5.4.1/node_modules/js-yaml/bin/js-yaml.mjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/tsutils@3.21.0_typescript@5.9.3/node_modules/tsutils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/tsutils@3.21.0_typescript@5.9.3/node_modules/tsutils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/lint-staged@17.5.0/node_modules/lint-staged/bin/lint-staged.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/lint-staged@17.5.0/node_modules/lint-staged/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/husky@9.1.7/node_modules/husky/bin.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/v6wsd9nyglmwh32yn7w8z11dq9cksg4m-nodejs-24.20.0/bin/node" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/jest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/ts-jest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/knip: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/knip-bun: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/vite: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/uuid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/ts-to-zod: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/fxparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/tldts: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/jiti: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/parser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/formatly: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/import-local-fixture: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/react-native: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/handlebars: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/json5: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/rolldown: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/terser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/nanoid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/ejs: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/lz-string: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/node-which: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/loose-envify: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/uglifyjs: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/why-is-node-running: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/tsx: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/browserslist: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/glob: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/jsesc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/resolve: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/metro: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/metro-symbolicate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/print-chrome-path: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/rollup: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/baseline-browser-mapping: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/update-browserslist-db: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/jake: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/dotslash: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/esparse: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/napi-postinstall: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/is-docker: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/mkdirp: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/esvalidate: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/regjsparser: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> node_modules/.pnpm/node_modules/.bin/mime: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-frontend-1.7.3> Finished pnpmConfigHook sparkyfitness-frontend-1.7.3> Running phase: buildPhase sparkyfitness-frontend-1.7.3> (!) Your Vite config uses features that are unsupported by `configLoader: 'native'`, which is planned to become the default in a future major version of Vite: sparkyfitness-frontend-1.7.3> - `__dirname` (vite.config.ts:114:27). Use `import.meta.dirname` instead sparkyfitness-frontend-1.7.3> Set `VITE_CONFIG_NATIVE_IGNORE_WARNING=true` to suppress this warning. sparkyfitness-frontend-1.7.3> vite v8.3.0 building client environment for production... sparkyfitness-frontend-1.7.3> ✓ 6012 modules transformed. sparkyfitness-frontend-1.7.3> computing gzip size... sparkyfitness-frontend-1.7.3> dist/registerSW.js 0.13 kB sparkyfitness-frontend-1.7.3> dist/manifest.webmanifest 0.38 kB sparkyfitness-frontend-1.7.3> dist/index.html 2.74 kB │ gzip: 0.82 kB sparkyfitness-frontend-1.7.3> dist/assets/AddExerciseDialog-Bo2ACmvg.css 0.67 kB │ gzip: 0.25 kB sparkyfitness-frontend-1.7.3> dist/assets/Reports-0GTMWxEJ.css 1.50 kB │ gzip: 0.44 kB sparkyfitness-frontend-1.7.3> dist/assets/vendor-others-B6tInbTt.css 18.37 kB │ gzip: 7.04 kB sparkyfitness-frontend-1.7.3> dist/assets/index-BwwjaGg0.css 246.45 kB │ gzip: 33.63 kB sparkyfitness-frontend-1.7.3> dist/assets/collapsible-yOKtgG7p.js 0.10 kB │ gzip: 0.11 kB sparkyfitness-frontend-1.7.3> dist/assets/moodUtils-D8ULvo_a.js 0.22 kB │ gzip: 0.19 kB sparkyfitness-frontend-1.7.3> dist/assets/numberFormatting-BpIusUkR.js 0.23 kB │ gzip: 0.18 kB sparkyfitness-frontend-1.7.3> dist/assets/useDebounce-CEKomn3o.js 0.26 kB │ gzip: 0.21 kB sparkyfitness-frontend-1.7.3> dist/assets/auth-client-B58tCfd7.js 0.28 kB │ gzip: 0.23 kB sparkyfitness-frontend-1.7.3> dist/assets/sourceLabels-DEpemMsG.js 0.34 kB │ gzip: 0.23 kB sparkyfitness-frontend-1.7.3> dist/assets/globalSettingsService-CBSYoXaG.js 0.38 kB │ gzip: 0.23 kB sparkyfitness-frontend-1.7.3> dist/assets/useImageLightbox-cOvi7uxp.js 0.41 kB │ gzip: 0.30 kB sparkyfitness-frontend-1.7.3> dist/assets/nutrientMatching-Cgc8YnVz.js 0.46 kB │ gzip: 0.30 kB sparkyfitness-frontend-1.7.3> dist/assets/search-DiuyTM5N.js 0.48 kB │ gzip: 0.28 kB sparkyfitness-frontend-1.7.3> dist/assets/label-B-7eY-gW.js 0.48 kB │ gzip: 0.31 kB sparkyfitness-frontend-1.7.3> dist/assets/admin-DsOW29Zr.js 0.49 kB │ gzip: 0.26 kB sparkyfitness-frontend-1.7.3> dist/assets/separator-CfuW8wQM.js 0.52 kB │ gzip: 0.33 kB sparkyfitness-frontend-1.7.3> dist/assets/settings-V7XUtkda.js 0.63 kB │ gzip: 0.29 kB sparkyfitness-frontend-1.7.3> dist/assets/PasswordToggle-dB7OnnPc.js 0.63 kB │ gzip: 0.41 kB sparkyfitness-frontend-1.7.3> dist/assets/textarea-Dfgg6H7D.js 0.65 kB │ gzip: 0.40 kB sparkyfitness-frontend-1.7.3> dist/assets/useMedicationDisplayPreferences-BmnUzTUr.js 0.71 kB │ gzip: 0.42 kB sparkyfitness-frontend-1.7.3> dist/assets/userManagementService-BsQPAqPe.js 0.73 kB │ gzip: 0.34 kB sparkyfitness-frontend-1.7.3> dist/assets/badge-D92WLwZC.js 0.75 kB │ gzip: 0.39 kB sparkyfitness-frontend-1.7.3> dist/assets/rolldown-runtime-qXqUbbKo.js 0.77 kB │ gzip: 0.44 kB sparkyfitness-frontend-1.7.3> dist/assets/avatar-DzgYx2mB.js 0.79 kB │ gzip: 0.38 kB sparkyfitness-frontend-1.7.3> dist/assets/useSettings-D4fKiPbw.js 0.88 kB │ gzip: 0.46 kB sparkyfitness-frontend-1.7.3> dist/assets/diary-CqqtBCqw.js 0.90 kB │ gzip: 0.41 kB sparkyfitness-frontend-1.7.3> dist/assets/slider-CU2Jg_mR.js 0.90 kB │ gzip: 0.49 kB sparkyfitness-frontend-1.7.3> dist/assets/radio-group-dxGBLTXW.js 0.91 kB │ gzip: 0.48 kB sparkyfitness-frontend-1.7.3> dist/assets/popover-BqcQL5TF.js 0.95 kB │ gzip: 0.49 kB sparkyfitness-frontend-1.7.3> dist/assets/switch-DyH8qiiS.js 0.96 kB │ gzip: 0.50 kB sparkyfitness-frontend-1.7.3> dist/assets/meals-Cxa7ajGJ.js 0.97 kB │ gzip: 0.42 kB sparkyfitness-frontend-1.7.3> dist/assets/integrations-6Gl8TB6i.js 0.97 kB │ gzip: 0.34 kB sparkyfitness-frontend-1.7.3> dist/assets/ConfirmationDialog-C3CtyrZ5.js 0.99 kB │ gzip: 0.49 kB sparkyfitness-frontend-1.7.3> dist/assets/NumericInput-BNCyHSs6.js 1.02 kB │ gzip: 0.56 kB sparkyfitness-frontend-1.7.3> dist/assets/NotFound-BLus2mCv.js 1.03 kB │ gzip: 0.57 kB sparkyfitness-frontend-1.7.3> dist/assets/PolarCallback-0Lpw6tj2.js 1.03 kB │ gzip: 0.61 kB sparkyfitness-frontend-1.7.3> dist/assets/WithingsCallback-BW60O1yW.js 1.03 kB │ gzip: 0.61 kB sparkyfitness-frontend-1.7.3> dist/assets/FitbitCallback-CEw4gnNB.js 1.03 kB │ gzip: 0.61 kB sparkyfitness-frontend-1.7.3> dist/assets/StravaCallback-B5iZUt8M.js 1.03 kB │ gzip: 0.61 kB sparkyfitness-frontend-1.7.3> dist/assets/toggle-CBINTB8b.js 1.05 kB │ gzip: 0.55 kB sparkyfitness-frontend-1.7.3> dist/assets/alert-EFLuG6vT.js 1.06 kB │ gzip: 0.54 kB sparkyfitness-frontend-1.7.3> dist/assets/OuraCallback-CdAgr_6U.js 1.06 kB │ gzip: 0.63 kB sparkyfitness-frontend-1.7.3> dist/assets/GoogleHealthCallback-Bi6PdYIK.js 1.11 kB │ gzip: 0.63 kB sparkyfitness-frontend-1.7.3> dist/assets/card-yC2n6JXX.js 1.15 kB │ gzip: 0.45 kB sparkyfitness-frontend-1.7.3> dist/assets/nutrientUtils-mj6SSlWg.js 1.25 kB │ gzip: 0.63 kB sparkyfitness-frontend-1.7.3> dist/assets/useNutrientGoalPreferences-CcX_eiGK.js 1.25 kB │ gzip: 0.52 kB sparkyfitness-frontend-1.7.3> dist/assets/tabs-BQ-V1LXb.js 1.26 kB │ gzip: 0.53 kB sparkyfitness-frontend-1.7.3> dist/assets/CorosCallback-CF1zs6Xj.js 1.28 kB │ gzip: 0.69 kB sparkyfitness-frontend-1.7.3> dist/assets/reports-BgOKP7ZT.js 1.30 kB │ gzip: 0.48 kB sparkyfitness-frontend-1.7.3> dist/assets/CallbackStatus-BQfPgvrL.js 1.31 kB │ gzip: 0.59 kB sparkyfitness-frontend-1.7.3> dist/assets/accordion-1Zx62Nlo.js 1.31 kB │ gzip: 0.64 kB sparkyfitness-frontend-1.7.3> dist/assets/ActiveUserContext-DBmFU52O.js 1.49 kB │ gzip: 0.80 kB sparkyfitness-frontend-1.7.3> dist/assets/useSleep-BNoLqvXl.js 1.55 kB │ gzip: 0.56 kB sparkyfitness-frontend-1.7.3> dist/assets/dailySummaryService-C6Fq72h-.js 1.57 kB │ gzip: 0.72 kB sparkyfitness-frontend-1.7.3> dist/assets/button-Cli0sBcW.js 1.57 kB │ gzip: 0.77 kB sparkyfitness-frontend-1.7.3> dist/assets/table-BT5H-yXT.js 1.64 kB │ gzip: 0.59 kB sparkyfitness-frontend-1.7.3> dist/assets/useOnboarding-AuexoqTW.js 1.72 kB │ gzip: 0.67 kB sparkyfitness-frontend-1.7.3> dist/assets/mood-aElRwsNU.js 1.74 kB │ gzip: 0.59 kB sparkyfitness-frontend-1.7.3> dist/assets/aiServiceSettingsService-D_IdkBWY.js 1.78 kB │ gzip: 0.56 kB sparkyfitness-frontend-1.7.3> dist/assets/useCustomCategories-DFLXXmUG.js 1.94 kB │ gzip: 0.67 kB sparkyfitness-frontend-1.7.3> dist/assets/checkInService-COLm_Irx.js 1.98 kB │ gzip: 0.75 kB sparkyfitness-frontend-1.7.3> dist/assets/goals-lJt34NAA.js 2.24 kB │ gzip: 0.78 kB sparkyfitness-frontend-1.7.3> dist/assets/ForgotPassword-C_j8an4H.js 2.27 kB │ gzip: 1.08 kB sparkyfitness-frontend-1.7.3> dist/assets/useCustomNutrients-JzUPPRfZ.js 2.30 kB │ gzip: 0.73 kB sparkyfitness-frontend-1.7.3> dist/assets/settings-C1_0RJqx.js 2.31 kB │ gzip: 0.98 kB sparkyfitness-frontend-1.7.3> dist/assets/useAuth-DOHPaxzP.js 2.39 kB │ gzip: 0.99 kB sparkyfitness-frontend-1.7.3> dist/assets/useInvalidateKeys-CGIVR9Bn.js 2.61 kB │ gzip: 0.57 kB sparkyfitness-frontend-1.7.3> dist/assets/useExternalProviderSettings-BllDYdzE.js 2.65 kB │ gzip: 0.70 kB sparkyfitness-frontend-1.7.3> dist/assets/dropdown-menu-DAviReCF.js 2.72 kB │ gzip: 0.89 kB sparkyfitness-frontend-1.7.3> dist/assets/useWaterIntake-D8jD0AzT.js 2.75 kB │ gzip: 1.06 kB sparkyfitness-frontend-1.7.3> dist/assets/UnitInput-DTOYkT_F.js 2.78 kB │ gzip: 1.13 kB sparkyfitness-frontend-1.7.3> dist/assets/ImageLightbox-LYAPs_WV.js 2.99 kB │ gzip: 1.28 kB sparkyfitness-frontend-1.7.3> dist/assets/useCheckIn-DiC1sJwv.js 3.15 kB │ gzip: 0.80 kB sparkyfitness-frontend-1.7.3> dist/assets/chartUtils-DuY4mB0A.js 3.15 kB │ gzip: 1.34 kB sparkyfitness-frontend-1.7.3> dist/assets/useDailyProgress-TaLbtQil.js 3.31 kB │ gzip: 1.25 kB sparkyfitness-frontend-1.7.3> dist/assets/DayNavigator-CmlyMgsV.js 3.37 kB │ gzip: 1.42 kB sparkyfitness-frontend-1.7.3> dist/assets/useMealTypes-BOZJV1Ej.js 3.42 kB │ gzip: 1.18 kB sparkyfitness-frontend-1.7.3> dist/assets/ResetPassword-BZtDqbw9.js 3.78 kB │ gzip: 1.61 kB sparkyfitness-frontend-1.7.3> dist/assets/nutrients-Cb2Udprn.js 4.13 kB │ gzip: 1.11 kB sparkyfitness-frontend-1.7.3> dist/assets/useWorkoutCoaching-CXEKL5C-.js 4.34 kB │ gzip: 1.76 kB sparkyfitness-frontend-1.7.3> dist/assets/WorkoutFeedbackPanel-eSxwD2z3.js 4.48 kB │ gzip: 1.64 kB sparkyfitness-frontend-1.7.3> dist/assets/foodForm-C5LTljET.js 4.93 kB │ gzip: 1.75 kB sparkyfitness-frontend-1.7.3> dist/assets/api-BQ-8BZLf.js 5.30 kB │ gzip: 2.47 kB sparkyfitness-frontend-1.7.3> dist/assets/guidedWorkoutSpeech-CHnRcY_B.js 5.39 kB │ gzip: 1.97 kB sparkyfitness-frontend-1.7.3> dist/assets/calendar-DHkhpI1D.js 5.61 kB │ gzip: 1.93 kB sparkyfitness-frontend-1.7.3> dist/assets/AuthenticationSettings-BUVhJo-b.js 5.79 kB │ gzip: 1.74 kB sparkyfitness-frontend-1.7.3> dist/assets/useFasting-CFBqfhqX.js 5.87 kB │ gzip: 1.88 kB sparkyfitness-frontend-1.7.3> dist/assets/nutrientCalculationService-Cz81vLEU.js 6.41 kB │ gzip: 2.52 kB sparkyfitness-frontend-1.7.3> dist/assets/useCycle-DMj3jG5D.js 6.41 kB │ gzip: 1.21 kB sparkyfitness-frontend-1.7.3> dist/assets/useExerciseSearch-CV8ovWUP.js 6.52 kB │ gzip: 2.27 kB sparkyfitness-frontend-1.7.3> dist/assets/useGoals-i7vCDNea.js 6.54 kB │ gzip: 1.98 kB sparkyfitness-frontend-1.7.3> dist/assets/AutoCalculateToolbar-U5BQGS16.js 6.62 kB │ gzip: 2.57 kB sparkyfitness-frontend-1.7.3> dist/assets/useIntegrations-DvNLoWWE.js 6.62 kB │ gzip: 1.80 kB sparkyfitness-frontend-1.7.3> dist/assets/dialog-CKox0j1k.js 7.57 kB │ gzip: 2.17 kB sparkyfitness-frontend-1.7.3> dist/assets/exercises-Cr96iwNr.js 7.84 kB │ gzip: 2.60 kB sparkyfitness-frontend-1.7.3> dist/assets/exerciseEntryService-D3F4Bl0H.js 8.89 kB │ gzip: 3.52 kB sparkyfitness-frontend-1.7.3> dist/assets/UserManagement-CO02Xn-z.js 9.11 kB │ gzip: 2.90 kB sparkyfitness-frontend-1.7.3> dist/assets/nutritionCalculations-B34IkwlN.js 9.26 kB │ gzip: 2.84 kB sparkyfitness-frontend-1.7.3> dist/assets/externalProviderService-UcrE3XPt.js 10.22 kB │ gzip: 2.08 kB sparkyfitness-frontend-1.7.3> dist/assets/useWorkoutPlans-C5AXzzX5.js 12.19 kB │ gzip: 3.67 kB sparkyfitness-frontend-1.7.3> dist/assets/BarcodeScanner-COVAVv3m.js 13.01 kB │ gzip: 4.08 kB sparkyfitness-frontend-1.7.3> dist/assets/WidgetGrid-CGs9ShdW.js 13.30 kB │ gzip: 5.07 kB sparkyfitness-frontend-1.7.3> dist/assets/DataTable-KzFjOoFl.js 13.45 kB │ gzip: 4.11 kB sparkyfitness-frontend-1.7.3> dist/assets/useMedications-2lD5JUTI.js 14.88 kB │ gzip: 3.23 kB sparkyfitness-frontend-1.7.3> dist/assets/workoutPlayback-C8V0duGA.js 21.37 kB │ gzip: 6.69 kB sparkyfitness-frontend-1.7.3> dist/assets/useExercises-CdkjWhGB.js 21.59 kB │ gzip: 6.01 kB sparkyfitness-frontend-1.7.3> dist/assets/Goals-D1OACJnq.js 24.81 kB │ gzip: 6.65 kB sparkyfitness-frontend-1.7.3> dist/assets/Auth-rkJlEprp.js 25.57 kB │ gzip: 7.17 kB sparkyfitness-frontend-1.7.3> dist/assets/MealBuilder-BIV_bEn-.js 31.49 kB │ gzip: 8.76 kB sparkyfitness-frontend-1.7.3> dist/assets/useFamilyAccess-Bf0I0jy2.js 31.68 kB │ gzip: 8.63 kB sparkyfitness-frontend-1.7.3> dist/assets/PreferencesContext-pPBW50eW.js 34.20 kB │ gzip: 11.87 kB sparkyfitness-frontend-1.7.3> dist/assets/AddExerciseDialog-C5g0W2JF.js 45.44 kB │ gzip: 11.96 kB sparkyfitness-frontend-1.7.3> dist/assets/Admin-Cx0gPHcz.js 47.40 kB │ gzip: 12.21 kB sparkyfitness-frontend-1.7.3> dist/assets/vendor-dnd-JwBWCwmI.js 55.19 kB │ gzip: 18.19 kB sparkyfitness-frontend-1.7.3> dist/assets/Foods-X9sHLzlk.js 56.15 kB │ gzip: 14.80 kB sparkyfitness-frontend-1.7.3> dist/assets/index-B7P4zaKg.js 56.64 kB │ gzip: 17.44 kB sparkyfitness-frontend-1.7.3> dist/assets/WorkoutPlaybackPage-B53-r_TD.js 63.28 kB │ gzip: 18.00 kB sparkyfitness-frontend-1.7.3> dist/assets/CheckIn-C6NAIboF.js 70.28 kB │ gzip: 19.70 kB sparkyfitness-frontend-1.7.3> dist/assets/ExternalProviderList-Dz2YUuL9.js 80.59 kB │ gzip: 16.16 kB sparkyfitness-frontend-1.7.3> dist/assets/vendor-radix-Bhzr2DFK.js 84.01 kB │ gzip: 24.11 kB sparkyfitness-frontend-1.7.3> dist/assets/Exercises-C2FtPKRr.js 90.39 kB │ gzip: 21.56 kB sparkyfitness-frontend-1.7.3> dist/assets/Index-C__T0vlm.js 128.23 kB │ gzip: 31.50 kB sparkyfitness-frontend-1.7.3> dist/assets/FoodSearchDialog-22naPuJY.js 152.94 kB │ gzip: 42.21 kB sparkyfitness-frontend-1.7.3> dist/assets/Medications-Bff-aBic.js 156.50 kB │ gzip: 40.93 kB sparkyfitness-frontend-1.7.3> dist/assets/CyclePage-jDIkIU6t.js 160.30 kB │ gzip: 39.89 kB sparkyfitness-frontend-1.7.3> dist/assets/src-vImjELkZ.js 202.59 kB │ gzip: 35.97 kB sparkyfitness-frontend-1.7.3> dist/assets/Diary-e4UC_0ot.js 204.46 kB │ gzip: 51.67 kB sparkyfitness-frontend-1.7.3> dist/assets/vendor-recharts-nZ7hGxd8.js 316.96 kB │ gzip: 78.22 kB sparkyfitness-frontend-1.7.3> dist/assets/Reports-D4oPlMye.js 325.15 kB │ gzip: 71.79 kB sparkyfitness-frontend-1.7.3> dist/assets/SettingsPage-CcGRyFtA.js 338.56 kB │ gzip: 76.58 kB sparkyfitness-frontend-1.7.3> dist/assets/vendor-scanners-DOtE6rhP.js 973.39 kB │ gzip: 269.51 kB sparkyfitness-frontend-1.7.3> dist/assets/vendor-others-ChimPlea.js 2,177.86 kB │ gzip: 631.50 kB sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> [plugin builtin:vite-reporter] sparkyfitness-frontend-1.7.3> (!) Some chunks are larger than 1000 kB after minification. Consider: sparkyfitness-frontend-1.7.3> - Using dynamic import() to code-split the application sparkyfitness-frontend-1.7.3> - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting sparkyfitness-frontend-1.7.3> - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. sparkyfitness-frontend-1.7.3> ✓ built in 1.25s sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> PWA v1.3.0 sparkyfitness-frontend-1.7.3> mode generateSW sparkyfitness-frontend-1.7.3> precache 138 entries (6402.92 KiB) sparkyfitness-frontend-1.7.3> files generated sparkyfitness-frontend-1.7.3> dist/sw.js sparkyfitness-frontend-1.7.3> dist/workbox-1d3d89e3.js sparkyfitness-frontend-1.7.3> Running phase: checkPhase sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> > sparkyfitnessfrontend@1.7.3 validate /build/source/SparkyFitnessFrontend sparkyfitness-frontend-1.7.3> > pnpm run typecheck && pnpm run lint && pnpm run format:check && pnpm run knip sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> > sparkyfitnessfrontend@1.7.3 typecheck /build/source/SparkyFitnessFrontend sparkyfitness-frontend-1.7.3> > tsc -b sparkyfitness-frontend-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> > sparkyfitnessserver@1.7.3 lint /build/source/SparkyFitnessServer sparkyfitness-server-1.7.3> > eslint . --max-warnings 0 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> > sparkyfitnessserver@1.7.3 format:check /build/source/SparkyFitnessServer sparkyfitness-server-1.7.3> > prettier . --check sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Checking formatting... sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> > sparkyfitnessfrontend@1.7.3 lint /build/source/SparkyFitnessFrontend sparkyfitness-frontend-1.7.3> > eslint . --max-warnings 0 sparkyfitness-frontend-1.7.3> sparkyfitness-server-1.7.3> __mocks__/uuid.js.dockerignore.prettierignore.prettierrcAGENTS.mdai/config.tsai/mcp/mcpAdapter.tsai/modelCapabilities.tsai/providerDispatch.tsai/tools/allergenTools.tsai/tools/askTools.tsai/tools/barcodeTools.tsai/tools/caffeineKineticsTools.tsai/tools/checkinTools.tsai/tools/coachTools.tsai/tools/customNutrientTools.tsai/tools/dashboardTools.tsai/tools/dates.tsai/tools/devTools.tsai/tools/engagementTools.tsai/tools/errors.tsai/tools/exerciseLookup.tsai/tools/exerciseStatsTools.tsai/tools/exerciseTools.tsai/tools/favoritesTools.tsai/tools/foodPhotoEstimateSink.tsai/tools/foodTools.tsai/tools/formatting.tsai/tools/goalTools.tsai/tools/habitTools.tsai/tools/index.tsai/tools/integrationsTools.tsai/tools/mealPlansTools.tsai/tools/medicationTools.tsai/tools/metaTools.tsai/tools/pagination.tsai/tools/profileTools.tsai/tools/progressPhotoTools.tsai/tools/reportTools.tsai/tools/schemas/allergens.tsai/tools/schemas/barcode.tsai/tools/schemas/caffeineKinetics.tsai/tools/schemas/checkin.tsai/tools/schemas/coach.tsai/tools/schemas/common.tsai/tools/schemas/customNutrients.tsai/tools/schemas/dashboard.tsai/tools/schemas/engagement.tsai/tools/schemas/exercise.tsai/tools/schemas/exerciseStats.tsai/tools/schemas/favorites.tsai/tools/schemas/food.tsai/tools/schemas/goals.tsai/tools/schemas/habits.tsai/tools/schemas/integrations.tsai/tools/schemas/mealPlans.tsai/tools/schemas/medications.tsai/tools/schemas/profile.tsai/tools/schemas/progressPhotos.tsai/tools/schemas/report.tsai/tools/schemas/sleepScience.tsai/tools/schemas/syncedData.tsai/tools/schemas/vision.tsai/tools/schemas/waterContainers.tsai/tools/schemas/wizard.tsai/tools/schemas/workoutPlans.tsai/tools/sleepScienceTools.tsai/tools/syncedDataTools.tsai/tools/truncation.tsai/tools/unitConversion.tsai/tools/visionTools.tsai/tools/waterContainerTools.tsai/tools/wizardTools.tsai/tools/workoutPlanTools.tsauth.tsCLAUDE.mdconfig/logging.tsconfig/swagger.tsconstants/foodProviders.tsconstants/goals.tsconstants/openFoodFacts.tsconstants/sleepScienceConstants.tsconstants/wger.tsdb/connection.tsdb/grantPermissions.tsdb/migrations/20250703170640_InitialDB.sqldb/migrations/20250710062500_create_goal_presets_table.sqldb/migrations/20250711173824_meal_features.sqldb/migrations/20250712163617_refactor_data_providers_and_add_exercise_source_id.sqldb/migrations/20250713125323_create_oidc_settings_and_update_users_table.sqldb/migrations/20250713135900_add_role_to_users_table.sqldb/migrations/20250713142300_add_oidc_config_fields.sqldb/migrations/20250714000000_create_session_table.sqldb/migrations/20250714175824_add_api_key_tag_to_ai_service_settings.sqldb/migrations/20250717190700_add_cascading_deletes.sqldb/migrations/20250717233929_add_is_quick_food_to_foods.sqldb/migrations/20250718190226_add_food_display_limit_to_user_preferences.sqldb/migrations/20250719131500_add_meal_percentages.sqldb/migrations/20250719215400_add_login_management_to_oidc_settings.sqldb/migrations/20250720010000_create_user_nutrient_display_preferences.sqldb/migrations/20250720201800_rename_food_display_limit_to_item_display_limit.sqldb/migrations/20250720220000_add_water_tracking_features.sqldb/migrations/20250720233836_alter_water_goal_ml_to_numeric.sqldb/migrations/20250721000000_add_servings_per_container_to_water_containers.sqldb/migrations/20250721000000_alter_water_container_volume_to_numeric.sqldb/migrations/20250721014900_alter_water_ml_to_numeric.sqldb/migrations/20250819062400_add_mealie_provider_type.sqldb/migrations/20250819083500_add_base_url_to_external_data_providers.sqldb/migrations/202508201215_add_garmin_integration_schema.sqldb/migrations/20250821090000_update_external_data_providers_provider_type_check.sqldb/migrations/20250821091500_add_garth_token_dump_to_external_data_providers.sqldb/migrations/20250821102000_remove_redundant_token_fields_from_external_data_providers.sqldb/migrations/20250831063900_create_mood_entries_table.sqldb/migrations/20250927180257_alter_exercises_table.sqldb/migrations/20250927212000_add_free_exercise_db_to_provider_type_check.sqldb/migrations/20250930002100_add_sets_reps_weight_to_exercise_entries.sqldb/migrations/20251001232600_add_gender_to_users_table.sqldb/migrations/20251002182306_create_backup_settings_table.sqldb/migrations/20251002224500_add_password_reset_to_users_table.sqldb/migrations/20251006021609_add_glycemic_index_to_foods_and_food_variants.sqldb/migrations/20251006220500_create_admin_activity_logs_table.sqldb/migrations/20251008224256_add_workout_features.sqldb/migrations/20251012225400_add_primary_keys_to_workout_tables.sqldb/migrations/20251012225500_add_multiple_sets_to_presets.sqldb/migrations/20251012225900_add_multiple_sets_to_plans.sqldb/migrations/20251012230000_add_multiple_sets_to_exercise_entries.sqldb/migrations/20251015223200_convert_weights_to_kg_and_set_default.sqldb/migrations/202510170132_add_text_measurements.sqldb/migrations/20251017200900_add_multiple_oidc_providers.sqldb/migrations/20251017204200_create_global_settings.sqldb/migrations/20251018001151_add_bmr_and_bodyfat_preferences.sqldb/migrations/20251018223700_add_signing_alg_to_oidc_providers.sqldb/migrations/20251019013200_merged_schema_and_data.sqldb/migrations/20251019013300_merged_rls_policies.sqldb/migrations/20251019154515_update_rls_policies_for_shared_items.sqldb/migrations/20251019203500_fix_rls_permissions_for_public_foods.sqldb/migrations/20251019204000_correct_variant_rls_policy.sqldb/migrations/20251019212500_update_measurement_rls_policies.sqldb/migrations/20251019222100_add_audit_columns_to_measurements.sqldb/migrations/20251020001000_fix_family_access_insert_policy.sqldb/migrations/20251020022000_set_default_shared_with_public.sqldb/migrations/20251020022200_update_rls_policies.sqldb/migrations/20251020022500_fix_food_select_policy.sqldb/migrations/20251020030000_simplify_food_select_policy.sqldb/migrations/20251020031000_update_food_select_policy_with_sharing.sqldb/migrations/20251020032200_add_all_owner_centric_policies.sqldb/migrations/20251020033400_add_food_variants_rls_policy.sqldb/migrations/20251020033700_fix_food_variants_rls_policy.sqldb/migrations/20251020230839_fix_family_access_rls_policies.sqldb/migrations/20251021025423_restrict_family_access_select_policy.sqldb/migrations/20251021034700_add_public_sharing_to_external_providers.sqldb/migrations/20251022201000_fix_exercise_rls_policy.sqldb/migrations/20251022203000_snapshot_exercise_details_in_entries.sqldb/migrations/20251023120500_update_external_providers_select_policy_for_public.sqldb/migrations/20251023221000_update_meals_rls_policy.sqldb/migrations/20251023221500_update_meal_plan_template_assignments_rls_policy.sqldb/migrations/20251023221501_add_meal_id_to_food_entries.sqldb/migrations/20251024230330_add_withings_fields_to_external_data_providers.sqldb/migrations/20251025210900_add_source_to_custom_measurements.sqldb/migrations/20251026125900_add_distance_and_hr_to_exercise_entries_activity_details.sqldb/migrations/202510310132_add_language_to_user_preferences.sqldb/migrations/20251101151100_create_sleep_entries_table.sqldb/migrations/20251103000000_add_onboarding_schema.sqldb/migrations/20251112000000_add_display_name_to_custom_categories.sqldb/migrations/20251114205134_create_exercise_preset_entries_table.sqldb/migrations/20251115003147_add_source_to_exercise_preset_entries.sqldb/migrations/20251115003301_add_exercise_preset_entry_id_to_activity_details.sqldb/migrations/20251115004027_alter_exercise_entry_id_nullable_in_activity_details.sqldb/migrations/20251120011100_add_mfa_magic_link_columns.sqldb/migrations/20251121011500_add_email_mfa_columns_to_users.sqldb/migrations/202511220110_add_default_external_data_providers.sqldb/migrations/202511232110_delete_raw_stress_data_categories.sqldb/migrations/202511270109_add_calorie_goal_adjustment_mode_to_user_preferences.sqldb/migrations/20251127194107_create_food_entry_meals_and_link_food_entries.sqldb/migrations/20251127194108_migrate_aggregated_food_entries_to_food_entry_meals.sqldb/migrations/20251128030115_add_tandoor_provider_type.sqldb/migrations/20251205000000_add_energy_unit_to_user_preferences.sqldb/migrations/20251206000000_add_nutrient_calculation_algorithms.sqldb/migrations/20251206000001_add_serving_size_to_meals.sqldb/migrations/20251207000001_add_default_meal_quantity.sqldb/migrations/20251215005329_add_usda_to_provider_type_check.sqldb/migrations/20251221000000_create_fasting_logs.sqldb/migrations/20251221010000_drop_mood_weight_from_fasting_logs.sqldb/migrations/20251226150700_add_mobile_health_data_features.sqldb/migrations/20251228000000_add_custom_nutrients_tables.sqldb/migrations/20252317234000_add_is_quick_exercise_to_exercises.sqldb/migrations/20260105000000_add_auto_scale_open_food_facts_imports.sqldb/migrations/20260108010449_add_cascading_delete_to_check_in_measurements.sqldb/migrations/20260108011953_add_cascading_delete_to_food_entries.sqldb/migrations/20260108012051_add_comprehensive_cascading_deletes.sqldb/migrations/20260108223108_alter_water_goal_to_numeric.sqldb/migrations/20260111180656_custom_meal_feature.sqldb/migrations/20260122201500_refactor_provider_type_to_lookup_table.sqldb/migrations/20260123115500_add_privacy_flag_to_provider_types.sqldb/migrations/20260125000000_better_auth_migration.sqldb/migrations/20260127040000_family_access_audit_fix.sqldb/migrations/202601280001_add_show_hide_to_meals.sqldb/migrations/20260201121400_add_api_key_table.sqldb/migrations/20260201184000_add_missing_api_key_columns.sqldb/migrations/20260202023713_add_oidc_config_to_sso_provider.sqldb/migrations/20260205200200_add_exercise_sorting.sqldb/migrations/20260206132000_ensure_first_user_is_admin.sqldb/migrations/20260206215500_add_mfa_totp_enabled_column.sqldb/migrations/20260207110000_mfa_triggers.sqldb/migrations/20260208_fix_user_creation_trigger.sqldb/migrations/20260208120000_fix_api_key_rate_limit_defaults.sqldb/migrations/20260208194543_fix_user_meal_visibilities_fkey.sqldb/migrations/20260214223000_add_polar_provider_type.sqldb/migrations/20260215144500_add_hevy_provider_type.sqldb/migrations/20260216012235_add_global_ai_settings.sqldb/migrations/20260216020134_add_allow_user_ai_config.sqldb/migrations/20260216030000_rename_is_global_to_is_public.sqldb/migrations/20260216140000_add_custom_nutrients_to_goals_and_presets.sqldb/migrations/20260216195500_prune_empty_custom_nutrients.sqldb/migrations/20260221210000_oidc_config_jsonb.sqldb/migrations/20260222100000_add_strava_provider_type.sqldb/migrations/20260224000000_add_sleep_science.sqldb/migrations/20260224120000_add_show_in_quick_log_to_meal_visibilities.sqldb/migrations/20260226000000_add_exercise_calorie_preferences.sqldb/migrations/20260228120000_fix_sleep_entry_date_to_wake_up_date.sqldb/migrations/20260302000000_add_default_barcode_provider_id.sqldb/migrations/20260302120000_normalize_barcodes.sqldb/migrations/20260313100000_add_source_to_water_intake.sqldb/migrations/20260314175000_add_image_to_user_table.sqldb/migrations/20260315192200_fix_oidc_config_keys.sqldb/migrations/20260315200000_better_auth_1_5_upgrade.sqldb/migrations/20260321000000_add_auto_scale_online_imports.sqldb/migrations/20260322130000_mfa_better_auth_optimization.sqldb/migrations/20260322141500_mfa_triggers_sync_fix.sqldb/migrations/20260322154230_add_first_day_of_week_to_preferences.sqldb/migrations/20260323122741_add_steps_column.sqldb/migrations/20260328120000_add_timezone_check_constraint.sqldb/migrations/20260406120000_add_barcode_fallback_open_food_facts.sqldb/migrations/20260420230132_scope_exercises_source_unique_to_user.sqldb/migrations/20260423120000_sleep_entry_stages_unique_natural_key.sqldb/migrations/20260426120000_provider_sort_order.sqldb/migrations/20260426120001_custom_meal_percentages.sqldb/migrations/20260509120000_add_water_intake_entries.sqldb/migrations/20260515120000_add_show_net_carbs_to_user_preferences.sqldb/migrations/20260515174155_serving_size_model.sqldb/migrations/20260523120000_ai_assisted_conversions.sqldb/migrations/20260527120000_add_allergen_tracking.sqldb/migrations/20260529140000_add_multimodal_support_to_chat_history.sqldb/migrations/20260531120000_add_nutrition_snapshot_to_meal_foods.sqldb/migrations/20260531120000_add_source_to_food_entries.sqldb/migrations/20260604120000_add_checkin_mood_unique_indexes.sqldb/migrations/20260604120600_add_user_last_login_at.sqldb/migrations/20260606132000_add_yazio_provider_type.sqldb/migrations/20260606164200_add_norish_provider_type.sqldb/migrations/20260607000000_add_googlehealth_provider_type.sqldb/migrations/20260607114000_add_swissfood_provider_type.sqldb/migrations/20260610120000_add_garmin_nutrition_index.sqldb/migrations/20260612120000_add_use_external_bmr_preference.sqldb/migrations/20260612153000_add_goal_mode_to_user_preferences.sqldb/migrations/20260614000000_add_checkin_photos.sqldb/migrations/20260618000000_remove_superuser_extensions.sqldb/migrations/20260620143300_public_sharing_and_dynamic_provider_types.sqldb/migrations/20260621000000_create_user_dashboard_layouts.sqldb/migrations/20260622120000_add_water_estimated_to_exercise_entries.sqldb/migrations/20260623000000_add_measurement_decimal_places.sqldb/migrations/20260624000000_add_medication_glp1_schema.sqldb/migrations/20260625000000_add_chat_tool_profile_to_ai_service_settings.sqldb/migrations/20260628000000_convert_exercise_durations_to_numeric.sqldb/migrations/20260628120000_add_vision_ai_service_pointers.sqldb/migrations/20260630000000_add_custom_nutrient_aliases.sqldb/migrations/20260630000000_add_onboarding_skipped.sqldb/migrations/20260701000000_add_child_meal_to_meal_foods.sqldb/migrations/20260702180000_add_cycle_tracking_schema.sqldb/migrations/20260705000000_fix_googlehealth_sleep_date_anchor.sqldb/migrations/20260707000000_add_passkey_registration_tickets.sqldb/migrations/20260707090000_add_provider_verified_to_foods.sqldb/migrations/20260707130000_add_workout_session_columns.sqldb/migrations/20260709000000_create_food_favorites.sqldb/migrations/20260710000000_add_supplement_nutrients_to_medications.sqldb/migrations/20260710120000_add_entry_time_and_meal_default_time.sqldb/migrations/20260715120000_add_oura_provider_type.sqldb/migrations/20260716181900_drop_user_preferences_system_prompt.sqldb/migrations/20260717120000_create_user_nutrient_goal_preferences.sqldb/migrations/20260723000000_add_spray_medication_type.sqldb/migrations/20260725173500_allow_multiple_active_meal_plans.sqldb/migrations/20260726000000_guard_serving_size_positive.sqldb/migrations/20260727100000_set_duration_seconds_modality_distance.sqldb/migrations/20260730000000_create_generic_health_and_workout_tables.sqldb/migrations/20260730120000_add_time_format_to_user_preferences.sqldb/migrations/20260730120000_add_workout_preset_set_distance.sqldb/migrations/20260803000000_rename_gps_points_new_constraints.sqldb/migrations/20260804000000_add_source_id_to_water_intake_entries.sqldb/migrations/20260807000000_add_record_timezone_to_sleep_entries.sqldb/migrations/20260810000000_add_images_to_foods_meals_and_food_entries.sqldb/migrations/20260814000000_backfill_diary_entry_images_from_parent.sqldb/migrations/20260816000000_widen_fractional_workout_telemetry_to_numeric.sqldb/migrations/20260816173934_flip_goal_mode_custom_percentage_sign.sqldb/migrations/20260816192818_normalize_exercise_json_array_fields.sqldb/migrations/20260817000000_add_liftosaur_provider_type.sqldb/migrations/20260818020000_fix_hevy_exercise_entry_distance_units.sqldb/migrations/20260821150000_flatten_nested_exercise_image_entries.sqldb/migrations/20260821170000_add_food_search_all_providers_default.sqldb/migrations/20260821233000_add_calorie_safety_floor_preferences.sqldb/migrations/20260827180000_add_bmr_to_check_in_measurements.sqldb/migrations/20260829171500_add_total_calories_capture_time.sqldb/migrations/20260830120000_add_notes_to_food_tables.sqldb/migrations/20260901103000_add_openfoodfacts_automatic_sync.sqldb/migrations/20260901120000_add_entry_yield_to_food_entry_meals.sqldb/migrations/20260901120000_add_progression_fields_to_workout_preset_exercises.sqldb/migrations/20260904120000_add_chart_scale_mode_preference.sqldb/migrations/20260905150000_add_caffeine_alcohol_water_and_container_links.sqldb/migrations/20260908120000_narrow_check_in_bmr_bounds.sqldb/migrations/20260909203000_deduplicate_strava_activity_details.sqldb/migrations/20260910180000_deduplicate_shared_active_calories.sqldb/migrations/20260912150000_preserve_data_on_user_and_library_deletes.sqldb/migrations/20260912193000_better_auth_1_7_schema.sqldb/migrations/20260914210000_cleanup_zero_ml_water_entries.sqldb/migrations/20260918162032_add_lap_moving_telemetry.sqldb/migrations/20260918170000_backfill_polar_steps_to_check_in.sqldb/migrations/20260918180000_widen_health_metric_samples_for_skin_temperature.sqldb/migrations/20260918230000_add_admin_system_settings.sqldb/migrations/20260921140000_add_sequential_workout_plan_mode.sqldb/migrations/20260921210000_add_watch_telemetry_observed_at.sqldb/migrations/20260923170000_add_workout_format_to_presets.sqldb/migrations/20260924200000_add_location_and_rir.sqldb/migrations/20260925013000_add_watch_duration_minutes.sqldb/migrations/20260925180000_add_ramp_increment_to_workout_preset_exercises.sqldb/migrations/20260925200000_snapshot_workout_format_on_preset_entries.sqldb/migrations/20260926120000_add_workout_feedback.sqldb/migrations/20260926230000_add_record_timezone_to_exercise_entries.sqldb/migrations/20260927180000_add_coros_provider_type.sqldb/poolManager.tsdb/rls_policies.sqldocs/externalapis.mdeslint.config.jsindex.tsintegrations/coros/corosConstants.tsintegrations/coros/corosDataProcessor.tsintegrations/coros/corosMcpText.tsintegrations/coros/corosService.tsintegrations/fatsecret/fatsecretService.tsintegrations/fitbit/fitbitDataProcessor.tsintegrations/fitbit/fitbitService.tsintegrations/freeexercisedb/FreeExerciseDBService.tsintegrations/garminconnect/garminConnectService.tsintegrations/garminconnect/garminMeasurementMapping.tsintegrations/garminfit/fitActivityTransform.tsintegrations/garminfit/fitDecoder.tsintegrations/googlehealth/googleHealthDataProcessor.tsintegrations/googlehealth/googleHealthService.tsintegrations/healthData/healthDataRoutes.tsintegrations/hevy/hevyDataProcessor.tsintegrations/hevy/hevyService.tsintegrations/liftosaur/liftohistoryParser.tsintegrations/liftosaur/liftosaurDataProcessor.tsintegrations/liftosaur/liftosaurMeasurementsService.tsintegrations/liftosaur/liftosaurService.tsintegrations/liftosaur/liftosaurTypes.tsintegrations/mealie/mealieService.tsintegrations/norish/norishService.tsintegrations/nutritionix/nutritionixService.tsintegrations/openfoodfacts/openFoodFactsAuth.tsintegrations/openfoodfacts/openFoodFactsContribution.tsintegrations/openfoodfacts/openFoodFactsPhoto.tsintegrations/openfoodfacts/openFoodFactsService.tsintegrations/oura/ouraDataProcessor.tsintegrations/oura/ouraService.tsintegrations/polar/polarDataProcessor.tsintegrations/polar/polarService.tsintegrations/strava/stravaDataProcessor.tsintegrations/strava/stravaService.tsintegrations/strava/stravaTelemetryExtractors.tsintegrations/swissfood/swissFoodService.tsintegrations/tandoor/tandoorService.tsintegrations/usda/usdaService.tsintegrations/wger/wgerNameMapping.tsintegrations/wger/wgerService.tsintegrations/withings/withingsDataProcessor.tsintegrations/withings/withingsService.tsintegrations/yazio/yazioService.tsmiddleware/authMiddleware.tsmiddleware/checkInPhotoUpload.tsmiddleware/checkPermissionMiddleware.tsmiddleware/demoGuardMiddleware.tsmiddleware/emailLoginGuard.tsmiddleware/errorHandler.tsmiddleware/imageUpload.tsmiddleware/oidcLogoUpload.tsmiddleware/onBehalfOfMiddleware.tsmiddleware/requestLogger.tsmiddleware/requireSelfMiddleware.tsmiddleware/signOutCookieCleanup.tsmiddleware/uploadMiddleware.tsmodels/activityDetailsRepository.tsmodels/adminActivityLogRepository.tsmodels/backupSettingsRepository.tsmodels/chatRepository.tsmodels/coachRepository.tsmodels/cycleRepository.tsmodels/dashboardLayoutRepository.tsmodels/engagementRepository.tsmodels/exercise.tsmodels/exerciseAlternativesRepository.tsmodels/exerciseEntry.tsmodels/exercisePresetEntryRepository.tsmodels/exerciseRepository.tsmodels/exerciseTemplate.tsmodels/externalProviderRepository.tsmodels/familyAccessRepository.tsmodels/fastingRepository.tsmodels/food.tsmodels/foodEntry.tsmodels/foodEntryMealRepository.tsmodels/foodMisc.tsmodels/foodRepository.tsmodels/foodTemplate.tsmodels/foodVariant.tsmodels/genericHealthRepository.tsmodels/globalSettingsRepository.tsmodels/goalPresetRepository.tsmodels/goalRepository.tsmodels/habitRepository.tsmodels/injectionRepository.tsmodels/mealPlanTemplateRepository.tsmodels/mealRepository.tsmodels/mealType.tsmodels/measurementRepository.tsmodels/medicationDisplayPreferenceRepository.tsmodels/medicationEntryRepository.tsmodels/medicationPenRepository.tsmodels/medicationRepository.tsmodels/moodRepository.tsmodels/nutrientDisplayPreferenceRepository.tsmodels/nutrientGoalPreferenceRepository.tsmodels/oidcProviderRepository.tsmodels/onboardingRepository.tsmodels/openFoodFactsProductReadRateLimitRepository.tsmodels/openFoodFactsSyncQueueRepository.tsmodels/preferenceRepository.tsmodels/pregnancyRepository.tsmodels/reportRepository.tsmodels/sleepRepository.tsmodels/sleepScienceRepository.tsmodels/supplementSql.tsmodels/symptomRepository.tsmodels/syncedDataRepository.tsmodels/titrationRepository.tsmodels/userRepository.tsmodels/waterContainerRepository.tsmodels/weeklyGoalPlanRepository.tsmodels/workoutFeedbackRepository.tsmodels/workoutPlanTemplateRepository.tsmodels/workoutPresetRepository.tsmodels/workoutTelemetryRepository.tsnodemon.jsonpackage.jsonprompts/chatbot-core-checkin.mdprompts/chatbot-core-food.mdprompts/chatbot-core.mdprompts/chatbot-full-checkin.mdprompts/chatbot-full-food.mdprompts/chatbot-full-vision.mdprompts/chatbot-full.mdroutes/adaptiveTdeeRoutes.tsroutes/adminAuthRoutes.tsroutes/adminRoutes.tsroutes/aiUnitConversionRoutes.tsroutes/allergenPreferenceRoutes.tsroutes/announcementRoutes.tsroutes/auth/apiKeyRoutes.tsroutes/auth/authCoreRoutes.tsroutes/auth/familyAccessRoutes.tsroutes/auth/templates/passkey-login.htmlroutes/auth/templates/passkey-register.htmlroutes/auth/userProfileRoutes.tsroutes/authRoutes.tsroutes/backupRoutes.tsroutes/chatRoutes.tsroutes/checkInPhotoRoutes.tsroutes/corosRoutes.tsroutes/customNutrientRoutes.tsroutes/dailySummaryRoutes.tsroutes/dashboardLayoutRoutes.tsroutes/dashboardRoutes.tsroutes/exerciseEntryRoutes.tsroutes/exercisePresetEntryRoutes.tsroutes/exerciseRoutes.tsroutes/exerciseStatsRoutes.tsroutes/externalProviderRoutes.tsroutes/fastingRoutes.tsroutes/favoritesRoutes.tsroutes/fitbitRoutes.tsroutes/foodCrudRoutes.tsroutes/foodEntryMealRoutes.tsroutes/foodEntryRoutes.tsroutes/foodIntegrationRoutes.tsroutes/foodRoutes.tsroutes/freeExerciseDBRoutes.tsroutes/garminRoutes.tsroutes/genericHealthRoutes.tsroutes/globalSettingsRoutes.tsroutes/goalPresetRoutes.tsroutes/goalRoutes.tsroutes/googleHealthRoutes.tsroutes/healthRoutes.tsroutes/hevyRoutes.tsroutes/identityRoutes.tsroutes/liftosaurRoutes.tsroutes/mcpRoutes.tsroutes/mealPlanTemplateRoutes.tsroutes/mealRoutes.tsroutes/mealTypeRoutes.tsroutes/measurementRoutes.tsroutes/moodRoutes.tsroutes/nutrientDisplayPreferenceRoutes.tsroutes/nutrientGoalPreferenceRoutes.tsroutes/oidcSettingsRoutes.tsroutes/onboardingRoutes.tsroutes/ouraRoutes.tsroutes/polarRoutes.tsroutes/preferenceRoutes.tsroutes/reportRoutes.tsroutes/reviewRoutes.tsroutes/sleepRoutes.tsroutes/sleepScienceRoutes.tsroutes/stravaRoutes.tsroutes/syncedDataRoutes.tsroutes/v2/cycleRoutes.tsroutes/v2/exerciseEntryRoutes.tsroutes/v2/exerciseRoutes.tsroutes/v2/foodRoutes.tsroutes/v2/goalPresetRoutes.tsroutes/v2/medicationRoutes.tsroutes/v2/nutritionKineticsRoutes.tsroutes/v2/openFoodFactsContributionRoutes.tsroutes/v2/pregnancyRoutes.tsroutes/v2/reportRoutes.tsroutes/v2/symptomRoutes.tsroutes/v2/waterIntakeRoutes.tsroutes/v2/workoutCoachingRoutes.tsroutes/versionRoutes.tsroutes/waterContainerRoutes.tsroutes/weeklyGoalPlanRoutes.tsroutes/withingsDataRoutes.tsroutes/withingsRoutes.tsroutes/workoutPlanTemplateRoutes.tsroutes/workoutPresetRoutes.tsschemas/checkInPhotoSchemas.tsschemas/corosSchemas.tsschemas/customNutrientSchemas.tsschemas/cycleSchemas.tsschemas/externalProviderSchemas.tsschemas/foodSchemas.tsschemas/goalPresetSchemas.tsschemas/googleHealthSchemas.tsschemas/mealTypeSchemas.tsschemas/measurementSchemas.tsschemas/medicationSchemas.tsschemas/oidcProviderSchemas.tsschemas/openFoodFactsContributionSchemas.tsschemas/ouraSchemas.tsschemas/pregnancySchemas.tsschemas/schema.utils.tsschemas/symptomSchemas.tsschemas/waterContainerSchemas.tsscripts/backfillWorkoutTelemetry.script.tssecurity/encryption.tsservices/AdaptiveTdeeService.tsservices/adaptiveWorkoutService.tsservices/aiUnitConversionService.tsservices/alcoholWeekService.tsservices/allergenPreferenceService.tsservices/announcementService.tsservices/authService.tsservices/backgroundJobScheduler.tsservices/backupScheduler.tsservices/backupService.tsservices/bmrService.tsservices/bodyCompositionService.tsservices/caffeineKineticsService.tsservices/calorieBalanceService.tsservices/CalorieCalculationService.tsservices/chatService.tsservices/checkInPhotoService.tsservices/corosService.tsservices/customNutrientService.tsservices/cycleService.tsservices/dailySummaryRangeService.tsservices/dailySummaryService.tsservices/dashboardLayoutService.tsservices/DashboardService.tsservices/demoSeedService.tsservices/emailService.tsservices/exerciseAlternativesService.tsservices/exerciseCalorieRangeService.tsservices/exerciseEntryHistoryService.tsservices/exerciseEntryService.tsservices/exerciseService.tsservices/exerciseStatsService.tsservices/externalFoodSearchService.tsservices/externalProviderService.tsservices/favoritesService.tsservices/fitbitService.tsservices/fitImportService.tsservices/foodCoreService.tsservices/foodEntryService.tsservices/foodIntegrationService.tsservices/foodPhotoEstimationService.tsservices/foodPhotoLogService.tsservices/foodPhotoMatchService.tsservices/foodProviderDetailService.tsservices/foodProviderLookupService.tsservices/foodService.tsservices/garmin/garminActivityProcessor.tsservices/garmin/garminExerciseMapper.tsservices/garmin/garminHealthProcessor.tsservices/garmin/garminTelemetryExtractors.tsservices/garminService.tsservices/garminSyncResult.tsservices/glp1Service.tsservices/goalPresetService.tsservices/goalService.tsservices/googleHealthService.tsservices/healthDataHandlers.tsservices/healthMetricSampleWriter.tsservices/hrZoneCalculator.tsservices/hydrationNutritionRangeService.tsservices/hydrationTotalsService.tsservices/labelScanService.tsservices/mealPlanTemplateService.tsservices/mealService.tsservices/measurementService.tsservices/nutrientDisplayPreferenceService.tsservices/nutrientGoalPreferenceService.tsservices/onboardingService.tsservices/openFoodFactsAutoSyncScheduler.tsservices/openFoodFactsAutoSyncService.tsservices/openFoodFactsContributionService.tsservices/openFoodFactsManualContributionService.tsservices/openFoodFactsProductReadRateLimitService.tsservices/openFoodFactsProviderCredentials.tsservices/openFoodFactsSyncSettingsService.tsservices/ouraService.tsservices/passkeyTicketService.tsservices/polarService.tsservices/preferenceService.tsservices/pregnancyService.tsservices/providerSyncScheduler.tsservices/reportService.tsservices/reviewService.tsservices/sleepAnalyticsService.tsservices/sleepScienceService.tsservices/stravaService.tsservices/syncedDataService.tsservices/versionService.tsservices/waterContainerService.tsservices/weeklyGoalPlanService.tsservices/withingsService.tsservices/workoutActivityMapping.tsservices/workoutCoachingService.tsservices/workoutPlanProgression.tsservices/workoutPlanTemplateService.tsservices/workoutPresetService.tsservices/workoutTelemetryDerivation.tsSparkyFitnessServer.tstests/activitySport.test.tstests/adaptiveCoaching.test.tstests/adaptiveTdeeService.test.tstests/adminExternalProviderRoutes.test.tstests/aiServiceConnectionTest.test.tstests/aiUnitConversionService.test.tstests/alcoholNeverAddsCalories.test.tstests/alcoholUnits.test.tstests/alcoholWeekService.test.tstests/allergenPreferenceRoutes.test.tstests/announcementService.test.tstests/apiKeyRoutes.contextSwitch.test.tstests/apiKeySessionCache.test.tstests/appDbCredentials.test.tstests/appDbPasswordReachesPool.test.tstests/appRolePasswordSync.test.tstests/authMiddleware.cache.test.tstests/authRateLimit.test.tstests/authServiceUpdateEmail.test.tstests/authTrustedOrigins.test.tstests/backgroundJobScheduler.test.tstests/backupRescheduling.test.tstests/backupRoutes.download.test.tstests/backupScheduler.test.tstests/backupService.test.tstests/barcodeLookup.test.tstests/barcodeLookupRoute.test.tstests/bearerAuthBridge.test.tstests/betterAuthSchemaCheck.integration.test.tstests/bmrService.test.tstests/bodyCompositionService.test.tstests/bootOrder.test.tstests/caffeineDoseWindow.test.tstests/caffeineKinetics.test.tstests/caffeineKineticsMidnight.test.tstests/calorieBalanceService.test.tstests/calorieCalculations.test.tstests/calorieCalculationService.test.tstests/calorieSafetyFloor.test.tstests/chatbotTestHarness.script.tstests/chatbotToolRepositories.test.tstests/chatbotToolsAllergens.test.tstests/chatbotToolsAsk.test.tstests/chatbotToolsBarcode.test.tstests/chatbotToolsCaching.test.tstests/chatbotToolsCaffeineKinetics.test.tstests/chatbotToolsCheckin.test.tstests/chatbotToolSchemas.test.tstests/chatbotToolsCoach.test.tstests/chatbotToolsCustomNutrients.test.tstests/chatbotToolsDashboard.test.tstests/chatbotToolsEngagement.test.tstests/chatbotToolsExercise.test.tstests/chatbotToolsExerciseStats.test.tstests/chatbotToolsFavorites.test.tstests/chatbotToolsFood.test.tstests/chatbotToolsGoals.test.tstests/chatbotToolsHabits.test.tstests/chatbotToolsIndex.test.tstests/chatbotToolsIntegrations.test.tstests/chatbotToolsMealPlans.test.tstests/chatbotToolsMedications.test.tstests/chatbotToolsMeta.test.tstests/chatbotToolsProfile.test.tstests/chatbotToolsProgressPhotos.test.tstests/chatbotToolsReport.test.tstests/chatbotToolsSleepScience.test.tstests/chatbotToolsSyncedData.test.tstests/chatbotToolsVision.test.tstests/chatbotToolsWaterContainers.test.tstests/chatbotToolsWizard.test.tstests/chatbotToolsWorkoutPlans.test.tstests/chatbotToolUnitConversion.test.tstests/chatProviderOptions.test.tstests/chatRepository.test.tstests/chatService.test.tstests/chatServiceClassifier.test.tstests/check_routes.tstests/checkInPhotoRoutes.test.tstests/checkInPhotoService.test.tstests/checkPermissionMiddleware.test.tstests/contracts/nutrientColumnCoverage.test.tstests/corosMcpText.test.tstests/corosOauthCallback.test.tstests/corosRoutes.test.tstests/corosService.test.tstests/corosSync.test.tstests/corsHelper.test.tstests/customNutrientCatalog.test.tstests/customNutrientDeleteCleanup.test.tstests/customNutrientMatching.test.tstests/cycleCorrelations.test.tstests/cycleFertility.test.tstests/cyclePredictions.test.tstests/cycleRepository.test.tstests/cycleRoutes.test.tstests/cycleTtcRoutes.test.tstests/dailySummaryRangeService.test.tstests/dailySummaryRoutes.range.test.tstests/dailySummaryService.test.tstests/dailySummarySupplements.test.tstests/dashboardLayoutRepository.test.tstests/dashboardLayoutService.test.tstests/dashboardService.test.tstests/dateColumnParser.test.tstests/dateShifting.test.tstests/demoPasswordResetGuard.test.tstests/demoSeedService.test.tstests/drinkPresetMaterialization.test.tstests/dropSetCalculator.test.tstests/emailLogin.test.tstests/emailService.test.tstests/entryTime.test.tstests/exerciseActiveCalories.test.tstests/exerciseAlternativesRanking.test.tstests/exerciseAlternativesRoutes.test.tstests/exerciseAlternativesService.test.tstests/exerciseCalorieRangeService.test.tstests/exerciseEntriesApiSchemas.test.tstests/exerciseEntry.activityDetail.test.tstests/exerciseEntry.sourcePreservation.test.tstests/exerciseEntry.vanishedParent.test.tstests/exerciseEntryActiveCaloriesNotes.test.tstests/exerciseEntryGarminCleanup.test.tstests/exerciseEntryHistoryService.supersetGroup.test.tstests/exerciseEntryRoutes.distanceClear.test.tstests/exerciseEntryRoutes.duplicateCheck.test.tstests/exerciseEntryRoutes.progress.test.tstests/exerciseEntryRoutes.watchTelemetry.test.tstests/exerciseEntryService.csvImport.test.tstests/exerciseEntryService.watchTelemetry.test.tstests/exerciseEntryStats.integration.test.tstests/exerciseImportDedup.test.tstests/exerciseJsonFields.test.tstests/exerciseModality.test.tstests/exerciseMuscleAggregates.test.tstests/exercisePresetCascade.integration.test.tstests/exercisePresetEntryRoutes.test.tstests/exerciseRepository.arrayFieldNormalization.test.tstests/exerciseRepository.script.tstests/exerciseRoutes.write.test.tstests/exerciseRoutesV2.test.tstests/exercisesApiSchemas.test.tstests/exerciseSearch.test.tstests/exerciseService.distanceDerivation.test.tstests/exerciseService.groupedWorkouts.test.tstests/exerciseService.imagesEncoding.test.tstests/exerciseService.searchExternal.test.tstests/exerciseService.stats.test.tstests/exerciseSourceScoping.test.tstests/exerciseStatsRoutes.test.tstests/exerciseStatsService.test.tstests/externalFoodSearchService.fatsecret.test.tstests/externalFoodSearchService.openFoodFacts.test.tstests/externalProviderRepository.baseUrl.test.tstests/externalProviderRepository.credentials.test.tstests/externalProviderRoutes.actorContext.test.tstests/externalProviderSchemas.test.tstests/externalProviderService.openFoodFactsConsent.test.tstests/externalProviderService.test.tstests/fastingRoutes.test.tstests/fatsecretService.test.tstests/favoritesRoutes.test.tstests/favoritesService.test.tstests/findFoodByBarcode.test.tstests/fitActivityTransform.test.tstests/fitbitDataProcessor.test.tstests/fitImportRoutes.test.tstests/fitImportService.test.tstests/fixtures/generateFitFixture.tstests/fixtures/tennis-activity.fittests/foodBulkImportOverwrite.test.tstests/foodCoreService.test.tstests/foodCoreService.updateSnapshot.test.tstests/foodDefaultVariantQueries.test.tstests/foodDeletionImpact.test.tstests/foodDerivedWaterQuery.test.tstests/foodDiaryImport.test.tstests/foodEntryCopy.test.tstests/foodEntryCopyFingerprint.test.tstests/foodEntryLinkedWaterPropagation.test.tstests/foodEntryMealRepository.test.tstests/foodEntryMealRoutes.create.test.tstests/foodEntryMealService.test.tstests/foodEntrySelectedCopy.test.tstests/foodEntrySelectedCopyRoute.test.tstests/foodEntrySelectedCopySchema.test.tstests/foodEntryService.snapshot.test.tstests/foodEntrySnapshot.test.tstests/foodEntryTime.test.tstests/foodEntryUnitReconcile.test.tstests/foodEntryWholeCopy.test.tstests/foodEntryWholeCopyRepository.test.tstests/foodEntryWholeCopyRoute.test.tstests/foodEntryWholeCopySchema.test.tstests/foodFavoritesQuery.test.tstests/foodFavoritesService.test.tstests/foodIntegrationService.fatsecret.test.tstests/foodNotes.test.tstests/foodOptionsRoute.test.tstests/foodOptionsService.test.tstests/foodPhotoContracts.test.tstests/foodPhotoEstimateMath.test.tstests/foodPhotoEstimationRoute.test.tstests/foodPhotoEstimationService.test.tstests/foodPhotoLogRoute.test.tstests/foodPhotoLogService.test.tstests/foodPhotoMatchService.test.tstests/foodRefreshFromSourceRoute.test.tstests/foodRoutesV2.test.tstests/foodSchemas.test.tstests/foodSearch.test.tstests/foodSorting.test.tstests/foodUpdateSnapshotRoute.test.tstests/foodUtilsNutritionScale.test.tstests/forwardResponseHeaders.test.tstests/freeExerciseDBSearch.test.tstests/garminActivityProcessor.transaction.test.tstests/garminChunkingAndStrengthFallback.test.tstests/garminConnectErrorFormatter.test.tstests/garminHealthProcessor.wellness.test.tstests/garminIncrementalSync.test.tstests/garminMeasurementMapping.test.tstests/garminNutritionSync.integration.test.tstests/garminNutritionSync.test.tstests/garminRoutes.test.tstests/garminService.workoutDefinitionWeights.test.tstests/garminService.workoutSets.test.tstests/garminSyncResult.test.tstests/genericHealthRepository.test.tstests/genericHealthSchemas.test.tstests/gestation.test.tstests/globalSettingsFailClosed.test.tstests/globalSettingsRepository.test.tstests/globalSettingsRoutes.test.tstests/glp1Logic.test.tstests/glp1Service.test.tstests/goalModePercentageSignMigration.test.tstests/goalPresetRoutes.test.tstests/goalPresetService.test.tstests/goalRepository.test.tstests/goalServiceAdaptiveMaturity.test.tstests/googleHealthDataProcessor.test.tstests/googleHealthParsers.test.tstests/googlehealthRoutes.test.tstests/guidedWorkoutCues.test.tstests/healthConnectTotalCaloriesCaptureMigration.test.tstests/healthDataHandlers.test.tstests/healthDataRoutes.test.tstests/healthMetricSampleWriter.test.tstests/healthResyncTelemetryPreservation.test.tstests/helpers/mockDbClient.tstests/helpers/toolExecutionOptions.tstests/hevyDataProcessor.test.tstests/hrZoneCalculator.test.tstests/hydrationNutritionRange.test.tstests/hydrationTotalsService.test.tstests/imageDownloader.test.tstests/imageLocalizer.test.tstests/imageOrder.test.tstests/initializeDatabase.integration.test.tstests/initializeDatabase.test.tstests/injectionRepository.test.tstests/integrationRoutesPermissionGating.test.tstests/intervalEngine.test.tstests/labelScanRoute.test.tstests/labelScanService.test.tstests/libraryDeletePreservesDiary.test.tstests/liftosaurDataProcessor.test.tstests/liftosaurMeasurementsService.test.tstests/liftosaurParser.test.tstests/liftosaurRoutes.test.tstests/liftosaurSync.test.tstests/logging.test.tstests/mcpProtocolVersion.test.tstests/mcpRoutes.test.tstests/mealieService.test.tstests/mealPlanTemplateService.test.tstests/mealRepository.test.tstests/mealRoutes.test.tstests/mealSearch.test.tstests/mealService.test.tstests/mealServiceFromDiary.test.tstests/mealTypeDefaultTime.test.tstests/mealTypeDelete.test.tstests/mealTypeRoutes.delete.test.tstests/measurementImportRoutes.test.tstests/measurementRepository.bulkCheckInMeasurements.test.tstests/measurementRepository.bulkCustomMeasurements.test.tstests/measurementRepository.customMetricTimestamp.test.tstests/measurementRepository.test.tstests/measurementRepository.water.test.tstests/measurementRoutes.test.tstests/measurementSchemas.checkIn.test.tstests/measurementService.categoryDisplayName.test.tstests/measurementService.checkInDelete.test.tstests/measurementService.healthConnectNutrition.test.tstests/measurementService.healthConnectSleepStages.test.tstests/measurementService.healthDataContract.test.tstests/measurementService.healthDataUnits.test.tstests/measurementService.sleepPrimaryCluster.test.tstests/measurementService.sleepResyncMerge.test.tstests/measurementService.smartScaleComposition.test.tstests/measurementService.timezone.test.tstests/measurementService.waterIntake.test.tstests/measurementService.zeroValueFiltering.test.tstests/medicationEntryRepository.test.tstests/medicationRepository.test.tstests/medicationRoutes.test.tstests/medicationSchemas.zod.test.tstests/migrate.script.tstests/mockDataContext.test.tstests/mockDataOptions.test.tstests/modelCapabilities.test.tstests/moodTags.test.tstests/norishService.test.tstests/normalizeExerciseJsonArrayFields.integration.test.tstests/nutrientDisplayPreferenceService.test.tstests/nutrientGoalPreferenceRepository.test.tstests/nutrientGoalPreferenceRoutes.test.tstests/nutrientGoalPreferenceService.test.tstests/oauthState.test.tstests/oidcEnvConfig.test.tstests/oidcGroupSync.test.tstests/oidcProviderRepository.integration.test.tstests/oidcProviderRepository.test.tstests/oidcSettingsRoutes.test.tstests/ollamaToolProfile.script.tstests/onboardingRoutes.test.tstests/openFoodFactsAlcohol.test.tstests/openFoodFactsAuth.test.tstests/openFoodFactsAutomaticSyncDatabaseSchemas.test.tstests/openFoodFactsAutomaticSyncMigration.integration.test.tstests/openFoodFactsAutomaticSyncRelease.test.tstests/openFoodFactsAutoSyncScheduler.test.tstests/openFoodFactsAutoSyncService.test.tstests/openFoodFactsContribution.test.tstests/openFoodFactsContributionRoutes.test.tstests/openFoodFactsContributionService.test.tstests/openFoodFactsLanguage.test.tstests/openFoodFactsManualContribution.test.tstests/openFoodFactsPhoto.test.tstests/openFoodFactsProductReadRateLimitRepository.test.tstests/openFoodFactsProductReadRateLimitService.test.tstests/openFoodFactsService.test.tstests/openFoodFactsSyncQueueRepository.test.tstests/openFoodFactsSyncSettingsRoutes.test.tstests/openFoodFactsSyncSettingsService.test.tstests/ouraDataProcessor.test.tstests/ouraRoutes.test.tstests/ouraService.test.tstests/outboundHttp.test.tstests/outboundProxy.test.tstests/outboundUrlPolicy.test.tstests/permissionUtils.test.tstests/polarActivityDedup.test.tstests/polarDataProcessor.test.tstests/polarOauthCallback.test.tstests/poolContext.test.tstests/poolIdleErrors.test.tstests/preferenceChartScaleMode.test.tstests/preferenceRepository.openFoodFacts.test.tstests/preferenceRepository.test.tstests/preferenceSafetyFloor.test.tstests/preflightPlaceholderSecrets.test.tstests/pregnancyPhotoService.test.tstests/pregnancyRoutes.test.tstests/progressionEngine.test.tstests/providerDispatch.test.tstests/providerSyncScheduler.test.tstests/pullWorkoutProgression.test.tstests/quickAddNeverPrimary.test.tstests/reportRangeCols.test.tstests/reportRepository.customNutrients.test.tstests/reportRepository.downsample.test.tstests/reportRepository.getExerciseEntries.test.tstests/reportSupplementScaling.test.tstests/reportWodPrExclusion.test.tstests/resolveMealTypeIdWithClient.test.tstests/resolveTemplateStartDay.test.tstests/rlsPermissionMatrix.integration.test.tstests/schedules.test.tstests/schemaConnections.test.tstests/schemaParity.integration.test.tstests/secretLoader.script.tstests/secretLoader.test.tstests/setsDurationMinutes.test.tstests/signOutCookieCleanup.test.tstests/sleepRepository.placeholders.test.tstests/sleepRepository.remainderKey.test.tstests/sleepScienceService.midnightBedtime.test.tstests/sleepScienceService.recordZone.test.tstests/stravaActivityDetailCleanup.integration.test.tstests/stravaDataProcessor.test.tstests/supplementSqlDedup.test.tstests/swagger.test.tstests/swissFoodService.test.tstests/switchContextCookie.test.tstests/symptoms.test.tstests/syncedDataRepository.test.tstests/syncedDataRoutes.test.tstests/tandoorService.test.tstests/telemetryExtractors.laps.test.tstests/timezone.test.tstests/toolResultTruncation.test.tstests/truncationPagination.test.tstests/twoFactorState.test.tstests/unitConversion.test.tstests/updateEmailRoute.test.tstests/updateFoodBarcode.test.tstests/uploadsStaticMount.test.tstests/usdaAlcohol.test.tstests/usdaService.test.tstests/userRepositoryCredentialAccountId.test.tstests/visionToolsLogPhoto.test.tstests/volumeUnitToMl.test.tstests/waterContainerFoodLink.test.tstests/waterContainerRepository.test.tstests/waterContainerRoutes.test.tstests/waterEstimatedGoalAdjustment.test.tstests/waterGoalExclusivity.test.tstests/waterIntakeFoodLinkSchema.test.tstests/waterIntakeLinkedDecrement.test.tstests/waterIntakeRoutes.test.tstests/webLoginRoutes.test.tstests/weightRamp.test.tstests/withingsDataProcessor.test.tstests/withingsOauthCallback.test.tstests/withingsTokenResponse.test.tstests/workoutActivityMapping.test.tstests/workoutCoachingRoutes.test.tstests/workoutCoachingService.test.tstests/workoutDaysRoute.test.tstests/workoutFeedbackForm.test.tstests/workoutHandlerTelemetry.test.tstests/workoutPlanProgression.test.tstests/workoutPlanTemplateService.test.tstests/workoutPresetRepository.supersetGroup.test.tstests/workoutPresetRoutes.validation.test.tstests/workoutPresetSearch.test.tstests/workoutPresetService.ownership.test.tstests/workoutTelemetryDerivation.test.tstests/yazioService.test.tstests/zeroHydrationFactorPreset.test.tstsconfig.jsontypes/express.d.tstypes/externalProvider.tstypes/garmin-fitsdk.d.tstypes/garmin.tstypes/goals.tstypes/nutrition.tstypes/wger.tstypes/withings.tsutils/adminCheck.tsutils/apiKeySessionCache.tsutils/applyRlsPolicies.tsutils/backfillAllergens.tsutils/bearerAuthBridge.tsutils/boundedMap.tsutils/clientIp.tsutils/corsHelper.tsutils/dateHelpers.tsutils/dbMigrations.tsutils/dbSearchHelper.tsutils/diagnosticLogger.tsutils/emailLogin.tsutils/env.tsutils/errors.tsutils/exerciseAlternativesRanking.tsutils/exerciseJsonFields.tsutils/expoSsoCookieRelay.tsutils/foodEntrySnapshot.tsutils/foodRanking.tsutils/foodUtils.tsutils/forwardResponseHeaders.tsutils/imageDownloader.tsutils/imageLocalizer.tsutils/initializeDatabase.tsutils/mockDataContext.tsutils/mockDataOptions.tsutils/oauthState.tsutils/oidcEnvConfig.tsutils/oidcGroupSync.tsutils/outboundHttp.tsutils/outboundProxy.tsutils/outboundUrlPolicy.tsutils/permissionUtils.tsutils/preflightChecks.tsutils/scheduledJobs.tsutils/secretLoader.tsutils/sleepStageAggregates.tsutils/timezoneLoader.tsutils/ttlCache.tsutils/twoFactorState.tsutils/uploads/exercises/90_90_Hamstring/0.jpgutils/uploads/exercises/90_90_Hamstring/1.jpgutils/uploads/exercises/Adductor/0.jpgutils/uploads/exercises/Adductor/1.jpgutils/uploadsPath.tsutils/uuidUtils.tsvalidation/authValidation.tsvitest.config.tsAll matched files use Prettier code style! sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> > sparkyfitnessserver@1.7.3 test /build/source/SparkyFitnessServer sparkyfitness-server-1.7.3> > vitest run sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ◇ injected env (0) from ../.env // tip: ⌘ enable debugging { debug: true } sparkyfitness-server-1.7.3> (!) Your Vite config uses features that are unsupported by `configLoader: 'native'`, which is planned to become the default in a future major version of Vite: sparkyfitness-server-1.7.3> - `__dirname` (vitest.config.ts:7:36). Use `import.meta.dirname` instead sparkyfitness-server-1.7.3> Set `VITE_CONFIG_NATIVE_IGNORE_WARNING=true` to suppress this warning. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> RUN v5.0.0 /build/source/SparkyFitnessServer sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 0 passed (434) sparkyfitness-server-1.7.3> Tests 0 passed (0) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 341ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 0 passed (434) sparkyfitness-server-1.7.3> Tests 0 passed (0) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 449ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 0 passed (434) sparkyfitness-server-1.7.3> Tests 0 passed (0) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 907ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 1/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 0 passed (434) sparkyfitness-server-1.7.3> Tests 1 passed (45) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.35s sparkyfitness-server-1.7.3> stdout | tests/openFoodFactsAutomaticSyncMigration.integration.test.ts sparkyfitness-server-1.7.3> ◇ injected env (0) from ../.env // tip: ⌘ enable debugging { debug: true } sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] No secrets loaded from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 2/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 0 passed (434) sparkyfitness-server-1.7.3> Tests 2 passed (45) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.55s sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsAutomaticSyncMigration.integration.test.ts sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in NIX_SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 2/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 0 passed (434) sparkyfitness-server-1.7.3> Tests 2 passed (45) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.55s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 2/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContribution.test.ts 1/20 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 0 passed (434) sparkyfitness-server-1.7.3> Tests 3 passed (73) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.65s sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsContribution.test.ts (20 tests) 38ms sparkyfitness-server-1.7.3> ✓ tests/exercisePresetEntryRoutes.test.ts (8 tests) 31ms sparkyfitness-server-1.7.3> ↓ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts (26 tests | 26 skipped) sparkyfitness-server-1.7.3> stdout | tests/providerDispatch.test.ts > dispatchAiRequest — preconditions > transcodes HEIC to JPEG and dispatches it sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.672Z] [INFO] providerDispatch: HEIC->JPEG transcode ok in 0ms (5B HEIC -> 4B JPEG) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/providerDispatch.test.ts > dispatchAiRequest — preconditions > transcodes when the bytes are really HEIC even if the client mislabels the mime sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.674Z] [INFO] providerDispatch: HEIC->JPEG transcode ok in 0ms (12B HEIC -> 4B JPEG) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 3/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts 0/114 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 2 passed | 1 skipped (434) sparkyfitness-server-1.7.3> Tests 31 passed | 26 skipped (213) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.75s sparkyfitness-server-1.7.3> stderr | tests/providerDispatch.test.ts > dispatchAiRequest — preconditions > fails loud (no bypass) when a real HEIC mislabeled as JPEG fails to transcode sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.674Z] [WARN] providerDispatch: HEIC->JPEG transcode failed, falling back to unsupported_media: decode failed sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 3/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts 0/114 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 2 passed | 1 skipped (434) sparkyfitness-server-1.7.3> Tests 31 passed | 26 skipped (213) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.75s sparkyfitness-server-1.7.3> stdout | tests/providerDispatch.test.ts > dispatchAiRequest — preconditions > detects HEIC with an uppercase ftyp brand (case-insensitive) sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.675Z] [INFO] providerDispatch: HEIC->JPEG transcode ok in 0ms (12B HEIC -> 4B JPEG) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/providerDispatch.test.ts > dispatchAiRequest — preconditions > normalizes uppercase/whitespace HEIC mime types before the transcode check sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.675Z] [INFO] providerDispatch: HEIC->JPEG transcode ok in 0ms (5B HEIC -> 4B JPEG) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 3/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts 0/114 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 2 passed | 1 skipped (434) sparkyfitness-server-1.7.3> Tests 31 passed | 26 skipped (213) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.75s sparkyfitness-server-1.7.3> stderr | tests/providerDispatch.test.ts > dispatchAiRequest — preconditions > falls back to unsupported_media when HEIC transcoding fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.676Z] [WARN] providerDispatch: HEIC->JPEG transcode failed, falling back to unsupported_media: not a valid HEIC file sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 3/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts 0/114 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 2 passed | 1 skipped (434) sparkyfitness-server-1.7.3> Tests 31 passed | 26 skipped (213) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.75s sparkyfitness-server-1.7.3> stdout | tests/providerDispatch.test.ts > dispatchAiRequest — preconditions > also transcodes HEIC for google (we convert uniformly, no provider gate) sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.676Z] [INFO] providerDispatch: HEIC->JPEG transcode ok in 0ms (5B HEIC -> 4B JPEG) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 3/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetEntryRoutes.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncMigration.integration.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts 0/114 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 2 passed | 1 skipped (434) sparkyfitness-server-1.7.3> Tests 31 passed | 26 skipped (213) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.75s sparkyfitness-server-1.7.3> ↓ tests/oidcProviderRepository.integration.test.ts (21 tests | 21 skipped) sparkyfitness-server-1.7.3> stdout | tests/providerDispatch.test.ts > dispatchAiRequest — models that reject temperature > drops temperature and retries once when the provider rejects it sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.701Z] [INFO] [modelCapabilities] 'mystery-1' on 'openai_compatible' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/providerDispatch.test.ts > dispatchAiRequest — models that reject temperature > remembers the rejection so later requests cost no retry sparkyfitness-server-1.7.3> [2026-09-30T11:46:09.701Z] [INFO] [modelCapabilities] 'mystery-1' on 'openai_compatible' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/providerDispatch.test.ts (114 tests) 72ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 3/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerDispatch.test.ts 114/114 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 145 passed | 47 skipped (234) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 1.85s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 5/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 147 passed | 47 skipped (234) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 2.16s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 6/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 148 passed | 47 skipped (234) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 2.36s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 7/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 149 passed | 47 skipped (234) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 2.56s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 8/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 150 passed | 47 skipped (234) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 2.76s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 9/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 151 passed | 47 skipped (234) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 2.96s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 10/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 152 passed | 47 skipped (234) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.16s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 10/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 3 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 152 passed | 47 skipped (273) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.26s sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoGuardMiddleware > blocks demo user mutations with 403 when demo mode is active sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.234Z] [WARN] [DEMO GUARD] Blocked POST /api/identity/update-password for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > createMeal > throws ValidationError when total_servings is zero sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.232Z] [ERROR] Error in mealService.createMeal for user user-1: ValidationError: Meal total_servings must be a positive number. sparkyfitness-server-1.7.3> at normalizeServingFields (/build/source/SparkyFitnessServer/services/mealService.ts:109:13) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/services/mealService.ts:422:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:74:21 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > rejects public searches outside the Search-a-licious result window sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.252Z] [ERROR] Error searching OpenFoodFacts with query "product" in foodService: Error: OpenFoodFacts search supports at most 10000 results sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:610:9) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) { sparkyfitness-server-1.7.3> status: 400, sparkyfitness-server-1.7.3> statusCode: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > createMeal > throws ValidationError when total_servings is negative sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.242Z] [ERROR] Error in mealService.createMeal for user user-1: ValidationError: Meal total_servings must be a positive number. sparkyfitness-server-1.7.3> at normalizeServingFields (/build/source/SparkyFitnessServer/services/mealService.ts:109:13) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/services/mealService.ts:422:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:89:21 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > createMeal > throws ValidationError when serving_size is zero sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.243Z] [ERROR] Error in mealService.createMeal for user user-1: ValidationError: Meal serving_size must be a positive number. sparkyfitness-server-1.7.3> at normalizeServingFields (/build/source/SparkyFitnessServer/services/mealService.ts:99:13) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/services/mealService.ts:422:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:99:21 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > createMeal > throws ValidationError when total_servings is non-numeric sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.244Z] [ERROR] Error in mealService.createMeal for user user-1: ValidationError: Meal total_servings must be a positive number. sparkyfitness-server-1.7.3> at normalizeServingFields (/build/source/SparkyFitnessServer/services/mealService.ts:109:13) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/services/mealService.ts:422:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:114:21 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > createMeal > defaults serving_size and total_servings to 1 when missing on create sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.245Z] [INFO] Meal new-id created with serving: 1 serving, total_servings: 1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > createMeal > forces serving_size to 1 when serving_unit is "serving" (defensive normalize) sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.246Z] [INFO] Meal new-id created with serving: 1 serving, total_servings: 8 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > createMeal > rewrites legacy-client payload (serving_unit=serving + serving_size>1 + no total_servings) sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.247Z] [INFO] Meal new-id created with serving: 1 serving, total_servings: 4 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > createMeal > does not trigger legacy shim when total_servings is explicit (new client) sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.247Z] [INFO] Meal new-id created with serving: 1 serving, total_servings: 4 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > createMeal > does not trigger legacy shim for non-serving units sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.247Z] [INFO] Meal new-id created with serving: 1000 ml, total_servings: 1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > updateMeal > throws ValidationError when total_servings is zero on update sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.248Z] [ERROR] Error in mealService.updateMeal for user user-1, meal meal-1: ValidationError: Meal total_servings must be a positive number. sparkyfitness-server-1.7.3> at normalizeServingFields (/build/source/SparkyFitnessServer/services/mealService.ts:109:13) sparkyfitness-server-1.7.3> at Object.updateMeal (/build/source/SparkyFitnessServer/services/mealService.ts:547:5) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > createMealFromDiaryEntries > routes diary-created meals through create-time serving normalization sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.250Z] [INFO] Meal new-meal created with serving: 1 serving, total_servings: 1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > createMealFromDiaryEntries > validates a non-default food variant by calling getFoodVariantsByFoodId sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.251Z] [INFO] Meal new-meal created with serving: 1 serving, total_servings: 1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > createMealFromDiaryEntries > skips a food entry if its variant_id does not exist in the database sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.251Z] [ERROR] Error in mealService.createMealFromDiaryEntries for user user-1: Error: Cannot create meal. The following foods or their variants are missing: Chicken (Variant ID: variant-non-existent). Please ensure they exist. sparkyfitness-server-1.7.3> at Object.createMealFromDiaryEntries (/build/source/SparkyFitnessServer/services/mealService.ts:1068:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:392:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > rejects an ingredient row with both food_id and child_meal_id sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.254Z] [ERROR] Error in mealService.createMeal for user user-1: ValidationError: An ingredient cannot reference both a food and a meal. sparkyfitness-server-1.7.3> at validateMealIngredients (/build/source/SparkyFitnessServer/services/mealService.ts:162:15) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/services/mealService.ts:423:11) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:419:21 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > rejects a food ingredient row missing food_id sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.255Z] [ERROR] Error in mealService.createMeal for user user-1: ValidationError: A food ingredient requires food_id. sparkyfitness-server-1.7.3> at validateMealIngredients (/build/source/SparkyFitnessServer/services/mealService.ts:203:13) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/services/mealService.ts:423:11) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:439:21 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > rejects linking a meal that does not exist or is inaccessible sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.256Z] [ERROR] Error in mealService.createMeal for user user-1: ValidationError: Linked meal meal-missing was not found or is not accessible. sparkyfitness-server-1.7.3> at validateMealIngredients (/build/source/SparkyFitnessServer/services/mealService.ts:174:15) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/services/mealService.ts:423:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > rejects a meal linking itself on update sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.256Z] [ERROR] Error in mealService.updateMeal for user user-1, meal meal-1: ValidationError: A meal cannot contain itself. sparkyfitness-server-1.7.3> at validateMealIngredients (/build/source/SparkyFitnessServer/services/mealService.ts:167:15) sparkyfitness-server-1.7.3> at Object.updateMeal (/build/source/SparkyFitnessServer/services/mealService.ts:549:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > rejects a link that would create a cycle sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.257Z] [ERROR] Error in mealService.updateMeal for user user-1, meal meal-1: ValidationError: Linking meal "Child" would create a cycle. sparkyfitness-server-1.7.3> at validateMealIngredients (/build/source/SparkyFitnessServer/services/mealService.ts:185:17) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Object.updateMeal (/build/source/SparkyFitnessServer/services/mealService.ts:549:7) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:497:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > rejects a link that would exceed the max nesting depth sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.258Z] [ERROR] Error in mealService.updateMeal for user user-1, meal meal-1: ValidationError: Meal nesting is too deep (max 5 levels). sparkyfitness-server-1.7.3> at validateMealIngredients (/build/source/SparkyFitnessServer/services/mealService.ts:198:15) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Object.updateMeal (/build/source/SparkyFitnessServer/services/mealService.ts:549:7) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:526:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > rejects a link if the ancestor height plus child depth exceeds max nesting depth sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.258Z] [ERROR] Error in mealService.updateMeal for user user-1, meal meal-1: ValidationError: Meal nesting is too deep (max 5 levels). sparkyfitness-server-1.7.3> at validateMealIngredients (/build/source/SparkyFitnessServer/services/mealService.ts:198:15) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Object.updateMeal (/build/source/SparkyFitnessServer/services/mealService.ts:549:7) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealService.test.ts:551:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stdout | tests/mealService.test.ts > mealService validation > linked-meal ingredient validation > accepts a valid linked-meal ingredient and forwards it to the repository sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.259Z] [INFO] Meal meal-1 created with serving: 1 serving, total_servings: 1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/foodPhotoLogService.test.ts (23 tests) 18ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > uses complete Search-a-licious hits without product fan-out when bulk hydration is unavailable sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.259Z] [WARN] OpenFoodFacts bulk hydration unavailable: Error: OpenFoodFacts bulk hydration failed (HTTP 503) sparkyfitness-server-1.7.3> at hydrateSearchHits (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:424:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:646:7) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:623:22 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > keeps ranked hits when bulk hydration returns malformed JSON sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.261Z] [WARN] OpenFoodFacts bulk hydration unavailable: Error: OpenFoodFacts search returned an invalid response (HTTP 200) sparkyfitness-server-1.7.3> at parseSearchResponse (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:168:9) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at hydrateSearchHits (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:428:23) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:646:7) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:672:24 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > keeps ranked hits when bulk hydration returns malformed product entries sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.262Z] [WARN] OpenFoodFacts bulk hydration unavailable: Error: OpenFoodFacts search returned an invalid response (HTTP 200) sparkyfitness-server-1.7.3> at parseSearchResponse (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:168:9) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at hydrateSearchHits (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:428:23) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:646:7) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:672:24 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > keeps ranked hits when bulk hydration rejects at the network layer sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.263Z] [WARN] OpenFoodFacts bulk hydration unavailable: Error: socket closed sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:699:32 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > throws a compact error without exposing an upstream HTML response sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.264Z] [ERROR] OpenFoodFacts Search-a-licious request failed with HTTP 503 sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.264Z] [ERROR] Error searching OpenFoodFacts with query "pizza" in foodService: Error: OpenFoodFacts search failed (HTTP 503) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:641:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:762:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > throws a compact error for a successful HTML Search-a-licious response sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.265Z] [ERROR] Error searching OpenFoodFacts with query "pizza" in foodService: Error: OpenFoodFacts search returned an invalid response (HTTP 200) sparkyfitness-server-1.7.3> at parseSearchResponse (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:168:9) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:643:18) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:775:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > maps upstream timeout aborts to a compact gateway timeout error sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.266Z] [WARN] OpenFoodFacts request timed out after 10000ms: https://search.openfoodfacts.org/search sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > searchOpenFoodFacts > maps upstream timeout aborts to a compact gateway timeout error sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.266Z] [ERROR] Error searching OpenFoodFacts with query "pizza" in foodService: Error: OpenFoodFacts request timed out sparkyfitness-server-1.7.3> at fetchWithTimeout (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:61:27) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:618:22) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:788:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 504 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> ✓ tests/exerciseStatsService.test.ts (14 tests) 26ms sparkyfitness-server-1.7.3> ✓ tests/mealService.test.ts (23 tests) 31ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > authenticated request path > on 429 with cookie, invalidates and retries unauthenticated once sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.276Z] [WARN] OpenFoodFacts: 429 with session cookie — invalidating and retrying unauthenticated sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > authenticated request path > shares one absolute timeout across an authenticated retry sparkyfitness-server-1.7.3> [2026-01-01T00:00:04.000Z] [WARN] OpenFoodFacts: 503 with session cookie — invalidating and retrying unauthenticated sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > authenticated request path > does not start an authenticated retry after its deadline sparkyfitness-server-1.7.3> [2026-01-01T00:00:10.000Z] [WARN] OpenFoodFacts: 503 with session cookie — invalidating and retrying unauthenticated sparkyfitness-server-1.7.3> [2026-01-01T00:00:10.000Z] [WARN] OpenFoodFacts retry deadline exhausted: https://world.openfoodfacts.org/api/v2/product/12345678.json?fields=product_name,product_name_en,brands,code,serving_size,serving_quantity,serving_quantity_unit,product_quantity_unit,nutriments,allergens_tags,traces_tags,image_front_url,image_url&lc=en sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > authenticated request path > does not start an authenticated retry after its deadline sparkyfitness-server-1.7.3> [2026-01-01T00:00:10.000Z] [ERROR] Error searching OpenFoodFacts with barcode "12345678" and fields "product_name,product_name_en,brands,code,serving_size,serving_quantity,serving_quantity_unit,product_quantity_unit,nutriments,allergens_tags,traces_tags,image_front_url,image_url" in foodService: Error: OpenFoodFacts request timed out sparkyfitness-server-1.7.3> at fetchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:360:27) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFactsByBarcodeFields (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:692:22) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:1164:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 504 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > authenticated request path > gives the unauthenticated retry only the remaining request budget sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.280Z] [WARN] OpenFoodFacts: 503 with session cookie — invalidating and retrying unauthenticated sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > authenticated request path > does not retry on 429 when no cookie was attached sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.281Z] [ERROR] OpenFoodFacts Barcode Fields Search API error: rate limited sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.281Z] [ERROR] Error searching OpenFoodFacts with barcode "12345678" and fields "product_name,product_name_en,brands,code,serving_size,serving_quantity,serving_quantity_unit,product_quantity_unit,nutriments,allergens_tags,traces_tags,image_front_url,image_url" in foodService: Error: OpenFoodFacts API error: rate limited sparkyfitness-server-1.7.3> at Module.searchOpenFoodFactsByBarcodeFields (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:708:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:1283:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > self-hosted base_url resolution > bounds self-hosted candidate scans that cannot fill the requested page sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.283Z] [ERROR] Error searching OpenFoodFacts with query "banana" in foodService: Error: OpenFoodFacts legacy search scan limit reached sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:556:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:1441:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 504, sparkyfitness-server-1.7.3> statusCode: 504 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/openFoodFactsService.test.ts > openFoodFactsService > self-hosted base_url resolution > throws a compact error for a successful HTML self-hosted search response sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.284Z] [ERROR] Error searching OpenFoodFacts with query "pizza" in foodService: Error: OpenFoodFacts search returned an invalid response (HTTP 200) sparkyfitness-server-1.7.3> at parseSearchResponse (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:168:9) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Module.searchOpenFoodFacts (/build/source/SparkyFitnessServer/integrations/openfoodfacts/openFoodFactsService.ts:576:22) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/openFoodFactsService.test.ts:1509:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/waterIntakeRoutes.test.ts > Water Intake Routes (v2) > GET /api/v2/measurements/water-intake/:date > delegates unexpected service errors to the error handler sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.285Z] [ERROR] Error caught by centralized handler: DB connection failed Error: DB connection failed sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/waterIntakeRoutes.test.ts:139:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/waterIntakeRoutes.test.ts > Water Intake Routes (v2) > GET /api/v2/measurements/water-intake/log/:date > delegates unexpected errors to error handler sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.310Z] [ERROR] Error caught by centralized handler: DB error Error: DB error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/waterIntakeRoutes.test.ts:340:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> ✓ tests/timezone.test.ts (61 tests) 43ms sparkyfitness-server-1.7.3> ✓ tests/polarDataProcessor.test.ts (37 tests) 35ms sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > seeds demo user and populates sample entries sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.303Z] [INFO] [DEMO] Creating demo user account: demo@sparkyfitness.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > seeds demo user and populates sample entries sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.304Z] [INFO] [DEMO] Demo user account created with ID: 0904fa1f-c29a-4977-941a-fd6196f2e2da sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > seeds demo user and populates sample entries sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.316Z] [INFO] [DEMO] Demo data successfully initialized for demo@sparkyfitness.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > purges demo user when demo mode is disabled sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.317Z] [INFO] [DEMO] Demo mode disabled — purging demo user demo@sparkyfitness.com (mock-demo-id)... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > purges demo user when demo mode is disabled sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.317Z] [INFO] [DEMO] Successfully purged demo user demo@sparkyfitness.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > resets demo user data strictly scoped by user_id sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.318Z] [INFO] [DEMO RESET] Performing daily scoped reset for demo user mock-demo-id... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > resets demo user data strictly scoped by user_id sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.319Z] [INFO] [DEMO RESET] Daily scoped reset completed successfully for demo user mock-demo-id sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > safely constrains exercise image cleanup to exercise_entries directory sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.319Z] [INFO] [DEMO] Demo mode disabled — purging demo user demo@sparkyfitness.com (mock-demo-id)... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoSeedService > safely constrains exercise image cleanup to exercise_entries directory sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.320Z] [INFO] [DEMO] Successfully purged demo user demo@sparkyfitness.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demo marker safety (fails closed) > refuses to purge an account with a null bio sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.320Z] [WARN] [DEMO] Skipping purge: Account demo@sparkyfitness.com does not carry the demo identity marker. Leaving it untouched. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demo marker safety (fails closed) > refuses to purge an account with an empty bio sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.321Z] [WARN] [DEMO] Skipping purge: Account demo@sparkyfitness.com does not carry the demo identity marker. Leaving it untouched. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demo marker safety (fails closed) > refuses to purge an account with someone else’s bio sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.321Z] [WARN] [DEMO] Skipping purge: Account demo@sparkyfitness.com does not carry the demo identity marker. Leaving it untouched. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> ✓ tests/exerciseRoutesV2.test.ts (21 tests) 68ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 0/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 11/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 0/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 0/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/timezone.test.ts 61/61 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 9 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 362 passed | 47 skipped (668) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.37s sparkyfitness-server-1.7.3> ✓ tests/foodPhotoEstimationService.test.ts (30 tests) 64ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsContributionService.test.ts (39 tests) 35ms sparkyfitness-server-1.7.3> ✓ tests/calorieBalanceService.test.ts (53 tests) 47ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsService.test.ts (65 tests) 47ms sparkyfitness-server-1.7.3> ✓ tests/waterIntakeRoutes.test.ts (29 tests) 77ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 53/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 39/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 12/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts 0/56 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 39/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 65/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts 0/26 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 15 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 589 passed | 47 skipped (768) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.49s sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demo marker safety (fails closed) > refuses to seed over an existing account with no marker sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.382Z] [ERROR] [DEMO] Safety guard prevented modifying non-demo user with email demo@sparkyfitness.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demo marker safety (fails closed) > refuses to seed over an existing account with no marker sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.383Z] [ERROR] [DEMO] Failed to seed demo user data: Error: Safety check failed: Account demo@sparkyfitness.com already exists and is not marked as a demo sandbox account. Set SPARKY_FITNESS_DEMO_EMAIL to an address that is not in use. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/services/demoSeedService.ts:428:17 sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/demoSeedService.test.ts:366:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demo marker safety (fails closed) > skips the daily reset when the marker is absent sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.387Z] [WARN] [DEMO RESET] Skipping reset: Account demo@sparkyfitness.com does not carry the demo identity marker. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /api/chat on any method sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.388Z] [WARN] [DEMO GUARD] Blocked GET /api/chat for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /api/chat/stream on any method sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.388Z] [WARN] [DEMO GUARD] Blocked GET /api/chat/stream for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /api/ai/convert on any method sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.389Z] [WARN] [DEMO GUARD] Blocked GET /api/ai/convert for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /mcp on any method sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.389Z] [WARN] [DEMO GUARD] Blocked GET /mcp for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /api/admin/global-settings on any method sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.389Z] [WARN] [DEMO GUARD] Blocked GET /api/admin/global-settings for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /api/integrations/strava/connect on any method sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.390Z] [WARN] [DEMO GUARD] Blocked GET /api/integrations/strava/connect for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /api/withings/link on any method sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.390Z] [WARN] [DEMO GUARD] Blocked GET /api/withings/link for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks /mcp when mounted, where req.path is relative sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.391Z] [WARN] [DEMO GUARD] Blocked POST /mcp/tools for demo user sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.391Z] [WARN] [DEMO GUARD] Blocked POST /mcp/ for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks mutations under /api/external-providers but allows reads sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.391Z] [WARN] [DEMO GUARD] Blocked POST /api/external-providers for demo user sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.392Z] [WARN] [DEMO GUARD] Blocked PUT /api/external-providers for demo user sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.392Z] [WARN] [DEMO GUARD] Blocked PATCH /api/external-providers for demo user sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.392Z] [WARN] [DEMO GUARD] Blocked DELETE /api/external-providers for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks mutations under /api/identity but allows reads sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.392Z] [WARN] [DEMO GUARD] Blocked PUT /api/identity/profiles for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/foods/import-from-csv sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.393Z] [WARN] [DEMO GUARD] Blocked POST /api/foods/import-from-csv for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/food-entries/import-from-csv sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.393Z] [WARN] [DEMO GUARD] Blocked POST /api/food-entries/import-from-csv for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/exercise-entries/import-history-csv sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.393Z] [WARN] [DEMO GUARD] Blocked POST /api/exercise-entries/import-history-csv for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/exercise-entries/import-fit sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.394Z] [WARN] [DEMO GUARD] Blocked POST /api/exercise-entries/import-fit for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/exercises/import-json sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.394Z] [WARN] [DEMO GUARD] Blocked POST /api/exercises/import-json for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/foods/scan-label sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.395Z] [WARN] [DEMO GUARD] Blocked POST /api/foods/scan-label for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/foods/estimate-food-photo sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.395Z] [WARN] [DEMO GUARD] Blocked POST /api/foods/estimate-food-photo for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks non-multipart upload route /api/v2/foods/abc-123/openfoodfacts/contribute sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.396Z] [WARN] [DEMO GUARD] Blocked POST /api/v2/foods/abc-123/openfoodfacts/contribute for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/demoSeedService.test.ts > Demo Mode Infrastructure > demoRestrictionGuard > blocks multipart uploads on any route sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.396Z] [WARN] [DEMO GUARD] Blocked POST /api/foods/image for demo user sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementRepository.water.test.ts > measurementRepository.upsertWaterIntakeSamples > replaces the day's unkeyed rows once per (date, source) for unkeyed non-manual samples sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.443Z] [WARN] [upsertWaterIntakeSamples] Sample without sourceId for source 'health_connect'; using replace-per-day semantics for 2026-08-03. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementRepository.water.test.ts > measurementRepository.upsertWaterIntakeSamples > replaces the day's unkeyed rows once per (date, source) for unkeyed non-manual samples sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.444Z] [WARN] [upsertWaterIntakeSamples] Sample without sourceId for source 'health_connect'; using replace-per-day semantics for 2026-08-03. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementRepository.water.test.ts > measurementRepository.upsertWaterIntakeSamples > does not replace-per-day for unkeyed manual samples (additive insert) sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.445Z] [WARN] [upsertWaterIntakeSamples] Sample without sourceId for source 'manual'; inserting additively (not deduped). sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementRepository.water.test.ts > measurementRepository.upsertWaterIntakeSamples > falls back to a plain insert (no conflict target) when sourceId is missing sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.449Z] [WARN] [upsertWaterIntakeSamples] Sample without sourceId for source 'manual'; inserting additively (not deduped). sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 53/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 39/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 12/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts 0/56 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 39/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 65/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts 0/26 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 15 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 589 passed | 47 skipped (768) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.49s sparkyfitness-server-1.7.3> ✓ tests/demoSeedService.test.ts (39 tests) 171ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieBalanceService.test.ts 53/53 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoSeedService.test.ts 39/39 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 12/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutesV2.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts 0/56 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationService.test.ts 30/30 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionService.test.ts 39/39 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsService.test.ts 65/65 sparkyfitness-server-1.7.3> ❯ tests/polarDataProcessor.test.ts 37/37 sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeRoutes.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts 0/26 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 15 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 589 passed | 47 skipped (768) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.49s sparkyfitness-server-1.7.3> ✓ tests/measurementRepository.water.test.ts (18 tests) 19ms sparkyfitness-server-1.7.3> ✓ tests/yazioService.test.ts (26 tests) 20ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts 0/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 12/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts 44/56 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.water.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/yazioService.test.ts 26/26 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 17 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 676 passed | 47 skipped (801) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.59s sparkyfitness-server-1.7.3> ✓ tests/exerciseService.groupedWorkouts.test.ts (56 tests) 204ms sparkyfitness-server-1.7.3> ✓ tests/dailySummaryService.test.ts (19 tests) 34ms sparkyfitness-server-1.7.3> ✓ tests/dailySummaryRangeService.test.ts (14 tests) 70ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 0/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRangeService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/dailySummaryService.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 13/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.groupedWorkouts.test.ts 56/56 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaActivityDetailCleanup.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 20 passed | 2 skipped (434) sparkyfitness-server-1.7.3> Tests 722 passed | 47 skipped (820) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.80s sparkyfitness-server-1.7.3> ↓ tests/rlsPermissionMatrix.integration.test.ts (243 tests | 217 skipped) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 0/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 14/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts 0/48 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDiaryImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts 1/21 sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts 0/64 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts 243/243 sparkyfitness-server-1.7.3> ❯ tests/stravaActivityDetailCleanup.integration.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts 0/17 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 20 passed | 4 skipped (434) sparkyfitness-server-1.7.3> Tests 724 passed | 285 skipped (1275) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.90s sparkyfitness-server-1.7.3> stderr | tests/mealRepository.test.ts > mealRepository > createMeal > should rollback transaction on error sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.784Z] [ERROR] Error creating meal: Error: Database error sparkyfitness-server-1.7.3> at Object. (/build/source/SparkyFitnessServer/tests/mealRepository.test.ts:112:17) sparkyfitness-server-1.7.3> at Object.Mock [as query] (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/spy.DPLvp2J7.js:320:40) sparkyfitness-server-1.7.3> at Object.createMeal (/build/source/SparkyFitnessServer/models/mealRepository.ts:151:37) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRepository.test.ts:116:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRepository.test.ts > mealRepository > updateMeal > should rollback transaction on error sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.795Z] [ERROR] Error updating meal 60f3e750-1627-4933-b3db-a0da774a0c91: Error: Database error during update sparkyfitness-server-1.7.3> at Object. (/build/source/SparkyFitnessServer/tests/mealRepository.test.ts:480:17) sparkyfitness-server-1.7.3> at Object.Mock [as query] (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/spy.DPLvp2J7.js:320:40) sparkyfitness-server-1.7.3> at Object.updateMeal (/build/source/SparkyFitnessServer/models/mealRepository.ts:314:33) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRepository.test.ts:484:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRepository.test.ts > mealRepository > deleteMeal > should rollback transaction on error sparkyfitness-server-1.7.3> [2026-09-30T11:46:11.796Z] [ERROR] Error deleting meal 1af0fa44-2f4a-441a-96a5-602fa51f9e21: Error: Database error during delete sparkyfitness-server-1.7.3> at Object. (/build/source/SparkyFitnessServer/tests/mealRepository.test.ts:520:17) sparkyfitness-server-1.7.3> at Object.Mock [as query] (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/spy.DPLvp2J7.js:320:40) sparkyfitness-server-1.7.3> at Object.deleteMeal (/build/source/SparkyFitnessServer/models/mealRepository.ts:383:33) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRepository.test.ts:524:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 0/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 14/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts 0/48 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDiaryImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts 1/21 sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts 0/64 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts 243/243 sparkyfitness-server-1.7.3> ❯ tests/stravaActivityDetailCleanup.integration.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts 0/17 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 20 passed | 4 skipped (434) sparkyfitness-server-1.7.3> Tests 724 passed | 285 skipped (1275) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.90s sparkyfitness-server-1.7.3> ↓ tests/stravaActivityDetailCleanup.integration.test.ts (21 tests | 21 skipped) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 0/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 14/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts 0/48 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDiaryImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts 1/21 sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts 0/64 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/rlsPermissionMatrix.integration.test.ts 243/243 sparkyfitness-server-1.7.3> ❯ tests/stravaActivityDetailCleanup.integration.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts 0/17 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 20 passed | 4 skipped (434) sparkyfitness-server-1.7.3> Tests 724 passed | 285 skipped (1275) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 3.90s sparkyfitness-server-1.7.3> ✓ tests/mealRepository.test.ts (21 tests) 22ms sparkyfitness-server-1.7.3> ✓ tests/workoutPlanTemplateService.test.ts (17 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/externalProviderService.test.ts (48 tests) 26ms sparkyfitness-server-1.7.3> ✓ tests/adaptiveTdeeService.test.ts (14 tests) 27ms sparkyfitness-server-1.7.3> ✓ tests/exerciseImportDedup.test.ts (8 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/medicationRoutes.test.ts (64 tests) 141ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 14/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDiaryImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRepository.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts 64/64 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts 12/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaActivityDetailCleanup.integration.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanTemplateService.test.ts 17/17 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 26 passed | 4 skipped (434) sparkyfitness-server-1.7.3> Tests 914 passed | 285 skipped (1283) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.01s sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsAuth.test.ts (27 tests) 179ms sparkyfitness-server-1.7.3> ✓ tests/genericHealthRepository.test.ts (12 tests) 18ms sparkyfitness-server-1.7.3> ✓ tests/foodEntryMealService.test.ts (9 tests) 8ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveTdeeService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts 0/38 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts 0/18 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts 0/107 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts 0/26 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 15/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseImportDedup.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDiaryImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRoutes.test.ts 64/64 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 29 passed | 4 skipped (434) sparkyfitness-server-1.7.3> Tests 951 passed | 285 skipped (1493) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.13s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsCoach.test.ts (18 tests) 32ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsWorkoutPlans.test.ts (26 tests) 35ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsCheckin.test.ts (38 tests) 36ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsExercise.test.ts (107 tests) 61ms sparkyfitness-server-1.7.3> ↓ tests/exerciseEntryStats.integration.test.ts (20 tests | 20 skipped) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCheckin.test.ts 38/38 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCoach.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExercise.test.ts 107/107 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWorkoutPlans.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/chatRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 15/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryStats.integration.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDiaryImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealService.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthRepository.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAuth.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts 1/13 sparkyfitness-server-1.7.3> ❯ tests/preferenceRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 33 passed | 5 skipped (434) sparkyfitness-server-1.7.3> Tests 1141 passed | 305 skipped (1526) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.25s sparkyfitness-server-1.7.3> ✓ tests/ouraDataProcessor.test.ts (13 tests) 26ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts 0/20 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 16/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDiaryImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraDataProcessor.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/preferenceRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 34 passed | 5 skipped (434) sparkyfitness-server-1.7.3> Tests 1154 passed | 305 skipped (1546) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.36s sparkyfitness-server-1.7.3> ✓ tests/foodDiaryImport.test.ts (13 tests) 13ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsGoals.test.ts (20 tests) 33ms sparkyfitness-server-1.7.3> ✓ tests/chatRepository.test.ts (11 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/preferenceRepository.test.ts (16 tests) 14ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolRepositories.test.ts (33 tests) 21ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolRepositories.test.ts 33/33 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsGoals.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatRepository.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 17/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceRepository.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 39 passed | 5 skipped (434) sparkyfitness-server-1.7.3> Tests 1248 passed | 305 skipped (1619) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.46s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 18/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts 0/20 sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 39 passed | 5 skipped (434) sparkyfitness-server-1.7.3> Tests 1249 passed | 305 skipped (1656) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.56s sparkyfitness-server-1.7.3> ✓ tests/foodEntryCopy.test.ts (17 tests) 16ms sparkyfitness-server-1.7.3> ✓ tests/googleHealthDataProcessor.test.ts (20 tests) 31ms sparkyfitness-server-1.7.3> ↓ tests/normalizeExerciseJsonArrayFields.integration.test.ts (2 tests | 2 skipped) sparkyfitness-server-1.7.3> ✓ tests/foodEntrySnapshot.test.ts (20 tests) 14ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 18/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopy.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts 0/18 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthDataProcessor.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts 0/26 sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 0/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts 0/31 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 42 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1306 passed | 307 skipped (1823) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.68s sparkyfitness-server-1.7.3> stderr | tests/workoutHandlerTelemetry.test.ts > workoutHandler — failure isolation > still reports success when telemetry persistence fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.641Z] [ERROR] [processHealthData] Saved workout entry-uuid-1 but failed to persist its telemetry: gps table unavailable sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts 63/63 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts 31/31 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 54 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1573 passed | 307 skipped (1961) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.90s sparkyfitness-server-1.7.3> ✓ tests/labelScanService.test.ts (21 tests) 31ms sparkyfitness-server-1.7.3> ✓ tests/workoutHandlerTelemetry.test.ts (31 tests) 37ms sparkyfitness-server-1.7.3> ✓ tests/foodPhotoLogRoute.test.ts (18 tests) 60ms sparkyfitness-server-1.7.3> ✓ tests/exerciseService.stats.test.ts (10 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts 63/63 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts 31/31 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 54 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1573 passed | 307 skipped (1961) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.90s sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > POST /meals > should return 500 if meal creation fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.686Z] [ERROR] Error creating meal: Error: Failed to create meal sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:52:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.690Z] [ERROR] Error caught by centralized handler: Failed to create meal Error: Failed to create meal sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:52:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts 63/63 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts 31/31 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 54 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1573 passed | 307 skipped (1961) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.90s sparkyfitness-server-1.7.3> ✓ tests/hevyDataProcessor.test.ts (17 tests) 28ms sparkyfitness-server-1.7.3> ✓ tests/foodCoreService.updateSnapshot.test.ts (14 tests) 12ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts 63/63 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts 31/31 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 54 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1573 passed | 307 skipped (1961) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.90s sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > GET /meals/:id > should return 404 if meal not found sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.708Z] [ERROR] Error getting meal by ID ea02c638-3042-4622-8064-d7dc89a70fda: Error: Meal not found. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:154:49 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > GET /meals/:id > should return 403 if not authorized to access meal sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.710Z] [ERROR] Error getting meal by ID fd4fa605-1f58-4531-9285-32da61e30fc6: Error: Forbidden: You do not have permission to access this meal. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:162:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > PUT /meals/:id > should return 404 if meal not found during update sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.715Z] [ERROR] Error updating meal 0853789a-c06f-49b4-8a89-10d6aa1d38c0: Error: Meal not found. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:191:48 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > DELETE /meals/:id > should return 404 if meal not found during delete sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.717Z] [ERROR] Error deleting meal 4f19894f-afe0-4144-bae4-1e83ddae1df5: Error: Meal not found. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:213:48 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > PUT /meals/plan/:id > should return 404 if meal plan entry not found during update sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.723Z] [ERROR] Error updating meal plan entry 2a7c3686-c3e2-4ab4-8c49-cd9bf3e17712: Error: Meal plan entry not found or not authorized. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:281:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > DELETE /meals/plan/:id > should return 404 if meal plan entry not found during delete sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.725Z] [ERROR] Error deleting meal plan entry c070481d-ce0e-44d3-a7cb-8a662bf0471d: Error: Meal plan entry not found or not authorized. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:311:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealRoutes.test.ts > Meal Routes > POST /meals/plan/:id/log-to-diary > should return 404 if meal plan entry not found during logging sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.728Z] [ERROR] Error logging meal plan entry 91e49de8-8186-4a9f-85a0-311671cca03a to diary: Error: Meal plan entry not found or not authorized. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealRoutes.test.ts:342:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts 63/63 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts 31/31 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 54 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1573 passed | 307 skipped (1961) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.90s sparkyfitness-server-1.7.3> ✓ tests/barcodeLookup.test.ts (63 tests) 24ms sparkyfitness-server-1.7.3> ✓ tests/foodCoreService.test.ts (23 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/mealRoutes.test.ts (26 tests) 72ms sparkyfitness-server-1.7.3> ✓ tests/externalFoodSearchService.fatsecret.test.ts (14 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsManualContribution.test.ts (22 tests) 54ms sparkyfitness-server-1.7.3> ✓ tests/genericHealthSchemas.test.ts (7 tests) 27ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookup.test.ts 63/63 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.stats.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodCoreService.updateSnapshot.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySnapshot.test.ts 20/20 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoLogRoute.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hevyDataProcessor.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanService.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealRoutes.test.ts 26/26 sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/normalizeExerciseJsonArrayFields.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutHandlerTelemetry.test.ts 31/31 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 54 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1573 passed | 307 skipped (1961) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 4.90s sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > applies default unit when payload has no unit (e.g. heart_rate -> bpm) sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.836Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: heart_rate=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > uses payload unit when provided sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.838Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: heart_rate=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > stores TotalCaloriesBurned in the daily Health Connect summary sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.839Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: TotalCaloriesBurned=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > applies default unit for distance when unit missing sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.840Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: distance=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > stores Health Connect height in check-in measurements as centimeters sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.841Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: height=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > stores HealthKit height in check-in measurements as centimeters sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.842Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: height=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > stores HealthKit Height in check-in measurements as centimeters sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.843Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Height=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > rejects height with an unsupported unit instead of guessing sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.843Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: height=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > stores Health Connect body_fat in check-in measurements as body_fat_percentage sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.844Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: body_fat=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > processHealthData default units (#567) > merges same-day check-in records into one bulk write sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.845Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: step=1, weight=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for heart_rate_min to bpm sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.846Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: heart_rate_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for heart_rate_max to bpm sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.846Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: heart_rate_max=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for heart_rate_avg to bpm sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.846Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: heart_rate_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for blood_glucose_avg to mmol/L sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.846Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: blood_glucose_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for blood_oxygen_saturation_min to percent sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.847Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: blood_oxygen_saturation_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for respiratory_rate_max to breaths/min sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.847Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: respiratory_rate_max=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.847Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV_min to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.848Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV_max to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.848Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV_max=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV_avg to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.848Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV_SDNN to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.848Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV_SDNN=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV_SDNN_min to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.849Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV_SDNN_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV_SDNN_max to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.849Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV_SDNN_max=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for HRV_SDNN_avg to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.849Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: HRV_SDNN_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for running_speed_avg to m/s sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.850Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: running_speed_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for running_power_avg to W sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.850Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: running_power_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for running_stride_length_min to cm sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.851Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: running_stride_length_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for running_ground_contact_max to ms sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.851Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: running_ground_contact_max=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for running_vertical_oscillation_avg to cm sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.851Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: running_vertical_oscillation_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for cycling_power_max to W sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.851Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: cycling_power_max=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for cycling_cadence_avg to rpm sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.852Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: cycling_cadence_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for cycling_speed_min to m/s sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.852Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: cycling_speed_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for walking_speed_min to m/s sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.852Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: walking_speed_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for walking_step_length_avg to cm sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.852Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: walking_step_length_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for walking_asymmetry_min to percent sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.853Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: walking_asymmetry_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > creates a provider food + entry when no food matches by external id sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.848Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > reuses an existing provider food and refreshes its variant nutrition sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.853Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > snapshots consumed nutrients onto the entry so equal-named records do not collapse sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.854Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts 52/52 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 63 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1784 passed | 307 skipped (2179) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.00s sparkyfitness-server-1.7.3> stderr | tests/healthDataHandlers.test.ts > waterHandler.handleBatch > errors every entry of a source group when its repository write fails, leaving other groups intact sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.845Z] [ERROR] [waterHandler.handleBatch] upsertWaterIntakeSamples failed for source 'healthkit' (2 record(s)): boom Error: boom sparkyfitness-server-1.7.3> at Object. (/build/source/SparkyFitnessServer/tests/healthDataHandlers.test.ts:262:49) sparkyfitness-server-1.7.3> at Object.Mock [as upsertWaterIntakeSamples] (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/spy.DPLvp2J7.js:320:40) sparkyfitness-server-1.7.3> at Object.handleBatch (/build/source/SparkyFitnessServer/services/healthDataHandlers.ts:923:53) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/healthDataHandlers.test.ts:267:22 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts 52/52 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 63 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1784 passed | 307 skipped (2179) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.00s sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for walking_double_support_max to percent sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.853Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: walking_double_support_max=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for steps_cadence_min to steps/min sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.853Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: steps_cadence_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for apple_move_time to seconds sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.854Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: apple_move_time=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for apple_exercise_time to seconds sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.854Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: apple_exercise_time=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for apple_stand_time to seconds sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.855Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: apple_stand_time=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for dietary_protein to g sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.855Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: dietary_protein=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for dietary_sodium to mg sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.855Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: dietary_sodium=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for environmental_audio_exposure_avg to dB sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.856Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: environmental_audio_exposure_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for headphone_audio_exposure_min to dB sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.856Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: headphone_audio_exposure_min=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > resolves default unit for cycling_ftp to W sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.857Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: cycling_ftp=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > gives each nameless record its own food keyed by source_id (no collapse) sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.857Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts 52/52 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 63 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1784 passed | 307 skipped (2179) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.00s sparkyfitness-server-1.7.3> stderr | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > skips a Nutrition record with no source_id (cannot dedupe → would duplicate) sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.858Z] [WARN] [processHealthData] Skipping Nutrition record without source_id (cannot dedupe): 'Protein Strawberry pack' sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts 52/52 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 63 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1784 passed | 307 skipped (2179) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.00s sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > skips a Nutrition record with no source_id (cannot dedupe → would duplicate) sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.859Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > does not touch foods when there are no nutrition records sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.860Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: weight=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > tags HealthKit entries with healthkit provider and uses Apple Health food as fallback name sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.861Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > Health Connect source is unchanged — still tags health_connect for all three uses sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.862Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthConnectNutrition.test.ts > processHealthData Nutrition ingestion > unknown or missing source falls back to health_connect and Health Connect food sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.862Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/measurementService.healthConnectNutrition.test.ts (9 tests) 33ms sparkyfitness-server-1.7.3> ✓ tests/schedules.test.ts (17 tests) 37ms sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > rejects custom measurement entry with non-numeric value sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.875Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: running_speed_avg=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > passes notes through to the custom measurement write when provided sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.876Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: cycling_ftp=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataUnits.test.ts > Aggregated health metric default units > fetches categories once and writes once for a multi-record batch sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.877Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: running_speed_avg=3 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthDataHandlers.test.ts > bmrHandler.handleBatch > refuses an in-progress day only for sources that accumulate sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.878Z] [INFO] healthDataHandlers: ignoring BMR for 2026-09-30 from garmin — that source reports BMR as a daily total and the day is not complete in the user's timezone. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts 52/52 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 63 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1784 passed | 307 skipped (2179) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.00s sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > getWaterIntakeEntryById > should throw 404 when entry is not found sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.879Z] [ERROR] Error fetching water intake entry non-existent-entry by test-user-id: Error: Water intake entry not found. sparkyfitness-server-1.7.3> at Object.getWaterIntakeEntryById (/build/source/SparkyFitnessServer/services/measurementService.ts:905:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > updateWaterIntake > should throw 404 when entry is not found sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.890Z] [ERROR] Error updating water intake entry non-existent-entry by test-user-id on behalf of test-user-id: Error: Water intake entry not found. sparkyfitness-server-1.7.3> at Object.updateWaterIntake (/build/source/SparkyFitnessServer/services/measurementService.ts:937:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > updateWaterIntake > should throw 403 when user does not own the entry sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.891Z] [ERROR] Error updating water intake entry entry-123 by test-user-id on behalf of test-user-id: Error: Forbidden: You do not have permission to update this water intake entry. sparkyfitness-server-1.7.3> at Object.updateWaterIntake (/build/source/SparkyFitnessServer/services/measurementService.ts:940:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > updateWaterIntake > should throw 404 when repository update returns null sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.892Z] [ERROR] Error updating water intake entry entry-123 by test-user-id on behalf of test-user-id: Error: Water intake entry not found or not authorized to update. sparkyfitness-server-1.7.3> at Object.updateWaterIntake (/build/source/SparkyFitnessServer/services/measurementService.ts:951:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/measurementService.waterIntake.test.ts:389:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > deleteWaterIntake > should throw 404 when entry is not found sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.894Z] [ERROR] Error deleting water intake entry non-existent-entry by test-user-id on behalf of test-user-id: Error: Water intake entry not found. sparkyfitness-server-1.7.3> at Object.deleteWaterIntake (/build/source/SparkyFitnessServer/services/measurementService.ts:979:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > deleteWaterIntake > should throw 403 when user does not own the entry sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.894Z] [ERROR] Error deleting water intake entry entry-123 by test-user-id on behalf of test-user-id: Error: Forbidden: You do not have permission to delete this water intake entry. sparkyfitness-server-1.7.3> at Object.deleteWaterIntake (/build/source/SparkyFitnessServer/services/measurementService.ts:982:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > getWaterIntakeByDateRange > rethrows a repository failure sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.896Z] [ERROR] Error fetching water intake range for user target-user-id from 2026-08-01 to 2026-08-30 by test-user-id: Error: Database error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/measurementService.waterIntake.test.ts:515:31 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/measurementService.waterIntake.test.ts > Measurement Service - Water Intake > Integration Tests > should handle permission check before repository call sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.897Z] [ERROR] Error updating water intake entry entry-123 by test-user-id on behalf of test-user-id: Error: Forbidden: You do not have permission to update this water intake entry. sparkyfitness-server-1.7.3> at Object.updateWaterIntake (/build/source/SparkyFitnessServer/services/measurementService.ts:940:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/waterIntakeLinkedDecrement.test.ts > Linked Water Container Increment/Decrement (#2115) > updateWaterIntakeLogTime - syncs linked food entry time > rolls back and rejects if updating linked food entry returns null sparkyfitness-server-1.7.3> [2026-09-30T11:46:12.881Z] [ERROR] Error updating water intake log time for log-entry-1: Error: Linked food entry food-entry-linked-1 not found or update failed sparkyfitness-server-1.7.3> at Object.updateWaterIntakeLogTime (/build/source/SparkyFitnessServer/services/measurementService.ts:2128:15) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/waterIntakeLinkedDecrement.test.ts:585:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts 52/52 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 63 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1784 passed | 307 skipped (2179) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.00s sparkyfitness-server-1.7.3> ✓ tests/measurementService.healthDataUnits.test.ts (48 tests) 47ms sparkyfitness-server-1.7.3> ✓ tests/healthDataHandlers.test.ts (52 tests) 48ms sparkyfitness-server-1.7.3> ✓ tests/dailySummarySupplements.test.ts (12 tests) 13ms sparkyfitness-server-1.7.3> ✓ tests/measurementService.timezone.test.ts (25 tests) 32ms sparkyfitness-server-1.7.3> ✓ tests/measurementService.sleepResyncMerge.test.ts (8 tests) 36ms sparkyfitness-server-1.7.3> ✓ tests/measurementService.waterIntake.test.ts (27 tests) 32ms sparkyfitness-server-1.7.3> ✓ tests/waterIntakeLinkedDecrement.test.ts (13 tests) 39ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummarySupplements.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 19/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.fatsecret.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/genericHealthSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataHandlers.test.ts 52/52 sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectNutrition.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataUnits.test.ts 48/48 sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsManualContribution.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/schedules.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 63 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1784 passed | 307 skipped (2179) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.00s sparkyfitness-server-1.7.3> ✓ tests/foodPhotoContracts.test.ts (24 tests) 21ms sparkyfitness-server-1.7.3> ✓ tests/foodPhotoMatchService.test.ts (31 tests) 33ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntry.vanishedParent.test.ts (7 tests) 14ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 20/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoContracts.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoMatchService.test.ts 31/31 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepResyncMerge.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/measurementService.timezone.test.ts 25/25 sparkyfitness-server-1.7.3> ❯ tests/measurementService.waterIntake.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncQueueRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeLinkedDecrement.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 66 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1847 passed | 307 skipped (2257) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.11s sparkyfitness-server-1.7.3> ✓ tests/aiUnitConversionService.test.ts (27 tests) 31ms sparkyfitness-server-1.7.3> ✓ tests/adminExternalProviderRoutes.test.ts (13 tests) 52ms sparkyfitness-server-1.7.3> ✓ tests/injectionRepository.test.ts (13 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsReport.test.ts (11 tests) 25ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adminExternalProviderRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiUnitConversionService.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts 0/57 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsReport.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 21/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.vanishedParent.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/injectionRepository.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncQueueRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 70 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 1912 passed | 307 skipped (2362) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.21s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolSchemas.test.ts (57 tests) 44ms sparkyfitness-server-1.7.3> ✓ tests/globalSettingsRepository.test.ts (24 tests) 13ms sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > getFatSecretAccessToken caching > does not share a cached token between different client ids sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.263Z] [INFO] Attempting to get FatSecret Access Token for scope "basic" from: https://oauth.fatsecret.com/connect/token sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > getFatSecretAccessToken caching > does not share a cached token between different client ids sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.264Z] [INFO] Attempting to get FatSecret Access Token for scope "basic" from: https://oauth.fatsecret.com/connect/token sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > getFatSecretAccessToken caching > reuses the cached token for the same client id and scope sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.266Z] [INFO] Attempting to get FatSecret Access Token for scope "basic" from: https://oauth.fatsecret.com/connect/token sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > getFatSecretAccessToken caching > does not serve a basic-scope token for a premier request sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.266Z] [INFO] Attempting to get FatSecret Access Token for scope "basic" from: https://oauth.fatsecret.com/connect/token sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > getFatSecretAccessToken caching > does not serve a basic-scope token for a premier request sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.267Z] [INFO] Attempting to get FatSecret Access Token for scope "premier" from: https://oauth.fatsecret.com/connect/token sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretSearchItem > should map metric description correctly sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.269Z] [INFO] FATSECRET_DEBUG: Search item final mapping: size=100, unit=g, desc="Per 100g - Calories: 165kcal | Fat: 3.57g | Carbs: 0.00g | Protein: 31.02g" sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretSearchItem > should map metric in parentheses correctly sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.269Z] [INFO] FATSECRET_DEBUG: Search item final mapping: size=28, unit=g, desc="Per 1 serving (28g) - Calories: 110kcal | Fat: 2.00g | Carbs: 15.00g | Protein: 7.00g" sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretSearchItem > should map fractional household units sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.270Z] [INFO] FATSECRET_DEBUG: Search item final mapping: size=0.25, unit=cup, desc="Per 1/4 cup - Calories: 110kcal | Fat: 2g | Carbs: 15g | Protein: 7g" sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretSearchItem > should map whole household units correctly sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.270Z] [INFO] FATSECRET_DEBUG: Search item final mapping: size=1, unit=slice, desc="Per 1 slice - Calories: 70kcal | Fat: 1g | Carbs: 12g | Protein: 2g" sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretSearchItem > should map mixed fractions like 1 1/2 cups sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.270Z] [INFO] FATSECRET_DEBUG: Search item final mapping: size=1.5, unit=cup, desc="Per 1 1/2 cups - Calories: 150kcal | Fat: 2g | Carbs: 25g | Protein: 5g" sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretFood > should map detailed food with multiple variants sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.271Z] [INFO] FATSECRET_DEBUG: Adding variant: size=1, unit=tablespoon, normalizedUnit=tbsp, key=1_tbsp, isDefault=true sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.271Z] [INFO] FATSECRET_DEBUG: Adding variant: size=15, unit=g, normalizedUnit=g, key=15_g, isDefault=true sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.271Z] [INFO] FATSECRET_DEBUG: Adding variant: size=6.667, unit=tablespoon, normalizedUnit=tbsp, key=6.667_tbsp, isDefault=false sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.271Z] [INFO] FATSECRET_DEBUG: Adding variant: size=100, unit=g, normalizedUnit=g, key=100_g, isDefault=false sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretFood > should parse Brand food serving_description for fractions sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.271Z] [INFO] FATSECRET_DEBUG: Adding variant: size=0.25, unit=cup, normalizedUnit=cup, key=0.25_cup, isDefault=false sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.271Z] [INFO] FATSECRET_DEBUG: Adding variant: size=28, unit=g, normalizedUnit=g, key=28_g, isDefault=false sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/fatsecretService.test.ts > FatSecret Service Mapping > mapFatSecretFood > should split a single serving into household and metric variants sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.272Z] [INFO] FATSECRET_DEBUG: Adding variant: size=1, unit=cup, normalizedUnit=cup, key=1_cup, isDefault=true sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.272Z] [INFO] FATSECRET_DEBUG: Adding variant: size=237, unit=g, normalizedUnit=g, key=237_g, isDefault=true sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/fatsecretService.test.ts (14 tests) 31ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolSchemas.test.ts 57/57 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts 1/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 21/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fatsecretService.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRepository.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncQueueRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts 0/18 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts 0/23 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 73 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2008 passed | 307 skipped (2456) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.43s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsVision.test.ts (15 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/workoutTelemetryDerivation.test.ts (23 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/tandoorService.test.ts (18 tests) 64ms sparkyfitness-server-1.7.3> ✓ tests/symptoms.test.ts (24 tests) 52ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsSyncQueueRepository.test.ts (14 tests) 13ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts 0/156 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsVision.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 21/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncQueueRepository.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/symptoms.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/tandoorService.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutTelemetryDerivation.test.ts 23/23 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 78 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2101 passed | 307 skipped (2647) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.54s sparkyfitness-server-1.7.3> ✓ tests/caffeineKinetics.test.ts (21 tests) 31ms sparkyfitness-server-1.7.3> ✓ tests/oidcProviderRepository.test.ts (13 tests) 11ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineKinetics.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts 137/156 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 22/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcProviderRepository.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncQueueRepository.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 80 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2273 passed | 307 skipped (2660) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.65s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsFood.test.ts (156 tests) 114ms sparkyfitness-server-1.7.3> ✓ tests/foodPhotoEstimateMath.test.ts (32 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/libraryDeletePreservesDiary.test.ts (11 tests) 13ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFood.test.ts 156/156 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 22/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 83 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2335 passed | 307 skipped (2703) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.75s sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > strict mode (default) > deletes without touching referencing tables sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.761Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: strict sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > strict mode (default) > reports a blocked delete as in-use for RESTRICT violations (23001) sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.766Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: strict sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > strict mode (default) > reports a blocked delete as in-use for FK violations (23503) sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.770Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: strict sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > strict mode (default) > returns not-deleted when the type belongs to another user sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.771Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: strict sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > strict mode (default) > refuses to delete system default meal types sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.772Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: strict sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 84 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2360 passed | 307 skipped (2790) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.85s sparkyfitness-server-1.7.3> stderr | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > strict mode (default) > refuses to delete system default meal types sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.772Z] [ERROR] Error deleting meal type: Error: Cannot delete system default meal types. sparkyfitness-server-1.7.3> at Object.deleteMealType (/build/source/SparkyFitnessServer/models/mealType.ts:299:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealTypeDelete.test.ts:143:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 84 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2360 passed | 307 skipped (2790) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.85s sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > reassign mode > moves every referencing table to the target, then deletes, in one transaction sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.778Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: reassign sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > reassign mode > scopes template assignments through the parent template sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.780Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: reassign sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/activitySport.test.ts (23 tests) 19ms sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > reassign mode > rejects a target that is not visible to the user, without mutating sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.780Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: reassign sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 84 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2360 passed | 307 skipped (2790) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.85s sparkyfitness-server-1.7.3> stderr | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > reassign mode > rejects a target that is not visible to the user, without mutating sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.781Z] [ERROR] Error deleting meal type: Error: Invalid reassignment target meal type. sparkyfitness-server-1.7.3> at Object.deleteMealType (/build/source/SparkyFitnessServer/models/mealType.ts:316:15) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealTypeDelete.test.ts:208:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 84 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2360 passed | 307 skipped (2790) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.85s sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > reassign mode > rejects reassigning a meal type onto itself sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.782Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: reassign sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 84 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2360 passed | 307 skipped (2790) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.85s sparkyfitness-server-1.7.3> stderr | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > reassign mode > rejects reassigning a meal type onto itself sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.782Z] [ERROR] Error deleting meal type: Error: Invalid reassignment target meal type. sparkyfitness-server-1.7.3> at Object.deleteMealType (/build/source/SparkyFitnessServer/models/mealType.ts:308:15) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealTypeDelete.test.ts:223:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 84 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2360 passed | 307 skipped (2790) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.85s sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > force mode > detaches stray container children before deleting the containers sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.783Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: force sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealTypeDelete.test.ts > mealTypeRepository.deleteMealType > force mode > deletes every referencing table then the meal type, in one transaction sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.784Z] [INFO] deleteMealType in mealType.ts: id: 1fd36e4f-138f-4d12-aa3d-afdf7f412685, mode: force sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimateMath.test.ts 32/32 sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/libraryDeletePreservesDiary.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 84 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2360 passed | 307 skipped (2790) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.85s sparkyfitness-server-1.7.3> ✓ tests/mealTypeDelete.test.ts (11 tests) 31ms sparkyfitness-server-1.7.3> ✓ tests/waterContainerRepository.test.ts (14 tests) 23ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 89 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2435 passed | 307 skipped (2825) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.97s sparkyfitness-server-1.7.3> stderr | tests/dashboardService.test.ts > getDashboardStats calorie arithmetic > falls back when the Health Connect total query fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.823Z] [WARN] Health Connect total-calorie dashboard fetch failed for user user1 on 2026-06-13: Error: temporary query failure sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/dashboardService.test.ts:202:25 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 89 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2435 passed | 307 skipped (2825) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.97s sparkyfitness-server-1.7.3> ✓ tests/dashboardService.test.ts (10 tests) 32ms sparkyfitness-server-1.7.3> ✓ tests/withingsTokenResponse.test.ts (11 tests) 19ms sparkyfitness-server-1.7.3> ✓ tests/foodPhotoEstimationRoute.test.ts (29 tests) 90ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/activitySport.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 23/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDelete.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRepository.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 89 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2435 passed | 307 skipped (2825) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 5.97s sparkyfitness-server-1.7.3> ✓ tests/measurementService.healthConnectSleepStages.test.ts (2 tests) 36ms sparkyfitness-server-1.7.3> ✓ tests/customNutrientCatalog.test.ts (15 tests) 15ms sparkyfitness-server-1.7.3> ✓ tests/nutrientGoalPreferenceService.test.ts (16 tests) 10ms sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > resolves with per-record outcomes when a poison record is in the batch sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.989Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: step=2, weight=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > routes neck/waist/hips body measurements to their check_in_measurements columns sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.993Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: waist=1, neck=1, hips=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > always includes errors and skipped arrays, even on full success sparkyfitness-server-1.7.3> [2026-09-30T11:46:13.994Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: step=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > converts legacy minute-based workout set durations to seconds (issue #1903) sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.008Z] [INFO] [processHealthData] Pre-cleanup: Deleting existing exercise entries for source 'HealthKit' from 2025-02-01 to 2025-02-01. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > converts legacy minute-based workout set durations to seconds (issue #1903) sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.009Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Workout=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > prefers duration_seconds over the legacy duration interpretation sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.011Z] [INFO] [processHealthData] Pre-cleanup: Deleting existing exercise entries for source 'HealthKit' from 2025-02-01 to 2025-02-01. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > prefers duration_seconds over the legacy duration interpretation sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.012Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Workout=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > passes seconds-based workout set durations through unchanged sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.012Z] [INFO] [processHealthData] Pre-cleanup: Deleting existing exercise entries for source 'HealthKit' from 2025-02-01 to 2025-02-01. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > passes seconds-based workout set durations through unchanged sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.013Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Workout=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 95 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2507 passed | 307 skipped (2920) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.07s sparkyfitness-server-1.7.3> stderr | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > reports Nutrition records without source_id in skipped, not errors sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.014Z] [WARN] [processHealthData] Skipping Nutrition record without source_id (cannot dedupe): 'Banana' sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 95 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2507 passed | 307 skipped (2920) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.07s sparkyfitness-server-1.7.3> stdout | tests/measurementService.healthDataContract.test.ts > processHealthData per-record error contract > reports Nutrition records without source_id in skipped, not errors sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.014Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: Nutrition=1, step=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/drinkPresetMaterialization.test.ts (8 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/measurementService.healthDataContract.test.ts (7 tests) 30ms sparkyfitness-server-1.7.3> ✓ tests/telemetryExtractors.laps.test.ts (23 tests) 13ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 95 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2507 passed | 307 skipped (2920) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.07s sparkyfitness-server-1.7.3> stderr | tests/fitImportService.test.ts > importFitFiles > rolls back the transaction when the detail write fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.050Z] [ERROR] [fitImportService] Failed to import FIT buffer "first.fit" for user user-1: Error: detail insert failed sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/fitImportService.test.ts:195:30 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientCatalog.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/dashboardService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodPhotoEstimationRoute.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthConnectSleepStages.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceService.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/withingsTokenResponse.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 95 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2507 passed | 307 skipped (2920) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.07s sparkyfitness-server-1.7.3> ✓ tests/garminHealthProcessor.wellness.test.ts (9 tests) 33ms sparkyfitness-server-1.7.3> ✓ tests/exerciseRoutes.write.test.ts (13 tests) 72ms sparkyfitness-server-1.7.3> ✓ tests/imageDownloader.test.ts (12 tests) 62ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 102 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2587 passed | 307 skipped (2982) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.18s sparkyfitness-server-1.7.3> stderr | tests/fitImportService.test.ts > importFitFiles > rolls back the entry when a telemetry write fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.054Z] [ERROR] [fitImportService] Failed to import FIT buffer "first.fit" for user user-1: Error: telemetry write failed sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/fitImportService.test.ts:222:29 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 102 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2587 passed | 307 skipped (2982) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.18s sparkyfitness-server-1.7.3> ✓ tests/exerciseCalorieRangeService.test.ts (10 tests) 9ms sparkyfitness-server-1.7.3> stdout | tests/foodNotes.test.ts > notes on foods, meals, and diary entries > food_entry_meals > clears the note when it is explicitly set to null sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.069Z] [INFO] updateFoodEntryMeal in foodEntryMealRepository: foodEntryMealId: 00540ac8-5ae0-4914-93de-09d3c15e7d7b, foodEntryMealData: {"notes":null}, updatedByUserId: 496ebe01-bbec-4390-ad9c-9aa6b559a51a sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/foodNotes.test.ts > notes on foods, meals, and diary entries > food_entry_meals > clears the note when it is explicitly set to null sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.069Z] [INFO] [DEBUG] Repo update params: quantity=undefined, unit=undefined sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/foodNotes.test.ts > notes on foods, meals, and diary entries > machine writers never touch a note > a provider re-sync does not overwrite an existing note sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.071Z] [INFO] createFoodEntry in foodEntry.js: entryData: {"user_id":"1dcfefe0-8118-4286-b239-4934616f6371","food_id":"eb5ee3ca-b868-4b4a-9877-f91c00821dc9","variant_id":"e963d409-4357-463c-a000-d81cab647d08","meal_type_id":"24a127d3-190f-4fba-afe5-c62e1b7ec123","entry_date":"2026-08-30","quantity":1,"source":"health_connect","source_id":"abc123","food_name":"Oats"}, createdByUserId: 9734ea0f-f775-4379-a290-ed1e12f3bc66 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/fitImportService.test.ts (7 tests) 36ms sparkyfitness-server-1.7.3> stdout | tests/foodNotes.test.ts > notes on foods, meals, and diary entries > updateFoodEntryMeal component safety > leaves components alone when the update supplies no foods sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.104Z] [INFO] updateFoodEntryMeal in foodEntryService: foodEntryMealId: fem-1, updatedMealData: {"notes":"just the note"}, authenticatedUserId: user-1, actingUserId: user-1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/foodNotes.test.ts > notes on foods, meals, and diary entries > updateFoodEntryMeal component safety > refuses a component-affecting update that omits foods sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.106Z] [INFO] updateFoodEntryMeal in foodEntryService: foodEntryMealId: fem-1, updatedMealData: {"entry_date":"2026-02-02"}, authenticatedUserId: user-1, actingUserId: user-1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 102 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2587 passed | 307 skipped (2982) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.18s sparkyfitness-server-1.7.3> stderr | tests/foodNotes.test.ts > notes on foods, meals, and diary entries > updateFoodEntryMeal component safety > refuses a component-affecting update that omits foods sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.106Z] [ERROR] Error updating food entry meal fem-1 for user user-1: Error: Updating entry_date on a logged meal also rebuilds its components, so 'foods' is required. sparkyfitness-server-1.7.3> at Object.updateFoodEntryMeal (/build/source/SparkyFitnessServer/services/foodEntryService.ts:2516:56) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/foodNotes.test.ts:252:26 sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> statusCode: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 102 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2587 passed | 307 skipped (2982) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.18s sparkyfitness-server-1.7.3> ✓ tests/foodNotes.test.ts (12 tests) 59ms sparkyfitness-server-1.7.3> ✓ tests/googlehealthRoutes.test.ts (18 tests) 66ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/drinkPresetMaterialization.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseCalorieRangeService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRoutes.write.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodNotes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminHealthProcessor.wellness.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googlehealthRoutes.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/imageDownloader.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.healthDataContract.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/telemetryExtractors.laps.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 102 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2587 passed | 307 skipped (2982) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.18s sparkyfitness-server-1.7.3> ✓ tests/liftosaurDataProcessor.test.ts (10 tests) 33ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsSyncSettingsService.test.ts (9 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/measurementImportRoutes.test.ts (12 tests) 53ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corsHelper.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 24/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 0/19 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurDataProcessor.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementImportRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsService.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.placeholders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 105 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2618 passed | 307 skipped (3026) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.40s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsCaffeineKinetics.test.ts (9 tests) 33ms sparkyfitness-server-1.7.3> stdout | tests/exercisePresetCascade.integration.test.ts > exercise delete preset and future plan cascade integration test > force delete (delete_with_history) removes exercise from presets, workout plans, and all diary entries sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.344Z] [INFO] Ending existing owner database connection pool... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/exercisePresetCascade.integration.test.ts > exercise delete preset and future plan cascade integration test > force delete (delete_with_history) removes exercise from presets, workout plans, and all diary entries sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.345Z] [INFO] Existing owner database connection pool ended. sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.345Z] [INFO] Ending existing app database connection pool... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/exercisePresetCascade.integration.test.ts > exercise delete preset and future plan cascade integration test > force delete (delete_with_history) removes exercise from presets, workout plans, and all diary entries sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.345Z] [INFO] Existing app database connection pool ended. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/exercisePresetCascade.integration.test.ts (2 tests | 2 skipped) 6ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaffeineKinetics.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corsHelper.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 25/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 1/19 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts 0/28 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/permissionUtils.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.placeholders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 107 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2629 passed | 309 skipped (3108) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.50s sparkyfitness-server-1.7.3> ✓ tests/oauthState.test.ts (28 tests) 22ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corsHelper.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 25/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 1/19 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts 28/28 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/permissionUtils.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.placeholders.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 110 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2689 passed | 309 skipped (3113) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.62s sparkyfitness-server-1.7.3> stderr | tests/measurementRoutes.test.ts > Measurement Routes - GET /api/measurements/water-intake-range/:startDate/:endDate > passes any other service error to the error handler sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.447Z] [ERROR] Error caught by centralized handler: boom Error: boom sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/measurementRoutes.test.ts:288:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corsHelper.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 25/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 1/19 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts 28/28 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/permissionUtils.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.placeholders.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 110 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2689 passed | 309 skipped (3113) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.62s sparkyfitness-server-1.7.3> ✓ tests/measurementRoutes.test.ts (17 tests) 67ms sparkyfitness-server-1.7.3> ✓ tests/foodRoutesV2.test.ts (14 tests) 66ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corsHelper.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 25/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisePresetCascade.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 1/19 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRoutes.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/oauthState.test.ts 28/28 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/permissionUtils.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.placeholders.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 110 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2689 passed | 309 skipped (3113) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.62s sparkyfitness-server-1.7.3> ✓ tests/sleepRepository.placeholders.test.ts (5 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/measurementRepository.test.ts (11 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/workoutPlanProgression.test.ts (8 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/corsHelper.test.ts (19 tests) 10ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corsHelper.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 2/19 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRoutesV2.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts 4/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/permissionUtils.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.placeholders.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanProgression.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 114 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2737 passed | 309 skipped (3151) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.72s sparkyfitness-server-1.7.3> ✓ tests/permissionUtils.test.ts (17 tests) 21ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsAutoSyncScheduler.test.ts (8 tests) 371ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corsHelper.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 2/19 sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts 0/22 sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/permissionUtils.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPlanProgression.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 116 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2759 passed | 309 skipped (3202) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.84s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsProfile.test.ts (12 tests) 17ms sparkyfitness-server-1.7.3> ✓ tests/guidedWorkoutCues.test.ts (22 tests) 14ms sparkyfitness-server-1.7.3> ✓ tests/foodEntrySelectedCopy.test.ts (8 tests) 13ms sparkyfitness-server-1.7.3> ✓ tests/contracts/nutrientColumnCoverage.test.ts (3 tests) 38ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProfile.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts 1/14 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncScheduler.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 120 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2805 passed | 309 skipped (3248) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 6.95s sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryService.watchTelemetry.test.ts (14 tests) 16ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 124 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2852 passed | 309 skipped (3257) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.06s sparkyfitness-server-1.7.3> stderr | tests/measurementRepository.bulkCheckInMeasurements.test.ts > measurementRepository.bulkUpsertCheckInMeasurements > filters unauthorized measurement keys and skips entries left empty sparkyfitness-server-1.7.3> Attempted to upsert unauthorized measurement key: malicious_column sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 124 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2852 passed | 309 skipped (3257) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.06s sparkyfitness-server-1.7.3> ✓ tests/measurementRepository.bulkCheckInMeasurements.test.ts (6 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsWaterContainers.test.ts (15 tests) 14ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 124 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2852 passed | 309 skipped (3257) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.06s sparkyfitness-server-1.7.3> stderr | tests/webLoginRoutes.test.ts > GET /web-login/callback > returns 400 when there is no active session sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.960Z] [ERROR] [WEB LOGIN] Callback: No active session found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/webLoginRoutes.test.ts > GET /web-login/callback > returns 500 when session lookup throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:14.963Z] [ERROR] [WEB LOGIN] Callback error: Error: boom sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 124 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2852 passed | 309 skipped (3257) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.06s sparkyfitness-server-1.7.3> ✓ tests/webLoginRoutes.test.ts (13 tests) 634ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/contracts/nutrientColumnCoverage.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.watchTelemetry.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopy.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/guidedWorkoutCues.test.ts 22/22 sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 124 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2852 passed | 309 skipped (3257) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.06s sparkyfitness-server-1.7.3> ✓ tests/visionToolsLogPhoto.test.ts (9 tests) 22ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/foodEntryLinkedWaterPropagation.test.ts > Food Entry Linked Water Propagation (#2115) > deleteFoodEntry - linked water row cleanup > leaves the linked water row alone when the food entry delete fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.082Z] [ERROR] Error deleting food entry food-entry-uuid-1 by user user-uuid-1 in foodService: Error: Food entry not found or not authorized to delete. sparkyfitness-server-1.7.3> at Object.deleteFoodEntry (/build/source/SparkyFitnessServer/services/foodEntryService.ts:1119:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/foodEntryLinkedWaterPropagation.test.ts:228:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> ✓ tests/foodEntryLinkedWaterPropagation.test.ts (3 tests) 18ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > getEmailTransportConfig > sets secure: false and requireTLS: true when port is 587 and SPARKY_FITNESS_EMAIL_SECURE is true to prevent SSL handshake error sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.094Z] [WARN] SPARKY_FITNESS_EMAIL_SECURE is set to true on port 587. Port 587 uses STARTTLS rather than implicit SSL/TLS; using secure=false and requireTLS=true. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > getEmailTransportConfig > sets secure: false and requireTLS: true when port is 25 and SPARKY_FITNESS_EMAIL_SECURE is true sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.096Z] [WARN] SPARKY_FITNESS_EMAIL_SECURE is set to true on port 25. Port 25 uses STARTTLS rather than implicit SSL/TLS; using secure=false and requireTLS=true. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > returns false and skips sending when transporter is unconfigured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.098Z] [INFO] Attempting to send password reset email to user@example.com with URL: https://example.com/reset sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ------------------------------------ sparkyfitness-server-1.7.3> PASSWORD RESET EMAIL (NOT SENT - EMAIL SERVICE NOT CONFIGURED) sparkyfitness-server-1.7.3> To: user@example.com sparkyfitness-server-1.7.3> Subject: SparkyFitness Password Reset sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> You have requested a password reset for your SparkyFitness account. sparkyfitness-server-1.7.3> Please click on the following link to reset your password: sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> https://example.com/reset sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> This link will expire in 1 hour. sparkyfitness-server-1.7.3> If you did not request a password reset, please ignore this email. sparkyfitness-server-1.7.3> ------------------------------------ sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > sending emails with mock transporter > returns false and skips sending when transporter is unconfigured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.099Z] [WARN] Email transporter is not fully configured (missing SMTP_HOST or SMTP_USER). Logging email content instead of sending. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > returns false and skips sending when transporter is unconfigured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.099Z] [INFO] Attempting to send email MFA code to user@example.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ------------------------------------ sparkyfitness-server-1.7.3> EMAIL MFA CODE (NOT SENT - EMAIL SERVICE NOT CONFIGURED) sparkyfitness-server-1.7.3> To: user@example.com sparkyfitness-server-1.7.3> Subject: Your SparkyFitness MFA Code sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Your Multi-Factor Authentication code is: sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> 123456 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> This code is valid for 5 minutes. sparkyfitness-server-1.7.3> ------------------------------------ sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > sending emails with mock transporter > returns false and skips sending when transporter is unconfigured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.099Z] [WARN] Email transporter is not fully configured (missing SMTP_HOST or SMTP_USER). Logging email content instead of sending. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > returns false and skips sending when transporter is unconfigured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.099Z] [INFO] Attempting to send magic link email to user@example.com with URL: https://example.com/magic sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ------------------------------------ sparkyfitness-server-1.7.3> MAGIC LINK EMAIL (NOT SENT - EMAIL SERVICE NOT CONFIGURED) sparkyfitness-server-1.7.3> To: user@example.com sparkyfitness-server-1.7.3> Subject: Your SparkyFitness Login Link sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> You have requested a passwordless login to your SparkyFitness account. sparkyfitness-server-1.7.3> Please click on the following link to log in: sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> https://example.com/magic sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> This link will expire in 15 minutes and can only be used once. sparkyfitness-server-1.7.3> If you did not request this, please ignore this email. sparkyfitness-server-1.7.3> ------------------------------------ sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > sending emails with mock transporter > returns false and skips sending when transporter is unconfigured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.099Z] [WARN] Email transporter is not fully configured (missing SMTP_HOST or SMTP_USER). Logging email content instead of sending. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > sends password reset email when transporter is configured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.101Z] [INFO] Attempting to send password reset email to user@example.com with URL: https://example.com/reset?token=xyz sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > sends password reset email when transporter is configured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.101Z] [INFO] Password reset email successfully sent to user@example.com. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > sends MFA code email when transporter is configured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.102Z] [INFO] Attempting to send email MFA code to user@example.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > sends MFA code email when transporter is configured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.103Z] [INFO] Email MFA code successfully sent to user@example.com. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > sends magic link email when transporter is configured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.103Z] [INFO] Attempting to send magic link email to user@example.com with URL: https://example.com/magic?token=abc sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > sends magic link email when transporter is configured sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.103Z] [INFO] Magic link email successfully sent to user@example.com. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > handles and throws errors when transporter sendMail fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.104Z] [INFO] Attempting to send password reset email to user@example.com with URL: https://example.com/reset sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > sending emails with mock transporter > handles and throws errors when transporter sendMail fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.104Z] [ERROR] Failed to send password reset email to user@example.com. Error details: Error: Connection timeout sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/emailService.test.ts:196:28 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > handles and throws errors when transporter sendMail fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.110Z] [INFO] Attempting to send email MFA code to user@example.com sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > sending emails with mock transporter > handles and throws errors when transporter sendMail fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.110Z] [ERROR] Failed to send email MFA code to user@example.com. Error details: Error: Connection timeout sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/emailService.test.ts:196:28 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stdout | tests/emailService.test.ts > emailService > sending emails with mock transporter > handles and throws errors when transporter sendMail fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.111Z] [INFO] Attempting to send magic link email to user@example.com with URL: https://example.com/magic sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> stderr | tests/emailService.test.ts > emailService > sending emails with mock transporter > handles and throws errors when transporter sendMail fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.111Z] [ERROR] Failed to send magic link email to user@example.com. Error details: Error: Connection timeout sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/emailService.test.ts:196:28 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> ✓ tests/foodRefreshFromSourceRoute.test.ts (10 tests) 61ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWaterContainers.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 3/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryLinkedWaterPropagation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCheckInMeasurements.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/visionToolsLogPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/webLoginRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 127 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2875 passed | 309 skipped (3291) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.17s sparkyfitness-server-1.7.3> ✓ tests/emailService.test.ts (12 tests) 21ms sparkyfitness-server-1.7.3> stdout | tests/healthDataRoutes.test.ts > Health Data Routes - POST /api/health-data > returns 200 with per-record outcomes when the service reports mixed results sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.110Z] [INFO] Incoming health data: 2 record(s), types: step sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthDataRoutes.test.ts > Health Data Routes - POST /api/health-data > wraps a single JSON object body into an array sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.115Z] [INFO] Incoming health data: 1 record(s), types: weight sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthDataRoutes.test.ts > Health Data Routes - POST /api/health-data > treats X-Workout-Model-Version >= 2 as the seconds-based set model sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.117Z] [INFO] Incoming health data: 1 record(s), types: Workout sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthDataRoutes.test.ts > Health Data Routes - POST /api/health-data > treats an absent X-Workout-Model-Version header as legacy minutes sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.119Z] [INFO] Incoming health data: 1 record(s), types: Workout sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 4/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 131 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2925 passed | 309 skipped (3320) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.39s sparkyfitness-server-1.7.3> stderr | tests/healthDataRoutes.test.ts > Health Data Routes - POST /api/health-data > returns 400 for a non-object body sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.121Z] [ERROR] Received unexpected body format: undefined sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 4/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 131 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2925 passed | 309 skipped (3320) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.39s sparkyfitness-server-1.7.3> stdout | tests/healthDataRoutes.test.ts > Health Data Routes - POST /api/health-data > returns 500 via the error handler when the service throws unexpectedly sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.127Z] [INFO] Incoming health data: 1 record(s), types: step sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 4/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 131 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2925 passed | 309 skipped (3320) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.39s sparkyfitness-server-1.7.3> stderr | tests/healthDataRoutes.test.ts > Health Data Routes - POST /api/health-data > returns 500 via the error handler when the service throws unexpectedly sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.130Z] [ERROR] Error caught by centralized handler: database unavailable Error: database unavailable sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/healthDataRoutes.test.ts:243:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 4/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 131 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2925 passed | 309 skipped (3320) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.39s sparkyfitness-server-1.7.3> ✓ tests/healthDataRoutes.test.ts (9 tests) 51ms sparkyfitness-server-1.7.3> ✓ tests/adaptiveCoaching.test.ts (18 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/liftosaurParser.test.ts (11 tests) 12ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/adaptiveCoaching.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailService.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 26/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 4/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodRefreshFromSourceRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthDataRoutes.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 131 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2925 passed | 309 skipped (3320) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.39s sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsAutoSyncService.test.ts (8 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntry.activityDetail.test.ts (5 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/garminChunkingAndStrengthFallback.test.ts (6 tests) 16ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 27/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.activityDetail.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 5/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurParser.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutoSyncService.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 134 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2946 passed | 309 skipped (3349) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.50s sparkyfitness-server-1.7.3> ✓ tests/workoutCoachingService.test.ts (10 tests) 15ms sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should promote user to admin if they have the admin group claim sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.451Z] [INFO] [AUTH] OIDC Sync: Promoting user user-1 to admin (Group: Admins) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should revoke admin role if user no longer has the admin group claim sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.454Z] [INFO] [AUTH] OIDC Sync: Revoking admin from user user-1 (Not in group: Admins) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should handle missing groups claim gracefully sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.456Z] [INFO] [AUTH] OIDC Sync: Revoking admin from user user-1 (Not in group: Admins) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should use the first account with an id_token (most recent due to ORDER BY) sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.456Z] [INFO] [AUTH] OIDC Sync: Promoting user user-1 to admin (Group: Admins) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should skip group sync if the token is expired sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.457Z] [INFO] [AUTH] OIDC Sync: Token expired for user user-1. Skipping group sync. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should fetch groups from UserInfo if id_token has no groups sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.458Z] [INFO] [AUTH] OIDC Sync: No groups in id_token. Fetching from UserInfo: https://issuer.com/userinfo sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should fetch groups from UserInfo if id_token has no groups sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.458Z] [INFO] [AUTH] OIDC Sync: Fetched 1 groups from UserInfo. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/oidcGroupSync.test.ts > oidcGroupSync > should fetch groups from UserInfo if id_token has no groups sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.458Z] [INFO] [AUTH] OIDC Sync: Promoting user user-1 to admin (Group: Admins) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/oidcGroupSync.test.ts (8 tests) 13ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 27/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 6/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminChunkingAndStrengthFallback.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/oidcGroupSync.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 136 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 2966 passed | 309 skipped (3387) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.60s sparkyfitness-server-1.7.3> ✓ tests/oidcEnvConfig.test.ts (9 tests) 16ms sparkyfitness-server-1.7.3> ✓ tests/swissFoodService.test.ts (8 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/exerciseService.searchExternal.test.ts (3 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/fitActivityTransform.test.ts (21 tests) 92ms sparkyfitness-server-1.7.3> stdout | tests/schemaParity.integration.test.ts > Database Schema ↔ Zod Parity sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.636Z] [INFO] Ending existing owner database connection pool... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/schemaParity.integration.test.ts > Database Schema ↔ Zod Parity sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.638Z] [INFO] Existing owner database connection pool ended. sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.638Z] [INFO] Ending existing app database connection pool... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/schemaParity.integration.test.ts > Database Schema ↔ Zod Parity sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.638Z] [INFO] Existing app database connection pool ended. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 6/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.searchExternal.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcEnvConfig.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swissFoodService.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 140 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3007 passed | 309 skipped (3407) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.72s sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > starts SSO on another instance after a provider address changes sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/schemaParity.integration.test.ts (2 tests) 12ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > starts SSO on another instance after a provider address changes sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.684Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/exerciseAlternativesService.test.ts (7 tests) 47ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitActivityTransform.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaParity.integration.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 142 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3017 passed | 309 skipped (3421) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 7.83s sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > starts SSO on another instance after a provider address changes sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > starts SSO on another instance after a provider address changes sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.850Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/intervalEngine.test.ts (7 tests) 11ms sparkyfitness-server-1.7.3> stdout | tests/liftosaurRoutes.test.ts > liftosaurRoutes > POST /integrations/liftosaur/sync > returns 200 with valid body parameters sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.870Z] [INFO] [liftosaurRoutes] Manual sync triggered for user 11111111-1111-1111-1111-111111111111 from 2024-06-01 to 2024-06-05 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/supplementSqlDedup.test.ts (8 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsAutomaticSyncRelease.test.ts (7 tests) 259ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > starts SSO on another instance after a provider address changes sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > starts SSO on another instance after a provider address changes sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.908Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38199' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/liftosaurRoutes.test.ts > liftosaurRoutes > POST /integrations/liftosaur/sync > returns 401 when service throws unauthorized error sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.892Z] [INFO] [liftosaurRoutes] Manual sync triggered for user 11111111-1111-1111-1111-111111111111 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 147 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3068 passed | 309 skipped (3486) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.04s sparkyfitness-server-1.7.3> stderr | tests/liftosaurRoutes.test.ts > liftosaurRoutes > POST /integrations/liftosaur/sync > returns 401 when service throws unauthorized error sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.893Z] [ERROR] Error initiating manual Liftosaur sync: Invalid API key sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 147 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3068 passed | 309 skipped (3486) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.04s sparkyfitness-server-1.7.3> stdout | tests/liftosaurRoutes.test.ts > liftosaurRoutes > POST /integrations/liftosaur/sync > returns 403 when service throws subscription_required error sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.895Z] [INFO] [liftosaurRoutes] Manual sync triggered for user 11111111-1111-1111-1111-111111111111 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 147 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3068 passed | 309 skipped (3486) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.04s sparkyfitness-server-1.7.3> stderr | tests/liftosaurRoutes.test.ts > liftosaurRoutes > POST /integrations/liftosaur/sync > returns 403 when service throws subscription_required error sparkyfitness-server-1.7.3> [2026-09-30T11:46:15.895Z] [ERROR] Error initiating manual Liftosaur sync: Subscription required sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 147 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3068 passed | 309 skipped (3486) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.04s sparkyfitness-server-1.7.3> ✓ tests/dateShifting.test.ts (16 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/liftosaurRoutes.test.ts (12 tests) 58ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateShifting.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/intervalEngine.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncRelease.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/supplementSqlDedup.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 147 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3068 passed | 309 skipped (3486) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.04s sparkyfitness-server-1.7.3> ✓ tests/glp1Logic.test.ts (18 tests) 56ms sparkyfitness-server-1.7.3> ✓ tests/allergenPreferenceRoutes.test.ts (11 tests) 54ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsExerciseStats.test.ts (7 tests) 13ms sparkyfitness-server-1.7.3> ✓ tests/goalPresetRoutes.test.ts (15 tests) 71ms sparkyfitness-server-1.7.3> ✓ tests/cyclePredictions.test.ts (14 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/exerciseAlternativesRanking.test.ts (14 tests) 15ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/allergenPreferenceRoutes.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkPermissionMiddleware.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 28/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 8/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/glp1Logic.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.remainderKey.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 153 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3147 passed | 309 skipped (3536) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.14s sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > shares one snapshot within a request and refreshes it for the next request sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > shares one snapshot within a request and refreshes it for the next request sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.123Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/waterEstimatedGoalAdjustment.test.ts (13 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/goalPresetService.test.ts (7 tests) 10ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsExerciseStats.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkPermissionMiddleware.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cyclePredictions.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRanking.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 29/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 9/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetRoutes.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.remainderKey.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/waterEstimatedGoalAdjustment.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 155 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3170 passed | 309 skipped (3610) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.24s sparkyfitness-server-1.7.3> ✓ tests/waterContainerRoutes.test.ts (15 tests) 61ms sparkyfitness-server-1.7.3> ✓ tests/foodSearch.test.ts (10 tests) 10ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > preserves application and mobile origins while ignoring invalid provider URLs sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/externalFoodSearchService.openFoodFacts.test.ts (7 tests) 8ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > preserves application and mobile origins while ignoring invalid provider URLs sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.246Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/sleepRepository.remainderKey.test.ts (1 test) 9ms sparkyfitness-server-1.7.3> ✓ tests/garminNutritionSync.integration.test.ts (7 tests) 1983ms sparkyfitness-server-1.7.3> ✓ processGarminNutritionData integration (7) sparkyfitness-server-1.7.3> ✓ creates entries with source=garmin and deterministic source_id 1978ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkPermissionMiddleware.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 29/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 9/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalFoodSearchService.openFoodFacts.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSearch.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalPresetService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts 1/15 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepPrimaryCluster.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/modelCapabilities.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepRepository.remainderKey.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerRoutes.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 160 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3212 passed | 309 skipped (3633) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.34s sparkyfitness-server-1.7.3> ✓ tests/labelScanRoute.test.ts (15 tests) 53ms sparkyfitness-server-1.7.3> ✓ tests/measurementRepository.bulkCustomMeasurements.test.ts (5 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsMealPlans.test.ts (11 tests) 10ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > does not read provider tables during auth construction sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/foodEntryMealRepository.test.ts (6 tests) 12ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > does not read provider tables during auth construction sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.373Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 3/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMealPlans.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkPermissionMiddleware.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 10/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.integration.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/labelScanRoute.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.bulkCustomMeasurements.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepPrimaryCluster.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/modelCapabilities.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 164 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3251 passed | 309 skipped (3663) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.45s sparkyfitness-server-1.7.3> ✓ tests/exerciseService.distanceDerivation.test.ts (8 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/measurementService.sleepPrimaryCluster.test.ts (9 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/freeExerciseDBSearch.test.ts (17 tests) 27ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > includes endpoint hosts that differ from the provider issuer sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/modelCapabilities.test.ts > supportsTemperature — learned gate > blocks a model after it has rejected temperature once sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.474Z] [INFO] [modelCapabilities] 'mystery-1' on 'openai_compatible' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/modelCapabilities.test.ts > supportsTemperature — learned gate > scopes the rejection to that service type and model sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'mystery-1' on 'openai_compatible' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/modelCapabilities.test.ts > supportsTemperature — learned gate > records multiple params for the same model sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'm' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/modelCapabilities.test.ts > supportsTemperature — learned gate > evicts the oldest entry past the cap instead of growing forever sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-0' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-1' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-2' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-3' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-4' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-5' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-6' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-7' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-8' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-9' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.475Z] [INFO] [modelCapabilities] 'model-10' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-11' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-12' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-13' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-14' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-15' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-16' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-17' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-18' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-19' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-20' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-21' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-22' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-23' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-24' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-25' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-26' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-27' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-28' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-29' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-30' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-31' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-32' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-33' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-34' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-35' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-36' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-37' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-38' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-39' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-40' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-41' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-42' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-43' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-44' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-45' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-46' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-47' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-48' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-49' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-50' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-51' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-52' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-53' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-54' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-55' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-56' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-57' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-58' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-59' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-60' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-61' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-62' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-63' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-64' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-65' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-66' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-67' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-68' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-69' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-70' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-71' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-72' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-73' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-74' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-75' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-76' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-77' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-78' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-79' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-80' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-81' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-82' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-83' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-84' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-85' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-86' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-87' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-88' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-89' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-90' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-91' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-92' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-93' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-94' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-95' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-96' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-97' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-98' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-99' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-100' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-101' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-102' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-103' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-104' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-105' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-106' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-107' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-108' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-109' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-110' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-111' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-112' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-113' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-114' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-115' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-116' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-117' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-118' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-119' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-120' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-121' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-122' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-123' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-124' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-125' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-126' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-127' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-128' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-129' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-130' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-131' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-132' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-133' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-134' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-135' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-136' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-137' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-138' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-139' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-140' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-141' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-142' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-143' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-144' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-145' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-146' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-147' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-148' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-149' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-150' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-151' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-152' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-153' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-154' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-155' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-156' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-157' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-158' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-159' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-160' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-161' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-162' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-163' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-164' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-165' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-166' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-167' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-168' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-169' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-170' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-171' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-172' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-173' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-174' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-175' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-176' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-177' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-178' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-179' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-180' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-181' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-182' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-183' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-184' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-185' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-186' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-187' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-188' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-189' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-190' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-191' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-192' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-193' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-194' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-195' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-196' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-197' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.476Z] [INFO] [modelCapabilities] 'model-198' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-199' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-200' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-201' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-202' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-203' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-204' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-205' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-206' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-207' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-208' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-209' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-210' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-211' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-212' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-213' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-214' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-215' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-216' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-217' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-218' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-219' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-220' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-221' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-222' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-223' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-224' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-225' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-226' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-227' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-228' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-229' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-230' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-231' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-232' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-233' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-234' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-235' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-236' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-237' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-238' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-239' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-240' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-241' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-242' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-243' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-244' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-245' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-246' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-247' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-248' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-249' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-250' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-251' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-252' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-253' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-254' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-255' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-256' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-257' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-258' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-259' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-260' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-261' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-262' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-263' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-264' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-265' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-266' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-267' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-268' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-269' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-270' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-271' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-272' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-273' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-274' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-275' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-276' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-277' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-278' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-279' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-280' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-281' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-282' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-283' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-284' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-285' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-286' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-287' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-288' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-289' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-290' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-291' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-292' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-293' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-294' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-295' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-296' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-297' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-298' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-299' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-300' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-301' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-302' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-303' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-304' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-305' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-306' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-307' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-308' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-309' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-310' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-311' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-312' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-313' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-314' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-315' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-316' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-317' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-318' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-319' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-320' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-321' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-322' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-323' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-324' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-325' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-326' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-327' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-328' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-329' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-330' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-331' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-332' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-333' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-334' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-335' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-336' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-337' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-338' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-339' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-340' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-341' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-342' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-343' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-344' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-345' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-346' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-347' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-348' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-349' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-350' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-351' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-352' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-353' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-354' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-355' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-356' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-357' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-358' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-359' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-360' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-361' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-362' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-363' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-364' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-365' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-366' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-367' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-368' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-369' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-370' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-371' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-372' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-373' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-374' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-375' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-376' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-377' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-378' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-379' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-380' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-381' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-382' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-383' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-384' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-385' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-386' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.477Z] [INFO] [modelCapabilities] 'model-387' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-388' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-389' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-390' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-391' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-392' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-393' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-394' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-395' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-396' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-397' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-398' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-399' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-400' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-401' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-402' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-403' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-404' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-405' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-406' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-407' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-408' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-409' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-410' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-411' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-412' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-413' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-414' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-415' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-416' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-417' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-418' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-419' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-420' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-421' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-422' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-423' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-424' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-425' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-426' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-427' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-428' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-429' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-430' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-431' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-432' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-433' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-434' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-435' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-436' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-437' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-438' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-439' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-440' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-441' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-442' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-443' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-444' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-445' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-446' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-447' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-448' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-449' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-450' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-451' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-452' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-453' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-454' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-455' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-456' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-457' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-458' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-459' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-460' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-461' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-462' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-463' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-464' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-465' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-466' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-467' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-468' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-469' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-470' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-471' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-472' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-473' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-474' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-475' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-476' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-477' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-478' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-479' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-480' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-481' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-482' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-483' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-484' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-485' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-486' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-487' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-488' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-489' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-490' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-491' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-492' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-493' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-494' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-495' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-496' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-497' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-498' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-499' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-500' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-501' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-502' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-503' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.478Z] [INFO] [modelCapabilities] 'model-504' on 'custom' rejected 'temperature'; omitting it from future requests. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/checkPermissionMiddleware.test.ts (9 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/modelCapabilities.test.ts (33 tests) 13ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > includes endpoint hosts that differ from the provider issuer sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.483Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 4/7 sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkPermissionMiddleware.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 11/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.distanceDerivation.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRepository.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/freeExerciseDBSearch.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.sleepPrimaryCluster.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/modelCapabilities.test.ts 33/33 sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts 0/12 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 169 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3335 passed | 309 skipped (3756) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.56s sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > does not allow an untrusted origin during or after a failed provider read sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 5/7 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 174 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3385 passed | 309 skipped (3821) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.86s sparkyfitness-server-1.7.3> stderr | tests/customNutrientMatching.test.ts > buildAliasIndex > keeps the first nutrient on a duplicate normalized alias sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.644Z] [WARN] Custom nutrient alias "mag" (normalized "mag") maps to both "Magnesium" and "Manganese"; keeping "Magnesium". sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 5/7 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 174 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3385 passed | 309 skipped (3821) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.86s sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > does not allow an untrusted origin during or after a failed provider read sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.645Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/customNutrientMatching.test.ts (12 tests) 11ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 5/7 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 174 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3385 passed | 309 skipped (3821) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.86s sparkyfitness-server-1.7.3> stderr | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > does not allow an untrusted origin during or after a failed provider read sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.654Z] [WARN] [AUTH] Rejecting Untrusted Origin: https://untrusted.example.test sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > does not allow an untrusted origin during or after a failed provider read sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.656Z] [WARN] [AUTH] Rejecting Untrusted Origin: https://untrusted.example.test sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 5/7 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 174 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3385 passed | 309 skipped (3821) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.86s sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryHistoryService.supersetGroup.test.ts (7 tests) 18ms sparkyfitness-server-1.7.3> ✓ tests/measurementRepository.customMetricTimestamp.test.ts (5 tests) 25ms sparkyfitness-server-1.7.3> ✓ tests/barcodeLookupRoute.test.ts (11 tests) 37ms sparkyfitness-server-1.7.3> ✓ tests/withingsOauthCallback.test.ts (12 tests) 51ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 5/7 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/barcodeLookupRoute.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientMatching.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryHistoryService.supersetGroup.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementRepository.customMetricTimestamp.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsOauthCallback.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 174 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3385 passed | 309 skipped (3821) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.86s sparkyfitness-server-1.7.3> ✓ tests/foodSchemas.test.ts (11 tests) 12ms sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > refuses a request when the provider read fails and recovers on a later request sparkyfitness-server-1.7.3> [AUTH] Synced trusted SSO providers for auto-linking: [ 'internal' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/authTrustedOrigins.test.ts > OIDC origins across server instances > refuses a request when the provider read fails and recovers on a later request sparkyfitness-server-1.7.3> [2026-09-30T11:46:16.751Z] [INFO] [AUTH] Synced trusted SSO provider origins: [ 'http://127.0.0.1:38198' ] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/authTrustedOrigins.test.ts (7 tests) 2859ms sparkyfitness-server-1.7.3> ✓ OIDC origins across server instances (7) sparkyfitness-server-1.7.3> ✓ starts SSO on another instance after a provider address changes 2074ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsAllergens.test.ts (11 tests) 11ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/appRolePasswordSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/authTrustedOrigins.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAllergens.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 1/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSchemas.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hrZoneCalculator.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 177 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3409 passed | 309 skipped (3821) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 8.96s sparkyfitness-server-1.7.3> ✓ tests/dailySummaryRoutes.range.test.ts (13 tests) 338ms sparkyfitness-server-1.7.3> ✓ GET /daily-summary/range validation (10) sparkyfitness-server-1.7.3> ✓ accepts a well-formed range 307ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/appRolePasswordSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bootOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hrZoneCalculator.test.ts 0/18 sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 181 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3446 passed | 309 skipped (3856) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.06s sparkyfitness-server-1.7.3> stderr | tests/appDbCredentials.test.ts > app database credentials are soft requirements > still refuses to start without a genuinely mandatory variable sparkyfitness-server-1.7.3> FATAL: Missing required environment variables! sparkyfitness-server-1.7.3> The server cannot start without the following settings: sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> SPARKY_FITNESS_API_ENCRYPTION_KEY: Must be persistent to decrypt database data. Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Update your .env file and restart the server. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/appDbCredentials.test.ts > app database credentials are soft requirements > refuses to start without BETTER_AUTH_SECRET rather than inventing one sparkyfitness-server-1.7.3> FATAL: Missing required environment variables! sparkyfitness-server-1.7.3> The server cannot start without the following settings: sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> BETTER_AUTH_SECRET: Signs session cookies and encrypts stored 2FA/TOTP secrets, so it must be persistent. A value that changes between restarts logs every user out and permanently locks out anyone with 2FA enabled. Generate with: openssl rand -base64 32 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Update your .env file and restart the server. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/appRolePasswordSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bootOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hrZoneCalculator.test.ts 0/18 sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 181 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3446 passed | 309 skipped (3856) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.06s sparkyfitness-server-1.7.3> ✓ tests/appDbCredentials.test.ts (8 tests) 128ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsCustomNutrients.test.ts (12 tests) 15ms sparkyfitness-server-1.7.3> ✓ tests/norishService.test.ts (5 tests) 8ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appDbCredentials.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/appRolePasswordSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bootOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dailySummaryRoutes.range.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hrZoneCalculator.test.ts 0/18 sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 181 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3446 passed | 309 skipped (3856) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.06s sparkyfitness-server-1.7.3> ✓ tests/hrZoneCalculator.test.ts (18 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/uploadsStaticMount.test.ts (11 tests) 64ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appRolePasswordSync.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bootOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCustomNutrients.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts 0/17 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 6/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 30/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hrZoneCalculator.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/norishService.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts 0/29 sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts 1/12 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 183 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3476 passed | 309 skipped (3936) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.17s sparkyfitness-server-1.7.3> ✓ tests/workoutPresetRoutes.validation.test.ts (12 tests) 19ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsEngagement.test.ts (17 tests) 31ms sparkyfitness-server-1.7.3> ✓ tests/oidcSettingsRoutes.test.ts (29 tests) 81ms sparkyfitness-server-1.7.3> ✓ tests/sleepScienceService.midnightBedtime.test.ts (5 tests) 33ms sparkyfitness-server-1.7.3> ✓ tests/bootOrder.test.ts (5 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/appRolePasswordSync.test.ts (6 tests) 46ms sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > initializes on the lock connection and unlocks before returning it sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.191Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > waits for the lock before starting schema work sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.194Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > stops and discards the connection when lock fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.195Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > stops and discards the connection when migrations fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.196Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > stops and discards the connection when policies fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.196Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > stops and discards the connection when unlock fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.197Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > discards the connection when unlock returns false sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.197Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/initializeDatabase.test.ts > database initialization > discards the connection when unlock returns no row sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.198Z] [INFO] Waiting for the database initialization lock... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appRolePasswordSync.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bootOrder.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsEngagement.test.ts 17/17 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 7/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 31/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 12/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/oidcSettingsRoutes.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.midnightBedtime.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/uploadsStaticMount.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRoutes.validation.test.ts 12/12 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 189 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3552 passed | 309 skipped (3972) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.27s sparkyfitness-server-1.7.3> ✓ tests/initializeDatabase.test.ts (9 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/waterIntakeFoodLinkSchema.test.ts (8 tests) 31ms sparkyfitness-server-1.7.3> ✓ tests/checkInPhotoService.test.ts (8 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/exerciseSearch.test.ts (6 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/mcpProtocolVersion.test.ts (12 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/stravaDataProcessor.test.ts (11 tests) 24ms sparkyfitness-server-1.7.3> ✓ tests/garminRoutes.test.ts (5 tests) 36ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/appRolePasswordSync.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts 0/16 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoService.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 8/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 31/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 13/19 sparkyfitness-server-1.7.3> ❯ tests/exerciseSearch.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/mcpProtocolVersion.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preflightPlaceholderSecrets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/stravaDataProcessor.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterIntakeFoodLinkSchema.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 196 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3612 passed | 309 skipped (4032) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.39s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsMedications.test.ts (16 tests) 19ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryRoutes.watchTelemetry.test.ts (9 tests) 63ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMedications.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 9/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 31/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.watchTelemetry.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 14/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminRoutes.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preflightPlaceholderSecrets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 198 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3639 passed | 309 skipped (4043) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.50s sparkyfitness-server-1.7.3> stderr | tests/onboardingRoutes.test.ts > Onboarding Routes > POST /onboarding > should return 500 when service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.475Z] [ERROR] Error caught by centralized handler: DB failure Error: DB failure sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/onboardingRoutes.test.ts:67:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/onboardingRoutes.test.ts > Onboarding Routes > GET /onboarding/status > should return 500 when service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.483Z] [ERROR] Error caught by centralized handler: DB failure Error: DB failure sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/onboardingRoutes.test.ts:129:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/onboardingRoutes.test.ts > Onboarding Routes > POST /onboarding/skip > should return 500 when service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.486Z] [ERROR] Error caught by centralized handler: DB failure Error: DB failure sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/onboardingRoutes.test.ts:156:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/onboardingRoutes.test.ts > Onboarding Routes > POST /onboarding/reset > should return 500 when service throws sparkyfitness-server-1.7.3> Error resetting onboarding status: Error: DB failure sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/onboardingRoutes.test.ts:182:9 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 10/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 31/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 14/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/preflightPlaceholderSecrets.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 200 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3666 passed | 309 skipped (4089) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.60s sparkyfitness-server-1.7.3> ✓ tests/onboardingRoutes.test.ts (11 tests) 45ms sparkyfitness-server-1.7.3> ✓ tests/preflightPlaceholderSecrets.test.ts (15 tests) 25ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 10/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 31/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 14/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/onboardingRoutes.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/preflightPlaceholderSecrets.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 200 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3666 passed | 309 skipped (4089) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.60s sparkyfitness-server-1.7.3> ✓ tests/emailLogin.test.ts (29 tests) 1360ms sparkyfitness-server-1.7.3> ✓ email login environment precedence (29) sparkyfitness-server-1.7.3> ✓ configures the backend for FORCE=false DISABLE=true 850ms sparkyfitness-server-1.7.3> ✓ tests/dashboardLayoutService.test.ts (11 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/polarOauthCallback.test.ts (7 tests) 53ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsProgressPhotos.test.ts (10 tests) 32ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutService.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/emailLogin.test.ts 29/29 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 31/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 15/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/preflightPlaceholderSecrets.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 204 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3737 passed | 309 skipped (4110) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.70s sparkyfitness-server-1.7.3> stderr | tests/authRateLimit.test.ts > /mfa-factors inline rate limiter sparkyfitness-server-1.7.3> 2026-09-30T11:46:17.683Z ERROR [Better Auth]: Could not validate the database schema. Check your database connection. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 1/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 15/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 207 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3759 passed | 309 skipped (4161) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.81s sparkyfitness-server-1.7.3> ✓ tests/reportRangeCols.test.ts (6 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/healthMetricSampleWriter.test.ts (4 tests) 23ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 1/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 15/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 207 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3759 passed | 309 skipped (4161) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.81s sparkyfitness-server-1.7.3> stderr | tests/checkInPhotoRoutes.test.ts > GET / (gallery) > returns 500 when the service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.734Z] [ERROR] Failed to fetch check-in photo gallery Error: DB error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/checkInPhotoRoutes.test.ts:126:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/checkInPhotoRoutes.test.ts > GET /dates > returns 500 when the service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.745Z] [ERROR] Failed to fetch check-in photo dates Error: DB error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/checkInPhotoRoutes.test.ts:160:57 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/checkInPhotoRoutes.test.ts > GET /:date > returns 500 when service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.754Z] [ERROR] Failed to fetch check-in photos Error: DB error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/checkInPhotoRoutes.test.ts:189:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/checkInPhotoRoutes.test.ts > GET /file/:id > returns 500 when the service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.766Z] [ERROR] Failed to serve check-in photo Error: boom sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/checkInPhotoRoutes.test.ts:236:60 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 1/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 15/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 207 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3759 passed | 309 skipped (4161) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.81s sparkyfitness-server-1.7.3> ✓ tests/demoPasswordResetGuard.test.ts (10 tests) 19ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 1/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 15/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 207 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3759 passed | 309 skipped (4161) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.81s sparkyfitness-server-1.7.3> stderr | tests/checkInPhotoRoutes.test.ts > POST /:date/:type > returns 500 when service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.778Z] [ERROR] Failed to save check-in photo Error: DB error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/checkInPhotoRoutes.test.ts:306:55 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/checkInPhotoRoutes.test.ts > DELETE /photo/:id > returns 500 when service throws sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.783Z] [ERROR] Failed to delete check-in photo Error: DB error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/checkInPhotoRoutes.test.ts:335:55 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsProgressPhotos.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 1/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 15/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthMetricSampleWriter.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/polarOauthCallback.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRangeCols.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 207 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3759 passed | 309 skipped (4161) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.81s sparkyfitness-server-1.7.3> ✓ tests/checkInPhotoRoutes.test.ts (24 tests) 87ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts 0/15 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 212 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3820 passed | 309 skipped (4231) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.91s sparkyfitness-server-1.7.3> stderr | tests/globalSettingsRoutes.test.ts > Global Settings Routes > GET /admin/global-settings > should handle repository errors sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.797Z] [ERROR] Error getting global auth settings: DB Error sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts 0/15 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 212 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3820 passed | 309 skipped (4231) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.91s sparkyfitness-server-1.7.3> stdout | tests/globalSettingsRoutes.test.ts > Global Settings Routes > PUT /admin/global-settings > should update and return global settings sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.805Z] [INFO] Global auth settings updated successfully. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts 0/15 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 212 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3820 passed | 309 skipped (4231) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.91s sparkyfitness-server-1.7.3> stderr | tests/globalSettingsRoutes.test.ts > Global Settings Routes > PUT /admin/global-settings > should handle repository errors during save sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.808Z] [ERROR] Error updating global auth settings: Update failed sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/globalSettingsRoutes.test.ts > Global Settings Routes > GET /admin/global-settings/allow-user-ai-config > should handle errors sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.812Z] [ERROR] Error checking user AI config permission: Check failed sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts 0/15 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 212 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3820 passed | 309 skipped (4231) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.91s sparkyfitness-server-1.7.3> ✓ tests/globalSettingsRoutes.test.ts (7 tests) 40ms sparkyfitness-server-1.7.3> ✓ tests/exercisesApiSchemas.test.ts (19 tests) 3577ms sparkyfitness-server-1.7.3> ✓ Exercises API schemas (16) sparkyfitness-server-1.7.3> ✓ exerciseWriteArrayFieldsSchema (6) sparkyfitness-server-1.7.3> ✓ rejects a genuinely wrong type (not a string/array formatting quirk) 562ms sparkyfitness-server-1.7.3> ✓ tests/foodEntryWholeCopyRepository.test.ts (7 tests) 11ms sparkyfitness-server-1.7.3> stdout | tests/backupRoutes.download.test.ts sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.828Z] [INFO] Ensured temporary upload directory exists: /build/source/SparkyFitnessServer/temp_uploads/ sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/unitConversion.test.ts (19 tests) 7ms sparkyfitness-server-1.7.3> stdout | tests/backupRoutes.download.test.ts > Backup routes - /download/:fileName > returns 404 when the requested backup file does not exist sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.863Z] [INFO] Download backup initiated by admin: sparkyfitness_full_backup_20990101.tar.gz sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/backupRoutes.download.test.ts > Backup routes - /download/:fileName > serves the requested backup file sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.872Z] [INFO] Download backup initiated by admin: sparkyfitness_full_backup_20260101.tar.gz sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/backupRoutes.download.test.ts > Backup routes - /download/:fileName > serves the requested backup file sparkyfitness-server-1.7.3> [2026-09-30T11:46:17.876Z] [INFO] Backup file downloaded: sparkyfitness_full_backup_20260101.tar.gz sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/checkInPhotoRoutes.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/demoPasswordResetGuard.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exercisesApiSchemas.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsRoutes.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/unitConversion.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts 0/15 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 212 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3820 passed | 309 skipped (4231) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 9.91s sparkyfitness-server-1.7.3> ✓ tests/alcoholWeekService.test.ts (5 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/mealServiceFromDiary.test.ts (5 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/backupRoutes.download.test.ts (7 tests) 43ms sparkyfitness-server-1.7.3> ✓ tests/workoutCoachingRoutes.test.ts (15 tests) 57ms sparkyfitness-server-1.7.3> ✓ tests/fastingRoutes.test.ts (6 tests) 35ms sparkyfitness-server-1.7.3> ✓ tests/fitImportRoutes.test.ts (6 tests) 72ms sparkyfitness-server-1.7.3> ✓ tests/foodEntryWholeCopy.test.ts (6 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/apiKeyRoutes.contextSwitch.test.ts (4 tests) 28ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholWeekService.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 7/19 sparkyfitness-server-1.7.3> ❯ tests/backupRoutes.download.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseModality.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fastingRoutes.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealServiceFromDiary.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/quickAddNeverPrimary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaConnections.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/signOutCookieCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutActivityMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutCoachingRoutes.test.ts 15/15 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 220 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3873 passed | 309 skipped (4255) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.02s sparkyfitness-server-1.7.3> ✓ tests/authRateLimit.test.ts (19 tests) 6290ms sparkyfitness-server-1.7.3> ✓ tests/caffeineDoseWindow.test.ts (6 tests) 28ms sparkyfitness-server-1.7.3> ✓ tests/nutrientGoalPreferenceRoutes.test.ts (8 tests) 40ms sparkyfitness-server-1.7.3> ✓ tests/progressionEngine.test.ts (8 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/garminNutritionSync.test.ts (11 tests) 6ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeyRoutes.contextSwitch.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/authRateLimit.test.ts 19/19 sparkyfitness-server-1.7.3> ❯ tests/caffeineDoseWindow.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleFertility.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 32/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseModality.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitImportRoutes.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopy.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/foodIntegrationService.fatsecret.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRoutes.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/progressionEngine.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pullWorkoutProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/quickAddNeverPrimary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaConnections.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/signOutCookieCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/toolResultTruncation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutActivityMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRepository.supersetGroup.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 225 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3918 passed | 309 skipped (4276) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.22s sparkyfitness-server-1.7.3> ✓ tests/garminActivityProcessor.transaction.test.ts (2 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/reportWodPrExclusion.test.ts (5 tests) 23ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bearerAuthBridge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts 1/12 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleFertility.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 33/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseModality.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodIntegrationService.fatsecret.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminActivityProcessor.transaction.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/garminNutritionSync.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsLanguage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pullWorkoutProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/quickAddNeverPrimary.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.customNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportWodPrExclusion.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/schemaConnections.test.ts 0/14 sparkyfitness-server-1.7.3> ❯ tests/signOutCookieCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/toolResultTruncation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutActivityMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRepository.supersetGroup.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 227 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3927 passed | 309 skipped (4307) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.32s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsSleepScience.test.ts (12 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/schemaConnections.test.ts (14 tests) 14ms sparkyfitness-server-1.7.3> ✓ tests/quickAddNeverPrimary.test.ts (6 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/polarActivityDedup.test.ts (3 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/workoutPresetRepository.supersetGroup.test.ts (4 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/alcoholUnits.test.ts (14 tests) 9ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/bearerAuthBridge.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSleepScience.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleFertility.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 33/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseModality.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodIntegrationService.fatsecret.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationEntryRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsLanguage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pullWorkoutProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/quickAddNeverPrimary.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/reportRepository.customNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/schemaConnections.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/signOutCookieCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/toolResultTruncation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutActivityMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRepository.supersetGroup.test.ts 4/4 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 233 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 3980 passed | 309 skipped (4343) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.43s sparkyfitness-server-1.7.3> ✓ tests/ouraRoutes.test.ts (9 tests) 50ms sparkyfitness-server-1.7.3> ✓ tests/bearerAuthBridge.test.ts (6 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/foodIntegrationService.fatsecret.test.ts (4 tests) 14ms sparkyfitness-server-1.7.3> ✓ tests/exerciseRepository.arrayFieldNormalization.test.ts (5 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryActiveCaloriesNotes.test.ts (5 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/alcoholUnits.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/bearerAuthBridge.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleFertility.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseModality.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodIntegrationService.fatsecret.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationEntryRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsLanguage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraRoutes.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 23/24 sparkyfitness-server-1.7.3> ❯ tests/polarActivityDedup.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pullWorkoutProgression.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.customNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/signOutCookieCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/toolResultTruncation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutActivityMapping.test.ts 0/60 sparkyfitness-server-1.7.3> ❯ tests/workoutPresetRepository.supersetGroup.test.ts 4/4 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 238 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4010 passed | 309 skipped (4436) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.54s sparkyfitness-server-1.7.3> ✓ tests/goalServiceAdaptiveMaturity.test.ts (5 tests) 21ms sparkyfitness-server-1.7.3> ✓ tests/exerciseAlternativesRoutes.test.ts (8 tests) 43ms sparkyfitness-server-1.7.3> ✓ tests/workoutActivityMapping.test.ts (60 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/exerciseModality.test.ts (11 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/pullWorkoutProgression.test.ts (4 tests) 4ms sparkyfitness-server-1.7.3> ✓ tests/outboundUrlPolicy.test.ts (24 tests) 1039ms sparkyfitness-server-1.7.3> ✓ outboundUrlPolicy (24) sparkyfitness-server-1.7.3> ✓ closes a stalled TLS connection with the bounded connector timeout 1025ms sparkyfitness-server-1.7.3> ✓ tests/toolResultTruncation.test.ts (9 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/cycleFertility.test.ts (7 tests) 13ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bearerAuthBridge.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleFertility.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseAlternativesRoutes.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryActiveCaloriesNotes.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseModality.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/exerciseRepository.arrayFieldNormalization.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodIntegrationService.fatsecret.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalServiceAdaptiveMaturity.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationEntryRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsLanguage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/outboundUrlPolicy.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pullWorkoutProgression.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/reportRepository.customNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/signOutCookieCleanup.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/toolResultTruncation.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutActivityMapping.test.ts 60/60 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 246 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4114 passed | 309 skipped (4480) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.64s sparkyfitness-server-1.7.3> ✓ tests/swagger.test.ts (4 tests) 16ms sparkyfitness-server-1.7.3> ✓ tests/signOutCookieCleanup.test.ts (7 tests) 29ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsContributionRoutes.test.ts (6 tests) 47ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleFertility.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationEntryRepository.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsContributionRoutes.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsLanguage.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.customNutrients.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/signOutCookieCleanup.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/swagger.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/toolResultTruncation.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 249 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4131 passed | 309 skipped (4487) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.74s sparkyfitness-server-1.7.3> ✓ tests/medicationEntryRepository.test.ts (3 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/reportRepository.customNutrients.test.ts (3 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsLanguage.test.ts (7 tests) 8ms sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > createMealPlanTemplate should create active template without deactivating other plans sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.776Z] [INFO] createMealPlanTemplate service - received planData: { plan_name: 'Base Plan', is_active: true } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > createMealPlanTemplate should create active template without deactivating other plans sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.778Z] [INFO] createMealPlanTemplate service - newPlan created: { id: 'plan-1', plan_name: 'Base Plan', is_active: true } sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.778Z] [INFO] createMealPlanTemplate service - New plan is active, creating food entries from template plan-1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > updateMealPlanTemplate should update template without deactivating other plans sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.780Z] [INFO] updateMealPlanTemplate service - received planData for plan plan-2: { plan_name: 'Cutting Plan', is_active: true } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > updateMealPlanTemplate should update template without deactivating other plans sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.780Z] [INFO] updateMealPlanTemplate service - Deleting old food entries for template plan-2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > updateMealPlanTemplate should update template without deactivating other plans sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.780Z] [INFO] updateMealPlanTemplate service - updatedPlan: { id: 'plan-2', plan_name: 'Cutting Plan', is_active: true } sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.780Z] [INFO] updateMealPlanTemplate service - Updated plan is active, creating food entries from template plan-2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > duplicateMealPlanTemplate should clone original plan with (Copy) name and inactive state sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.780Z] [INFO] duplicateMealPlanTemplate service - duplicating template plan-orig for user user-123 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > duplicateMealPlanTemplate should clone original plan with (Copy) name and inactive state sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.781Z] [INFO] createMealPlanTemplate service - received planData: { sparkyfitness-server-1.7.3> plan_name: 'Keto Plan (Copy)', sparkyfitness-server-1.7.3> description: 'Low carb plan', sparkyfitness-server-1.7.3> start_date: 2026-09-30T11:46:18.781Z, sparkyfitness-server-1.7.3> end_date: null, sparkyfitness-server-1.7.3> is_active: false, sparkyfitness-server-1.7.3> assignments: [ sparkyfitness-server-1.7.3> { sparkyfitness-server-1.7.3> day_of_week: 1, sparkyfitness-server-1.7.3> meal_type_id: 'mt-1', sparkyfitness-server-1.7.3> item_type: 'food', sparkyfitness-server-1.7.3> food_id: 'f-1', sparkyfitness-server-1.7.3> quantity: 2 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> ], sparkyfitness-server-1.7.3> currentClientDate: undefined sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealPlanTemplateService.test.ts > mealPlanTemplateService > duplicateMealPlanTemplate should clone original plan with (Copy) name and inactive state sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.781Z] [INFO] createMealPlanTemplate service - newPlan created: { id: 'plan-copy', plan_name: 'Keto Plan (Copy)', is_active: false } sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.781Z] [INFO] createMealPlanTemplate service - New plan is not active, skipping food entry creation. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/mealPlanTemplateService.test.ts (3 tests) 8ms sparkyfitness-server-1.7.3> stdout | tests/outboundProxy.test.ts sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.809Z] [INFO] Outbound proxy enabled via http://127.0.0.1:41083 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationEntryRepository.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsLanguage.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/reportRepository.customNutrients.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 253 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4147 passed | 309 skipped (4542) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.85s sparkyfitness-server-1.7.3> ✓ tests/providerSyncScheduler.test.ts (7 tests) 10ms sparkyfitness-server-1.7.3> stdout | tests/secretLoader.test.ts > secretLoader > loads secrets from *_FILE variables when target variable is unset sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_DB_PASSWORD from file defined in SPARKY_FITNESS_DB_PASSWORD_FILE sparkyfitness-server-1.7.3> [Secrets] Successfully loaded 1 secrets from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stderr | tests/secretLoader.test.ts > secretLoader > loads secrets from *_FILE variables when target variable is unset sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in NIX_SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stdout | tests/secretLoader.test.ts > secretLoader > loads secrets when target variable is an empty string sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_APP_DB_PASSWORD from file defined in SPARKY_FITNESS_APP_DB_PASSWORD_FILE sparkyfitness-server-1.7.3> [Secrets] Successfully loaded 1 secrets from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stderr | tests/secretLoader.test.ts > secretLoader > loads secrets when target variable is an empty string sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in NIX_SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stdout | tests/secretLoader.test.ts > secretLoader > loads secrets when target variable contains only whitespace sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_EMAIL_PASS from file defined in SPARKY_FITNESS_EMAIL_PASS_FILE sparkyfitness-server-1.7.3> [Secrets] Successfully loaded 1 secrets from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stderr | tests/secretLoader.test.ts > secretLoader > loads secrets when target variable contains only whitespace sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in NIX_SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stdout | tests/secretLoader.test.ts > secretLoader > preserves existing non-empty environment variable when both VAR and VAR_FILE are set sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] No secrets loaded from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stderr | tests/secretLoader.test.ts > secretLoader > preserves existing non-empty environment variable when both VAR and VAR_FILE are set sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in NIX_SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stdout | tests/secretLoader.test.ts > secretLoader > handles multiple sensitive secret files simultaneously sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_DB_PASSWORD from file defined in SPARKY_FITNESS_DB_PASSWORD_FILE sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_APP_DB_PASSWORD from file defined in SPARKY_FITNESS_APP_DB_PASSWORD_FILE sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_EMAIL_PASS from file defined in SPARKY_FITNESS_EMAIL_PASS_FILE sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_OIDC_CLIENT_ID from file defined in SPARKY_FITNESS_OIDC_CLIENT_ID_FILE sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_OIDC_CLIENT_SECRET from file defined in SPARKY_FITNESS_OIDC_CLIENT_SECRET_FILE sparkyfitness-server-1.7.3> [Secrets] Loaded secret for BETTER_AUTH_SECRET from file defined in BETTER_AUTH_SECRET_FILE sparkyfitness-server-1.7.3> [Secrets] Loaded secret for SPARKY_FITNESS_API_ENCRYPTION_KEY from file defined in SPARKY_FITNESS_API_ENCRYPTION_KEY_FILE sparkyfitness-server-1.7.3> [Secrets] Successfully loaded 7 secrets from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stderr | tests/secretLoader.test.ts > secretLoader > handles multiple sensitive secret files simultaneously sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in NIX_SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stdout | tests/secretLoader.test.ts > secretLoader > logs a warning without throwing if secret file does not exist sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] No secrets loaded from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/secretLoader.test.ts > secretLoader > ignores *_FILE variables with empty file paths sparkyfitness-server-1.7.3> [Secrets] Checking for secret files to load... sparkyfitness-server-1.7.3> [Secrets] No secrets loaded from files. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> stderr | tests/secretLoader.test.ts > secretLoader > ignores *_FILE variables with empty file paths sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> [Secrets] WARNING: File specified in NIX_SSL_CERT_FILE (/no-cert-file.crt) not found. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> ✓ tests/secretLoader.test.ts (7 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/outboundProxy.test.ts (5 tests) 62ms sparkyfitness-server-1.7.3> ✓ tests/imageLocalizer.test.ts (11 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/foodOptionsRoute.test.ts (10 tests) 43ms sparkyfitness-server-1.7.3> ✓ tests/cycleRoutes.test.ts (13 tests) 67ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 34/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageLocalizer.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealPlanTemplateService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/outboundProxy.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/providerSyncScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/secretLoader.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 0/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 259 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4200 passed | 309 skipped (4569) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 10.96s sparkyfitness-server-1.7.3> ✓ tests/garminService.workoutSets.test.ts (1 test) 7ms sparkyfitness-server-1.7.3> ✓ tests/mockDataOptions.test.ts (9 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/waterContainerFoodLink.test.ts (7 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/corosMcpText.test.ts (6 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/foodDerivedWaterQuery.test.ts (6 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsDashboard.test.ts (6 tests) 22ms sparkyfitness-server-1.7.3> stdout | tests/measurementService.smartScaleComposition.test.ts > smart-scale composition routes to check_in_measurements > writes Garmin column-named types into their check-in columns sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.996Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: muscle_mass_kg=1, bone_mass_kg=1, body_water_percentage=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.smartScaleComposition.test.ts > smart-scale composition routes to check_in_measurements > maps Health Connect bone mass spellings onto bone_mass_kg sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.998Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: BoneMass=1, bone_mass=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.smartScaleComposition.test.ts > smart-scale composition routes to check_in_measurements > keeps lean body mass as a custom measurement sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.999Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: lean_body_mass=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/measurementService.smartScaleComposition.test.ts > smart-scale composition routes to check_in_measurements > rejects an out-of-range body water percentage instead of storing it sparkyfitness-server-1.7.3> [2026-09-30T11:46:18.999Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: body_water_percentage=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/measurementService.smartScaleComposition.test.ts (4 tests) 8ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsDashboard.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosMcpText.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleCorrelations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts 0/11 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 35/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDerivedWaterQuery.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsRoute.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutSets.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/mockDataOptions.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterContainerFoodLink.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 266 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4240 passed | 309 skipped (4603) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.06s sparkyfitness-server-1.7.3> ✓ tests/entryTime.test.ts (11 tests) 24ms sparkyfitness-server-1.7.3> ✓ tests/backgroundJobScheduler.test.ts (7 tests) 9ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts 1/4 sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleCorrelations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/entryTime.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 35/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.smartScaleComposition.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 268 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4259 passed | 309 skipped (4614) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.28s sparkyfitness-server-1.7.3> ✓ tests/authMiddleware.cache.test.ts (4 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/hydrationNutritionRange.test.ts (4 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/favoritesService.test.ts (7 tests) 10ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authMiddleware.cache.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/backgroundJobScheduler.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleCorrelations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 35/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts 0/18 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts 0/10 sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 271 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4273 passed | 309 skipped (4658) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.39s sparkyfitness-server-1.7.3> ✓ tests/syncedDataRoutes.test.ts (10 tests) 48ms sparkyfitness-server-1.7.3> ✓ tests/nutrientDisplayPreferenceService.test.ts (5 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/exerciseMuscleAggregates.test.ts (10 tests) 6ms sparkyfitness-server-1.7.3> stdout | tests/healthResyncTelemetryPreservation.test.ts > processHealthData pre-cleanup > holds back the re-sent workout so its stored telemetry is not cascaded away (#2300) sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.338Z] [INFO] [processHealthData] Pre-cleanup: Deleting existing exercise entries for source 'HealthKit' from 2026-08-04 to 2026-08-04, keeping 1 re-sent record(s) for in-place update. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthResyncTelemetryPreservation.test.ts > processHealthData pre-cleanup > holds back the re-sent workout so its stored telemetry is not cascaded away (#2300) sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.341Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: ExerciseSession=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthResyncTelemetryPreservation.test.ts > processHealthData pre-cleanup > still deletes everything else in the span, so an upstream deletion propagates sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.343Z] [INFO] [processHealthData] Pre-cleanup: Deleting existing exercise entries for source 'HealthKit' from 2026-08-04 to 2026-08-04, keeping 2 re-sent record(s) for in-place update. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthResyncTelemetryPreservation.test.ts > processHealthData pre-cleanup > still deletes everything else in the span, so an upstream deletion propagates sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.344Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: ExerciseSession=2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthResyncTelemetryPreservation.test.ts > processHealthData pre-cleanup > keeps the unconditional span delete for records with no source_id sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.345Z] [INFO] [processHealthData] Pre-cleanup: Deleting existing exercise entries for source 'HealthKit' from 2026-08-04 to 2026-08-04. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/healthResyncTelemetryPreservation.test.ts > processHealthData pre-cleanup > keeps the unconditional span delete for records with no source_id sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.345Z] [INFO] [processHealthData] Timezone fallback to account tz (UTC) by type: ExerciseSession=1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/foodEntryService.snapshot.test.ts (3 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/healthResyncTelemetryPreservation.test.ts (3 tests) 29ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleCorrelations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 35/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesService.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/hydrationNutritionRange.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts 1/18 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientDisplayPreferenceService.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/syncedDataRoutes.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 276 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4306 passed | 309 skipped (4680) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.49s sparkyfitness-server-1.7.3> ✓ tests/integrationRoutesPermissionGating.test.ts (18 tests) 80ms sparkyfitness-server-1.7.3> ✓ tests/cycleTtcRoutes.test.ts (6 tests) 73ms sparkyfitness-server-1.7.3> ✓ tests/gestation.test.ts (14 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsSyncedData.test.ts (6 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/cycleCorrelations.test.ts (8 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/exerciseSourceScoping.test.ts (5 tests) 9ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleCorrelations.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 36/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts 1/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 282 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4364 passed | 309 skipped (4725) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.59s sparkyfitness-server-1.7.3> stderr | tests/foodEntrySelectedCopyRoute.test.ts > POST /copy-selected-from-user > preserves a service conflict response through the error handler sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.522Z] [ERROR] Error caught by centralized handler: One or more source entries changed. Refresh the family diary. Error: One or more source entries changed. Refresh the family diary. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/foodEntrySelectedCopyRoute.test.ts:113:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsSyncedData.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleCorrelations.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/cycleTtcRoutes.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 36/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseMuscleAggregates.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts 1/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryService.snapshot.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/gestation.test.ts 14/14 sparkyfitness-server-1.7.3> ❯ tests/healthResyncTelemetryPreservation.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/integrationRoutesPermissionGating.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 282 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4364 passed | 309 skipped (4725) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.59s sparkyfitness-server-1.7.3> ✓ tests/foodEntrySelectedCopyRoute.test.ts (4 tests) 37ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts 0/31 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts 0/1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 288 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4397 passed | 309 skipped (4782) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.69s sparkyfitness-server-1.7.3> stderr | tests/foodEntryWholeCopyRoute.test.ts > POST /copy-reviewed-from-user > preserves a stale reviewed snapshot conflict through the error handler sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.570Z] [ERROR] Error caught by centralized handler: One or more source entries changed. Refresh the family diary. Error: One or more source entries changed. Refresh the family diary. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/foodEntryWholeCopyRoute.test.ts:118:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts 0/31 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts 0/1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 288 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4397 passed | 309 skipped (4782) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.69s sparkyfitness-server-1.7.3> ✓ tests/foodEntryWholeCopyRoute.test.ts (4 tests) 43ms sparkyfitness-server-1.7.3> ✓ tests/waterGoalExclusivity.test.ts (4 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/pregnancyPhotoService.test.ts (10 tests) 12ms sparkyfitness-server-1.7.3> ✓ tests/sleepScienceService.recordZone.test.ts (5 tests) 22ms sparkyfitness-server-1.7.3> ✓ tests/calorieCalculationService.test.ts (6 tests) 5ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts 0/31 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts 0/1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 288 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4397 passed | 309 skipped (4782) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.69s sparkyfitness-server-1.7.3> stderr | tests/hydrationTotalsService.test.ts > hydrationTotalsService.resolveWaterTotalsForDate > degrades to 0 food_ml when the food-derived water query fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.651Z] [WARN] Food-derived water fetch failed for user user-1 on 2026-09-05, defaulting to 0: Error: DB error sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/hydrationTotalsService.test.ts:85:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseSourceScoping.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopyRoute.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts 0/31 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyPhotoService.test.ts 10/10 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/sleepScienceService.recordZone.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/waterGoalExclusivity.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts 0/1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 288 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4397 passed | 309 skipped (4782) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.69s sparkyfitness-server-1.7.3> ✓ tests/measurementSchemas.checkIn.test.ts (31 tests) 13ms sparkyfitness-server-1.7.3> ✓ tests/zeroHydrationFactorPreset.test.ts (1 test) 19ms sparkyfitness-server-1.7.3> ✓ tests/hydrationTotalsService.test.ts (4 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/garminService.workoutDefinitionWeights.test.ts (3 tests) 6ms sparkyfitness-server-1.7.3> stdout | tests/liftosaurSync.test.ts > liftosaurSync > coordinates synchronization for workouts and measurements with detailed counts sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.728Z] [INFO] Starting Liftosaur INCREMENTAL synchronization for user user-1... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/liftosaurSync.test.ts > liftosaurSync > coordinates synchronization for workouts and measurements with detailed counts sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.731Z] [INFO] [liftosaurService] Imported 3 measurement records for user user-1. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/liftosaurSync.test.ts > liftosaurSync > coordinates synchronization for workouts and measurements with detailed counts sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.731Z] [INFO] Liftosaur synchronization completed for user user-1. Total imported: 4 (1 workouts, 3 measurements) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/liftosaurSync.test.ts > liftosaurSync > stops paginating when a full sync reports more pages without advancing the cursor sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.733Z] [INFO] Starting Liftosaur FULL synchronization for user user-1... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts 31/31 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts 1/1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 294 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4442 passed | 309 skipped (4797) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.81s sparkyfitness-server-1.7.3> stderr | tests/liftosaurSync.test.ts > liftosaurSync > stops paginating when a full sync reports more pages without advancing the cursor sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.734Z] [WARN] [liftosaurService] Liftosaur reported more history for user user-1 without advancing the cursor; stopping pagination. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts 31/31 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts 1/1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 294 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4442 passed | 309 skipped (4797) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.81s sparkyfitness-server-1.7.3> stdout | tests/liftosaurSync.test.ts > liftosaurSync > stops paginating when a full sync reports more pages without advancing the cursor sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.734Z] [INFO] [liftosaurService] Imported 3 measurement records for user user-1. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/liftosaurSync.test.ts > liftosaurSync > stops paginating when a full sync reports more pages without advancing the cursor sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.734Z] [INFO] Liftosaur synchronization completed for user user-1. Total imported: 5 (2 workouts, 3 measurements) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/liftosaurSync.test.ts (2 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/fitbitDataProcessor.test.ts (3 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculationService.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminService.workoutDefinitionWeights.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/hydrationTotalsService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementSchemas.checkIn.test.ts 31/31 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/zeroHydrationFactorPreset.test.ts 1/1 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 294 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4442 passed | 309 skipped (4797) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.81s sparkyfitness-server-1.7.3> ✓ tests/withingsDataProcessor.test.ts (2 tests) 19ms sparkyfitness-server-1.7.3> ✓ tests/externalProviderRoutes.actorContext.test.ts (5 tests) 29ms sparkyfitness-server-1.7.3> stdout | tests/betterAuthSchemaCheck.integration.test.ts > Better Auth schema check sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.867Z] [INFO] Ending existing owner database connection pool... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/betterAuthSchemaCheck.integration.test.ts > Better Auth schema check sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.868Z] [INFO] Existing owner database connection pool ended. sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.868Z] [INFO] Ending existing app database connection pool... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/betterAuthSchemaCheck.integration.test.ts > Better Auth schema check sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.868Z] [INFO] Existing app database connection pool ended. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/betterAuthSchemaCheck.integration.test.ts (1 test) 6ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRoutes.actorContext.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/fitbitDataProcessor.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts 0/13 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/withingsDataProcessor.test.ts 2/2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 297 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4449 passed | 309 skipped (4839) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 11.93s sparkyfitness-server-1.7.3> ✓ tests/pregnancyRoutes.test.ts (13 tests) 65ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts 0/23 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 303 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4493 passed | 309 skipped (4936) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.03s sparkyfitness-server-1.7.3> stderr | tests/mealTypeRoutes.delete.test.ts > DELETE /meal-types/:id > maps an in-use meal type to 409 sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.896Z] [ERROR] Route DELETE /meal-types/11111111-1111-4111-8111-111111111111 error: Error: Cannot delete this meal type because it is still in use. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealTypeRoutes.delete.test.ts:119:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealTypeRoutes.delete.test.ts > DELETE /meal-types/:id > maps a system default meal type to 403 sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.900Z] [ERROR] Route DELETE /meal-types/11111111-1111-4111-8111-111111111111 error: Error: Cannot delete system default meal types. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealTypeRoutes.delete.test.ts:130:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/mealTypeRoutes.delete.test.ts > DELETE /meal-types/:id > maps an invalid reassign target to 400 sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.901Z] [ERROR] Route DELETE /meal-types/11111111-1111-4111-8111-111111111111 error: Error: Invalid reassignment target meal type. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealTypeRoutes.delete.test.ts:140:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts 0/23 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 303 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4493 passed | 309 skipped (4936) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.03s sparkyfitness-server-1.7.3> ✓ tests/corosService.test.ts (4 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsIntegrations.test.ts (4 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/syncedDataRepository.test.ts (7 tests) 10ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts 0/23 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 303 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4493 passed | 309 skipped (4936) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.03s sparkyfitness-server-1.7.3> stderr | tests/mealTypeRoutes.delete.test.ts > DELETE /meal-types/:id > does not leak unexpected errors sparkyfitness-server-1.7.3> [2026-09-30T11:46:19.905Z] [ERROR] Route DELETE /meal-types/11111111-1111-4111-8111-111111111111 error: Error: connection reset sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/mealTypeRoutes.delete.test.ts:162:49 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts 0/23 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 303 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4493 passed | 309 skipped (4936) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.03s sparkyfitness-server-1.7.3> ✓ tests/externalProviderService.openFoodFactsConsent.test.ts (3 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/mealTypeRoutes.delete.test.ts (13 tests) 45ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 0/27 sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/betterAuthSchemaCheck.integration.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIntegrations.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 0/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 0/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts 0/23 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/pregnancyRoutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/syncedDataRepository.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 303 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4493 passed | 309 skipped (4936) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.03s sparkyfitness-server-1.7.3> ✓ tests/foodOptionsService.test.ts (23 tests) 20ms sparkyfitness-server-1.7.3> ✓ tests/apiKeySessionCache.test.ts (8 tests) 18ms sparkyfitness-server-1.7.3> ✓ tests/weightRamp.test.ts (11 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/chatServiceClassifier.test.ts (21 tests) 35ms sparkyfitness-server-1.7.3> ✓ tests/chatProviderOptions.test.ts (15 tests) 47ms sparkyfitness-server-1.7.3> ✓ tests/aiServiceConnectionTest.test.ts (27 tests) 64ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsProductReadRateLimitService.test.ts (3 tests) 65ms sparkyfitness-server-1.7.3> stdout | tests/updateEmailRoute.test.ts sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.095Z] [INFO] UserProfileRoutes UPLOADS_DIR: /build/source/SparkyFitnessServer/uploads/avatars sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/apiKeySessionCache.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 0/60 sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderService.openFoodFactsConsent.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodOptionsService.test.ts 23/23 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeRoutes.delete.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts 1/4 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts 11/11 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 310 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4602 passed | 309 skipped (5050) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.24s sparkyfitness-server-1.7.3> ✓ tests/medicationRepository.test.ts (4 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsIndex.test.ts (24 tests) 51ms sparkyfitness-server-1.7.3> ✓ tests/corosRoutes.test.ts (4 tests) 37ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 19/60 sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 1/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts 11/11 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 317 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4673 passed | 309 skipped (5085) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.36s sparkyfitness-server-1.7.3> stderr | tests/updateEmailRoute.test.ts > POST /api/identity/update-email > returns 500 when email is already in use (service throws plain Error) sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.176Z] [ERROR] Error caught by centralized handler: Email already in use by another account. Error: Email already in use by another account. sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/updateEmailRoute.test.ts:86:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/updateEmailRoute.test.ts > POST /api/identity/update-email > returns 500 on unexpected service errors sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.179Z] [ERROR] Error caught by centralized handler: DB connection failed Error: DB connection failed sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/updateEmailRoute.test.ts:104:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:1628:35 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:26 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3319:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithCancel (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3314:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3299:20 sparkyfitness-server-1.7.3> at new Promise () sparkyfitness-server-1.7.3> at runWithTimeout (file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3257:10) sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:3876:64 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 19/60 sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 1/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts 11/11 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 317 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4673 passed | 309 skipped (5085) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.36s sparkyfitness-server-1.7.3> ✓ tests/externalProviderRepository.baseUrl.test.ts (5 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/updateEmailRoute.test.ts (5 tests) 48ms sparkyfitness-server-1.7.3> ✓ tests/foodBulkImportOverwrite.test.ts (3 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/medicationSchemas.zod.test.ts (7 tests) 18ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/aiServiceConnectionTest.test.ts 27/27 sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsIndex.test.ts 24/24 sparkyfitness-server-1.7.3> ❯ tests/chatProviderOptions.test.ts 15/15 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 19/60 sparkyfitness-server-1.7.3> ❯ tests/chatServiceClassifier.test.ts 21/21 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 37/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationRepository.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 1/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitService.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/weightRamp.test.ts 11/11 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 317 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4673 passed | 309 skipped (5085) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.36s sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsAlcohol.test.ts (6 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/garminConnectErrorFormatter.test.ts (8 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/foodEntryMealRoutes.create.test.ts (2 tests) 29ms sparkyfitness-server-1.7.3> ✓ tests/logging.test.ts (9 tests) 44ms sparkyfitness-server-1.7.3> stdout | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > continues processing remaining chunks and records partialErrors when one chunk fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.294Z] [INFO] [garminService] Starting Garmin sync (manual) for user user-1 from 2026-08-01 to 2026-08-15. sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.295Z] [INFO] [garminService] Range 2026-08-01 to 2026-08-15 split into 3 incremental chunks. sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.295Z] [INFO] [garminService] Processing chunk 1/3 (2026-08-01 to 2026-08-07) for user user-1... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > continues processing remaining chunks and records partialErrors when one chunk fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.295Z] [INFO] [garminService] Processing chunk 2/3 (2026-08-08 to 2026-08-14) for user user-1... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 27/60 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 38/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 322 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4709 passed | 309 skipped (5103) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.47s sparkyfitness-server-1.7.3> stderr | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > continues processing remaining chunks and records partialErrors when one chunk fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.296Z] [ERROR] [garminService] Error during activities sync for chunk 2026-08-08 to 2026-08-14: Connection reset on chunk 2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 27/60 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 38/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 322 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4709 passed | 309 skipped (5103) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.47s sparkyfitness-server-1.7.3> stdout | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > continues processing remaining chunks and records partialErrors when one chunk fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.296Z] [INFO] [garminService] Processing chunk 3/3 (2026-08-15 to 2026-08-15) for user user-1... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > continues processing remaining chunks and records partialErrors when one chunk fails sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.296Z] [INFO] [garminService] Full Garmin sync completed for user user-1. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > marks phase with error if all chunks fail in that phase sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.299Z] [INFO] [garminService] Starting Garmin sync (manual) for user user-1 from 2026-08-01 to 2026-08-07. sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.299Z] [INFO] [garminService] Range 2026-08-01 to 2026-08-07 split into 1 incremental chunks. sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.299Z] [INFO] [garminService] Processing chunk 1/1 (2026-08-01 to 2026-08-07) for user user-1... sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 27/60 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 38/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 322 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4709 passed | 309 skipped (5103) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.47s sparkyfitness-server-1.7.3> stderr | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > marks phase with error if all chunks fail in that phase sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.299Z] [ERROR] [garminService] Error during activities sync for chunk 2026-08-01 to 2026-08-07: Garmin API 500 error sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 27/60 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 38/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 322 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4709 passed | 309 skipped (5103) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.47s sparkyfitness-server-1.7.3> stdout | tests/garminIncrementalSync.test.ts > Garmin syncGarminData - Incremental Chunk Resilience > marks phase with error if all chunks fail in that phase sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.299Z] [INFO] [garminService] Full Garmin sync completed for user user-1. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/garminIncrementalSync.test.ts (2 tests) 29ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 27/60 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosRoutes.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 38/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.baseUrl.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodBulkImportOverwrite.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryMealRoutes.create.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminConnectErrorFormatter.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/medicationSchemas.zod.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAlcohol.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateEmailRoute.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 322 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4709 passed | 309 skipped (5103) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.47s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsBarcode.test.ts (5 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryRoutes.distanceClear.test.ts (3 tests) 38ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryRoutes.progress.test.ts (3 tests) 34ms sparkyfitness-server-1.7.3> ✓ tests/exerciseJsonFields.test.ts (12 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/authServiceUpdateEmail.test.ts (6 tests) 131ms sparkyfitness-server-1.7.3> ✓ tests/liftosaurMeasurementsService.test.ts (4 tests) 20ms sparkyfitness-server-1.7.3> ✓ tests/foodDeletionImpact.test.ts (1 test) 5ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/appDbPasswordReachesPool.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/authServiceUpdateEmail.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/caffeineKineticsMidnight.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAsk.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsBarcode.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 40/60 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dropSetCalculator.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 39/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.distanceClear.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.progress.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseJsonFields.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/foodEntryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminIncrementalSync.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/logging.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/outboundHttp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateFoodBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/userRepositoryCredentialAccountId.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 329 passed | 6 skipped (434) sparkyfitness-server-1.7.3> Tests 4756 passed | 309 skipped (5125) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.57s sparkyfitness-server-1.7.3> ✓ tests/calorieSafetyFloor.test.ts (2 tests) 17ms sparkyfitness-server-1.7.3> ✓ tests/exerciseService.imagesEncoding.test.ts (2 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/corosOauthCallback.test.ts (2 tests) 25ms sparkyfitness-server-1.7.3> ↓ tests/initializeDatabase.integration.test.ts (1 test | 1 skipped) sparkyfitness-server-1.7.3> ✓ tests/exerciseStatsRoutes.test.ts (12 tests) 48ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/appDbPasswordReachesPool.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineKineticsMidnight.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieSafetyFloor.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAsk.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolUnitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 51/60 sparkyfitness-server-1.7.3> ❯ tests/corosOauthCallback.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dropSetCalculator.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 39/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.sourcePreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseService.imagesEncoding.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDefaultVariantQueries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDeletionImpact.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/foodEntryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/initializeDatabase.integration.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/liftosaurMeasurementsService.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/outboundHttp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/setsDurationMinutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateFoodBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/userRepositoryCredentialAccountId.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 333 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 4786 passed | 310 skipped (5151) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.68s sparkyfitness-server-1.7.3> ✓ tests/forwardResponseHeaders.test.ts (5 tests) 25ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsProductReadRateLimitRepository.test.ts (4 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/externalProviderRepository.credentials.test.ts (4 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/goalRepository.test.ts (1 test) 6ms sparkyfitness-server-1.7.3> ✓ tests/chatService.test.ts (60 tests) 599ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts (6 tests) 18ms sparkyfitness-server-1.7.3> ✓ tests/userRepositoryCredentialAccountId.test.ts (2 tests) 8ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/appDbPasswordReachesPool.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineKineticsMidnight.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAsk.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolUnitConversion.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 60/60 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dropSetCalculator.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 39/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.sourcePreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseStatsRoutes.test.ts 12/12 sparkyfitness-server-1.7.3> ❯ tests/externalProviderRepository.credentials.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/externalProviderSchemas.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDefaultVariantQueries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/forwardResponseHeaders.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/goalRepository.test.ts 1/1 sparkyfitness-server-1.7.3> ❯ tests/imageOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDefaultTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsPhoto.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsProductReadRateLimitRepository.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/outboundHttp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.downsample.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveMealTypeIdWithClient.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/setsDurationMinutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateFoodBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/userRepositoryCredentialAccountId.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 340 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 4816 passed | 310 skipped (5164) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.78s sparkyfitness-server-1.7.3> stdout | tests/switchContextCookie.test.ts sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.737Z] [INFO] UserProfileRoutes UPLOADS_DIR: /build/source/SparkyFitnessServer/uploads/avatars sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/volumeUnitToMl.test.ts (8 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/switchContextCookie.test.ts (2 tests) 32ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolUnitConversion.test.ts (18 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsPhoto.test.ts (9 tests) 20ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryRoutes.duplicateCheck.test.ts (2 tests) 41ms sparkyfitness-server-1.7.3> ✓ tests/dashboardLayoutRepository.test.ts (5 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/appDbPasswordReachesPool.test.ts (2 tests) 43ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/appDbPasswordReachesPool.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/caffeineKineticsMidnight.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAsk.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolUnitConversion.test.ts 18/18 sparkyfitness-server-1.7.3> ❯ tests/chatService.test.ts 60/60 sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/dropSetCalculator.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 39/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.sourcePreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderSchemas.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDefaultVariantQueries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSorting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminMeasurementMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsFailClosed.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts 0/5 sparkyfitness-server-1.7.3> ❯ tests/googleHealthParsers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealTypeDefaultTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsAutomaticSyncDatabaseSchemas.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/outboundHttp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/poolContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.downsample.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveMealTypeIdWithClient.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/setsDurationMinutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/switchContextCookie.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/updateFoodBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/userRepositoryCredentialAccountId.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/volumeUnitToMl.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 347 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 4862 passed | 310 skipped (5227) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 12.99s sparkyfitness-server-1.7.3> ✓ tests/goalModePercentageSignMigration.test.ts (5 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/glp1Service.test.ts (5 tests) 11ms sparkyfitness-server-1.7.3> ✓ tests/externalProviderSchemas.test.ts (7 tests) 10ms sparkyfitness-server-1.7.3> stdout | tests/customNutrientDeleteCleanup.test.ts > customNutrientService.deleteCustomNutrient — supplement JSONB cleanup > scrubs medications.nutrients (always) and medication_entries snapshots (history purge) when deleteAllHistory is true sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.941Z] [INFO] Deleting custom nutrient "Boron" for user c65e84ac-1f4a-46bf-b129-654429b76011. Delete history: true sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/workoutFeedbackForm.test.ts (5 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/measurementService.categoryDisplayName.test.ts (4 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/caffeineKineticsMidnight.test.ts (3 tests) 22ms sparkyfitness-server-1.7.3> ✓ tests/dropSetCalculator.test.ts (9 tests) 6ms sparkyfitness-server-1.7.3> stdout | tests/customNutrientDeleteCleanup.test.ts > customNutrientService.deleteCustomNutrient — supplement JSONB cleanup > scrubs medications.nutrients (always) and medication_entries snapshots (history purge) when deleteAllHistory is true sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.999Z] [INFO] Cleaning up historical data for nutrient "Boron" for user c65e84ac-1f4a-46bf-b129-654429b76011 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/customNutrientDeleteCleanup.test.ts > customNutrientService.deleteCustomNutrient — supplement JSONB cleanup > scrubs medications.nutrients (always) and medication_entries snapshots (history purge) when deleteAllHistory is true sparkyfitness-server-1.7.3> [2026-09-30T11:46:20.999Z] [INFO] Successfully deleted custom nutrient "Boron" and performed cascading cleanup for user c65e84ac-1f4a-46bf-b129-654429b76011 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/customNutrientDeleteCleanup.test.ts > customNutrientService.deleteCustomNutrient — supplement JSONB cleanup > scrubs the medication definitions but NOT the immutable snapshots when deleteAllHistory is false sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.001Z] [INFO] Deleting custom nutrient "Boron" for user c65e84ac-1f4a-46bf-b129-654429b76011. Delete history: false sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/appDbPasswordReachesPool.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/backupService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineKineticsMidnight.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAsk.test.ts 1/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/cycleRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dashboardLayoutRepository.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/dropSetCalculator.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 39/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.sourcePreservation.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryRoutes.duplicateCheck.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDefaultVariantQueries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryTime.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryUnitReconcile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSorting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/garminMeasurementMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsFailClosed.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/glp1Service.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/goalModePercentageSignMigration.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/googleHealthParsers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts 0/24 sparkyfitness-server-1.7.3> ❯ tests/mealTypeDefaultTime.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsPhoto.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/outboundHttp.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/poolContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.downsample.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveMealTypeIdWithClient.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/setsDurationMinutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/updateFoodBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts 5/5 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 354 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 4902 passed | 310 skipped (5295) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.09s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsAsk.test.ts (11 tests) 11ms sparkyfitness-server-1.7.3> stdout | tests/mealTypeDefaultTime.test.ts > mealTypeRepository default_time tests > updateMealType default_time > should upsert default_time in user_meal_visibilities when provided sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.044Z] [INFO] updateMealType in mealType.js: id: 73a83a80-5dfb-440a-ba42-3b68d8e10ed8, data: {"default_time":"11:30"} sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/mealTypeDefaultTime.test.ts > mealTypeRepository default_time tests > updateMealType default_time > should support clearing default_time by passing null sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.046Z] [INFO] updateMealType in mealType.js: id: 5c2d5f4b-ffef-4cb7-92e4-1fc8b98047cd, data: {"default_time":null} sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/foodUpdateSnapshotRoute.test.ts (8 tests) 58ms sparkyfitness-server-1.7.3> ✓ tests/mealTypeDefaultTime.test.ts (2 tests) 6ms sparkyfitness-server-1.7.3> stdout | tests/outboundHttp.test.ts > configureOutboundHttp > widens the per-family connect attempt timeout and sets a request timeout sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.067Z] [INFO] Outbound HTTP defaults: 30000ms request timeout, 5000ms per address-family connect attempt. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/customNutrientDeleteCleanup.test.ts > customNutrientService.deleteCustomNutrient — supplement JSONB cleanup > scrubs the medication definitions but NOT the immutable snapshots when deleteAllHistory is false sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.042Z] [INFO] Successfully deleted custom nutrient "Boron" and performed cascading cleanup for user c65e84ac-1f4a-46bf-b129-654429b76011 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/outboundHttp.test.ts (5 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/updateFoodBarcode.test.ts (5 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/customNutrientDeleteCleanup.test.ts (2 tests) 105ms sparkyfitness-server-1.7.3> stdout | tests/foodEntryTime.test.ts > foodEntryRepository time-of-day tests > createFoodEntry > should include entry_time parameter in INSERT statement sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.067Z] [INFO] createFoodEntry in foodEntry.js: entryData: {"user_id":"bb12c0e6-a42c-49ab-9147-be886b1029b4","food_id":"44e24d52-e209-45a5-89d9-7ee0e4d5cfb5","meal_type_id":"1db8751e-08c1-40f2-b95a-83dd6a0e32bc","quantity":1,"unit":"g","entry_date":"2026-07-10","entry_time":"12:30"}, createdByUserId: bb12c0e6-a42c-49ab-9147-be886b1029b4 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/foodEntryTime.test.ts (2 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/measurementService.zeroValueFiltering.test.ts (3 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/corosSync.test.ts (3 tests) 20ms sparkyfitness-server-1.7.3> ✓ tests/setsDurationMinutes.test.ts (13 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/backupService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/caffeineKineticsMidnight.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsAsk.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts 0/8 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWizard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/customNutrientDeleteCleanup.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/cycleRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateColumnParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dropSetCalculator.test.ts 9/9 sparkyfitness-server-1.7.3> ❯ tests/exerciseActiveCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 40/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.sourcePreservation.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/externalProviderSchemas.test.ts 7/7 sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodDefaultVariantQueries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopyFingerprint.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryTime.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/foodEntryUnitReconcile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSorting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUpdateSnapshotRoute.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/garminMeasurementMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsFailClosed.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthParsers.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/imageOrder.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts 1/24 sparkyfitness-server-1.7.3> ❯ tests/mealTypeDefaultTime.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/measurementService.categoryDisplayName.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.zeroValueFiltering.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/outboundHttp.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/poolContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.downsample.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveMealTypeIdWithClient.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/setsDurationMinutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/updateFoodBarcode.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutFeedbackForm.test.ts 5/5 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 364 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 4957 passed | 310 skipped (5336) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.19s sparkyfitness-server-1.7.3> ✓ tests/exerciseEntry.sourcePreservation.test.ts (2 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsHabits.test.ts (8 tests) 10ms sparkyfitness-server-1.7.3> ✓ tests/reportRepository.downsample.test.ts (2 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/favoritesRoutes.test.ts (5 tests) 26ms sparkyfitness-server-1.7.3> ✓ tests/foodDefaultVariantQueries.test.ts (4 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/imageOrder.test.ts (8 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/backupRescheduling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backupScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backupService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bodyCompositionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsHabits.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWizard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/corosSync.test.ts 3/3 sparkyfitness-server-1.7.3> ❯ tests/cycleRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/dateColumnParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseActiveCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 40/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntry.sourcePreservation.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/favoritesRoutes.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/foodDefaultVariantQueries.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopyFingerprint.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryUnitReconcile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSorting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminMeasurementMapping.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsFailClosed.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/googleHealthParsers.test.ts 1/16 sparkyfitness-server-1.7.3> ❯ tests/imageOrder.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts 1/24 sparkyfitness-server-1.7.3> ❯ tests/mealieService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRepository.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 1/7 sparkyfitness-server-1.7.3> ❯ tests/poolContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.downsample.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveMealTypeIdWithClient.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/setsDurationMinutes.test.ts 13/13 sparkyfitness-server-1.7.3> ❯ tests/twoFactorState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetService.ownership.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 370 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 4986 passed | 310 skipped (5371) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.30s sparkyfitness-server-1.7.3> ✓ tests/googleHealthParsers.test.ts (16 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryService.csvImport.test.ts (2 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/garminMeasurementMapping.test.ts (5 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/globalSettingsFailClosed.test.ts (11 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/poolContext.test.ts (6 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backupRescheduling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backupScheduler.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backupService.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/bodyCompositionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsWizard.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRepository.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/dateColumnParser.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseActiveCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 40/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryService.csvImport.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/foodDefaultVariantQueries.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopyFingerprint.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryUnitReconcile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSorting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminMeasurementMapping.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/globalSettingsFailClosed.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/googleHealthParsers.test.ts 16/16 sparkyfitness-server-1.7.3> ❯ tests/imageOrder.test.ts 8/8 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts 11/24 sparkyfitness-server-1.7.3> ❯ tests/mealieService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRepository.test.ts 1/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/poolContext.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceRepository.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveMealTypeIdWithClient.test.ts 0/6 sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/twoFactorState.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetService.ownership.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 375 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5037 passed | 310 skipped (5411) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.51s sparkyfitness-server-1.7.3> ✓ tests/nutrientGoalPreferenceRepository.test.ts (2 tests) 5ms sparkyfitness-server-1.7.3> stdout | tests/backupService.test.ts > executeCommand runs argv without a shell > passes a metacharacter-laden value as a single literal argument sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.396Z] [INFO] Command successful: /nix/store/z5piarlh57mjwr4c9w318ay97sxr6c9m-nodejs-slim-24.20.0/bin/node -e process.stdout.write(process.argv.slice(1).join("|")) harmless; echo INJECTED x sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/cycleRepository.test.ts (4 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/resolveMealTypeIdWithClient.test.ts (6 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/dateColumnParser.test.ts (5 tests) 5ms sparkyfitness-server-1.7.3> stdout | tests/backupService.test.ts > executeCommand runs argv without a shell > does not evaluate $(...) or backtick command substitution sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.440Z] [INFO] Command successful: /nix/store/z5piarlh57mjwr4c9w318ay97sxr6c9m-nodejs-slim-24.20.0/bin/node -e process.stdout.write(process.argv.slice(1).join("|")) $(id) `id` sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ✓ tests/backupService.test.ts (4 tests) 84ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsWizard.test.ts (9 tests) 10ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backupRescheduling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/backupScheduler.test.ts 1/9 sparkyfitness-server-1.7.3> ❯ tests/bodyCompositionService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsFavorites.test.ts 0/9 sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/cycleRepository.test.ts 4/4 sparkyfitness-server-1.7.3> ❯ tests/dateColumnParser.test.ts 5/5 sparkyfitness-server-1.7.3> ❯ tests/exerciseActiveCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopyFingerprint.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryUnitReconcile.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodSorting.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/garminSyncResult.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/globalSettingsFailClosed.test.ts 11/11 sparkyfitness-server-1.7.3> ❯ tests/mcpRoutes.test.ts 12/24 sparkyfitness-server-1.7.3> ❯ tests/mealieService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataContext.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/nutrientGoalPreferenceRepository.test.ts 2/2 sparkyfitness-server-1.7.3> ❯ tests/openFoodFactsSyncSettingsRoutes.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/poolContext.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/poolIdleErrors.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceRepository.openFoodFacts.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveMealTypeIdWithClient.test.ts 6/6 sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/twoFactorState.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutPresetService.ownership.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 381 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5069 passed | 310 skipped (5449) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.64s sparkyfitness-server-1.7.3> ✓ tests/backupScheduler.test.ts (9 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsFavorites.test.ts (9 tests) 13ms sparkyfitness-server-1.7.3> ✓ tests/twoFactorState.test.ts (3 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/backupRescheduling.test.ts (2 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/workoutPresetService.ownership.test.ts (2 tests) 4ms sparkyfitness-server-1.7.3> ✓ tests/openFoodFactsSyncSettingsRoutes.test.ts (3 tests) 40ms sparkyfitness-server-1.7.3> ✓ tests/mcpRoutes.test.ts (24 tests) 639ms sparkyfitness-server-1.7.3> ✓ POST /mcp (16) sparkyfitness-server-1.7.3> ✓ accepts bodies over 1mb (for photo/image tools) and rejects bodies over 50mb with 413 396ms sparkyfitness-server-1.7.3> stdout | tests/bodyCompositionService.test.ts > bodyCompositionService > calculateBodyFatNavy > calculates correct body fat for males using Metric inputs (converted from bug report) sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.582Z] [INFO] Calculating body fat with Navy method for male sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/bodyCompositionService.test.ts > bodyCompositionService > calculateBodyFatNavy > calculates correct body fat for females (standard values) sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.584Z] [INFO] Calculating body fat with Navy method for female sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stdout | tests/bodyCompositionService.test.ts > bodyCompositionService > calculateBodyFatNavy > throws error for missing measurements sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.586Z] [INFO] Calculating body fat with Navy method for male sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.586Z] [INFO] Calculating body fat with Navy method for female sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseActiveCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopyFingerprint.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthConnectTotalCaloriesCaptureMigration.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/mealieService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataContext.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/poolIdleErrors.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/truncationPagination.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts 0/3 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 394 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5126 passed | 310 skipped (5482) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.74s sparkyfitness-server-1.7.3> stderr | tests/foodSorting.test.ts > food database sorting > should fallback to default sort for invalid sortBy sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.590Z] [WARN] Invalid sortBy parameter received: invalid:field. Using default sort. sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseActiveCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopyFingerprint.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthConnectTotalCaloriesCaptureMigration.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/mealieService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataContext.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/poolIdleErrors.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/truncationPagination.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts 0/3 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 394 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5126 passed | 310 skipped (5482) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.74s sparkyfitness-server-1.7.3> ✓ tests/bodyCompositionService.test.ts (3 tests) 7ms sparkyfitness-server-1.7.3> ✓ tests/garminSyncResult.test.ts (3 tests) 5ms sparkyfitness-server-1.7.3> ✓ tests/foodSorting.test.ts (3 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/foodEntryUnitReconcile.test.ts (7 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/workoutPresetSearch.test.ts (1 test) 8ms sparkyfitness-server-1.7.3> ✓ tests/preferenceRepository.openFoodFacts.test.ts (1 test) 5ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseActiveCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryCopyFingerprint.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/healthConnectTotalCaloriesCaptureMigration.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/mealieService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mockDataContext.test.ts 0/4 sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/poolIdleErrors.test.ts 0/2 sparkyfitness-server-1.7.3> ❯ tests/preferenceChartScaleMode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportSupplementScaling.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/truncationPagination.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/workoutDaysRoute.test.ts 0/3 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 394 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5126 passed | 310 skipped (5482) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.74s sparkyfitness-server-1.7.3> ✓ tests/mockDataContext.test.ts (4 tests) 9ms sparkyfitness-server-1.7.3> ✓ tests/poolIdleErrors.test.ts (2 tests) 8ms sparkyfitness-server-1.7.3> ✓ tests/healthConnectTotalCaloriesCaptureMigration.test.ts (2 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/reportSupplementScaling.test.ts (1 test) 5ms sparkyfitness-server-1.7.3> ✓ tests/truncationPagination.test.ts (1 test) 4ms sparkyfitness-server-1.7.3> ✓ tests/mealieService.test.ts (2 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/workoutDaysRoute.test.ts (3 tests) 46ms sparkyfitness-server-1.7.3> ✓ tests/foodEntryCopyFingerprint.test.ts (7 tests) 5ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts 0/2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 404 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5157 passed | 310 skipped (5511) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.84s sparkyfitness-server-1.7.3> stderr | tests/preferenceChartScaleMode.test.ts > chart scale mode preference validation > rejects an unknown mode sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.695Z] [ERROR] Error updating preferences for user user-1 by user-1: Error: Invalid chart_scale_mode: 'logarithmic'. Must be one of: time, point. sparkyfitness-server-1.7.3> at validateChartScaleMode (/build/source/SparkyFitnessServer/services/preferenceService.ts:151:7) sparkyfitness-server-1.7.3> at Object.updateUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:182:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceChartScaleMode.test.ts:28:5 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/preferenceChartScaleMode.test.ts > chart scale mode preference validation > rejects non-string values instead of coercing them sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.700Z] [ERROR] Error updating preferences for user user-1 by user-1: Error: Invalid chart_scale_mode: '1'. Must be one of: time, point. sparkyfitness-server-1.7.3> at validateChartScaleMode (/build/source/SparkyFitnessServer/services/preferenceService.ts:151:7) sparkyfitness-server-1.7.3> at Object.updateUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:182:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceChartScaleMode.test.ts:36:5 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/preferenceChartScaleMode.test.ts > chart scale mode preference validation > validates the upsert path too sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.702Z] [ERROR] Error upserting preferences for user user-1: Error: Invalid chart_scale_mode: 'sideways'. Must be one of: time, point. sparkyfitness-server-1.7.3> at validateChartScaleMode (/build/source/SparkyFitnessServer/services/preferenceService.ts:151:7) sparkyfitness-server-1.7.3> at Object.upsertUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:287:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceChartScaleMode.test.ts:55:5 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts 0/2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 404 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5157 passed | 310 skipped (5511) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.84s sparkyfitness-server-1.7.3> ✓ tests/preferenceChartScaleMode.test.ts (6 tests) 31ms sparkyfitness-server-1.7.3> ✓ tests/exerciseActiveCalories.test.ts (2 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/announcementService.test.ts 0/3 sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsMeta.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/exerciseEntryGarminCleanup.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesQuery.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodFavoritesService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/measurementService.checkInDelete.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/moodTags.test.ts 1/5 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/reportRepository.getExerciseEntries.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/resolveTemplateStartDay.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/usdaService.test.ts 0/2 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 404 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5157 passed | 310 skipped (5511) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.84s sparkyfitness-server-1.7.3> ✓ tests/moodTags.test.ts (5 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/usdaService.test.ts (2 tests) 35ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 414 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5184 passed | 310 skipped (5543) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.94s sparkyfitness-server-1.7.3> stderr | tests/announcementService.test.ts > announcementService > should return local fallback announcement when offline or fetching sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.744Z] [WARN] [ANNOUNCEMENT] Axios fetch failed, trying direct HTTPS fallback: AxiosError: getaddrinfo EAI_AGAIN raw.githubusercontent.com sparkyfitness-server-1.7.3> at AxiosError.from (file:///build/source/node_modules/.pnpm/axios@1.20.0/node_modules/axios/lib/core/AxiosError.js:108:24) sparkyfitness-server-1.7.3> at RedirectableRequest.handleRequestError (file:///build/source/node_modules/.pnpm/axios@1.20.0/node_modules/axios/lib/adapters/http.js:1340:27) sparkyfitness-server-1.7.3> at RedirectableRequest.emit (node:events:526:24) sparkyfitness-server-1.7.3> at ClientRequest.eventHandlers. (/build/source/node_modules/.pnpm/follow-redirects@1.16.0/node_modules/follow-redirects/index.js:56:24) sparkyfitness-server-1.7.3> at ClientRequest.emit (node:events:514:28) sparkyfitness-server-1.7.3> at emitErrorEvent (node:_http_client:114:11) sparkyfitness-server-1.7.3> at TLSSocket.socketErrorListener (node:_http_client:766:5) sparkyfitness-server-1.7.3> at TLSSocket.emit (node:events:526:24) sparkyfitness-server-1.7.3> at emitErrorNT (node:internal/streams/destroy:170:8) sparkyfitness-server-1.7.3> at emitErrorCloseNT (node:internal/streams/destroy:129:3) sparkyfitness-server-1.7.3> at Axios.request (file:///build/source/node_modules/.pnpm/axios@1.20.0/node_modules/axios/lib/core/Axios.js:48:43) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at Object.getLatestAnnouncement (/build/source/SparkyFitnessServer/services/announcementService.ts:172:17) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/announcementService.test.ts:47:20 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> isAxiosError: true, sparkyfitness-server-1.7.3> code: 'EAI_AGAIN', sparkyfitness-server-1.7.3> config: [Object: null prototype] { sparkyfitness-server-1.7.3> transitional: { sparkyfitness-server-1.7.3> silentJSONParsing: true, sparkyfitness-server-1.7.3> forcedJSONParsing: true, sparkyfitness-server-1.7.3> clarifyTimeoutError: false, sparkyfitness-server-1.7.3> legacyInterceptorReqResOrdering: true, sparkyfitness-server-1.7.3> advertiseZstdAcceptEncoding: false, sparkyfitness-server-1.7.3> validateStatusUndefinedResolves: true sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> adapter: [ 'xhr', 'http', 'fetch' ], sparkyfitness-server-1.7.3> transformRequest: [ [Function: transformRequest] ], sparkyfitness-server-1.7.3> transformResponse: [ [Function: transformResponse] ], sparkyfitness-server-1.7.3> timeout: 5000, sparkyfitness-server-1.7.3> xsrfCookieName: 'XSRF-TOKEN', sparkyfitness-server-1.7.3> xsrfHeaderName: 'X-XSRF-TOKEN', sparkyfitness-server-1.7.3> maxContentLength: -1, sparkyfitness-server-1.7.3> maxBodyLength: -1, sparkyfitness-server-1.7.3> env: { FormData: [Function], Blob: [class Blob] }, sparkyfitness-server-1.7.3> validateStatus: [Function: validateStatus], sparkyfitness-server-1.7.3> headers: Object [AxiosHeaders] { sparkyfitness-server-1.7.3> Accept: 'application/json, text/plain, */*', sparkyfitness-server-1.7.3> 'Content-Type': undefined, sparkyfitness-server-1.7.3> 'User-Agent': 'SparkyFitness-App', sparkyfitness-server-1.7.3> 'Accept-Encoding': 'gzip, compress, deflate, br' sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> method: 'get', sparkyfitness-server-1.7.3> url: 'https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/announcement.md', sparkyfitness-server-1.7.3> allowAbsoluteUrls: true, sparkyfitness-server-1.7.3> data: undefined sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> request: Writable { sparkyfitness-server-1.7.3> _events: { sparkyfitness-server-1.7.3> close: undefined, sparkyfitness-server-1.7.3> error: [Function: handleRequestError], sparkyfitness-server-1.7.3> prefinish: undefined, sparkyfitness-server-1.7.3> finish: undefined, sparkyfitness-server-1.7.3> drain: undefined, sparkyfitness-server-1.7.3> response: [Function: handleResponse], sparkyfitness-server-1.7.3> socket: [Array], sparkyfitness-server-1.7.3> timeout: undefined, sparkyfitness-server-1.7.3> abort: undefined sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> _writableState: WritableState { sparkyfitness-server-1.7.3> highWaterMark: 65536, sparkyfitness-server-1.7.3> length: 0, sparkyfitness-server-1.7.3> corked: 0, sparkyfitness-server-1.7.3> onwrite: [Function (anonymous)], sparkyfitness-server-1.7.3> writelen: 0, sparkyfitness-server-1.7.3> bufferedIndex: 0, sparkyfitness-server-1.7.3> pendingcb: 0, sparkyfitness-server-1.7.3> Symbol(kState): 17581054, sparkyfitness-server-1.7.3> Symbol(kBufferedValue): null, sparkyfitness-server-1.7.3> Symbol(kErroredValue): [Error] sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> _maxListeners: undefined, sparkyfitness-server-1.7.3> _options: { sparkyfitness-server-1.7.3> maxRedirects: 21, sparkyfitness-server-1.7.3> maxBodyLength: Infinity, sparkyfitness-server-1.7.3> protocol: 'https:', sparkyfitness-server-1.7.3> path: '/CodeWithCJ/SparkyFitness/main/announcement.md', sparkyfitness-server-1.7.3> method: 'GET', sparkyfitness-server-1.7.3> headers: [Object: null prototype], sparkyfitness-server-1.7.3> agents: [Object], sparkyfitness-server-1.7.3> auth: undefined, sparkyfitness-server-1.7.3> family: undefined, sparkyfitness-server-1.7.3> beforeRedirect: [Function: dispatchBeforeRedirect], sparkyfitness-server-1.7.3> beforeRedirects: [Object: null prototype], sparkyfitness-server-1.7.3> http2Options: undefined, sparkyfitness-server-1.7.3> createConnection: undefined, sparkyfitness-server-1.7.3> hostname: 'raw.githubusercontent.com', sparkyfitness-server-1.7.3> port: '', sparkyfitness-server-1.7.3> agent: undefined, sparkyfitness-server-1.7.3> sensitiveHeaders: [], sparkyfitness-server-1.7.3> insecureHTTPParser: false, sparkyfitness-server-1.7.3> nativeProtocols: [Object], sparkyfitness-server-1.7.3> pathname: '/CodeWithCJ/SparkyFitness/main/announcement.md' sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> _ended: true, sparkyfitness-server-1.7.3> _ending: true, sparkyfitness-server-1.7.3> _redirectCount: 0, sparkyfitness-server-1.7.3> _redirects: [], sparkyfitness-server-1.7.3> _requestBodyLength: 0, sparkyfitness-server-1.7.3> _requestBodyBuffers: [], sparkyfitness-server-1.7.3> _eventsCount: 3, sparkyfitness-server-1.7.3> _onNativeResponse: [Function (anonymous)], sparkyfitness-server-1.7.3> _headerFilter: /^(?:Authorization|Proxy-Authorization|Cookie)$/i, sparkyfitness-server-1.7.3> _currentRequest: ClientRequest { sparkyfitness-server-1.7.3> _events: [Object: null prototype], sparkyfitness-server-1.7.3> _eventsCount: 2, sparkyfitness-server-1.7.3> _maxListeners: undefined, sparkyfitness-server-1.7.3> outputData: [], sparkyfitness-server-1.7.3> outputSize: 0, sparkyfitness-server-1.7.3> writable: true, sparkyfitness-server-1.7.3> destroyed: true, sparkyfitness-server-1.7.3> _last: true, sparkyfitness-server-1.7.3> chunkedEncoding: false, sparkyfitness-server-1.7.3> shouldKeepAlive: true, sparkyfitness-server-1.7.3> maxRequestsOnConnectionReached: false, sparkyfitness-server-1.7.3> _defaultKeepAlive: true, sparkyfitness-server-1.7.3> useChunkedEncodingByDefault: false, sparkyfitness-server-1.7.3> sendDate: false, sparkyfitness-server-1.7.3> _removedConnection: false, sparkyfitness-server-1.7.3> _removedContLen: false, sparkyfitness-server-1.7.3> _removedTE: false, sparkyfitness-server-1.7.3> strictContentLength: false, sparkyfitness-server-1.7.3> _contentLength: 0, sparkyfitness-server-1.7.3> _hasBody: true, sparkyfitness-server-1.7.3> _trailer: '', sparkyfitness-server-1.7.3> finished: true, sparkyfitness-server-1.7.3> _headerSent: true, sparkyfitness-server-1.7.3> _closed: false, sparkyfitness-server-1.7.3> _header: 'GET /CodeWithCJ/SparkyFitness/main/announcement.md HTTP/1.1\r\n' + sparkyfitness-server-1.7.3> 'Accept: application/json, text/plain, */*\r\n' + sparkyfitness-server-1.7.3> 'User-Agent: SparkyFitness-App\r\n' + sparkyfitness-server-1.7.3> 'Accept-Encoding: gzip, compress, deflate, br\r\n' + sparkyfitness-server-1.7.3> 'Host: raw.githubusercontent.com\r\n' + sparkyfitness-server-1.7.3> 'Connection: keep-alive\r\n' + sparkyfitness-server-1.7.3> '\r\n', sparkyfitness-server-1.7.3> _keepAliveTimeout: 0, sparkyfitness-server-1.7.3> _onPendingData: [Function: nop], sparkyfitness-server-1.7.3> agent: [Agent], sparkyfitness-server-1.7.3> socketPath: undefined, sparkyfitness-server-1.7.3> method: 'GET', sparkyfitness-server-1.7.3> maxHeaderSize: undefined, sparkyfitness-server-1.7.3> insecureHTTPParser: false, sparkyfitness-server-1.7.3> httpValidation: undefined, sparkyfitness-server-1.7.3> joinDuplicateHeaders: undefined, sparkyfitness-server-1.7.3> _ended: false, sparkyfitness-server-1.7.3> res: null, sparkyfitness-server-1.7.3> aborted: false, sparkyfitness-server-1.7.3> timeoutCb: [Function: emitRequestTimeout], sparkyfitness-server-1.7.3> upgradeOrConnect: false, sparkyfitness-server-1.7.3> parser: null, sparkyfitness-server-1.7.3> maxHeadersCount: null, sparkyfitness-server-1.7.3> reusedSocket: false, sparkyfitness-server-1.7.3> host: 'raw.githubusercontent.com', sparkyfitness-server-1.7.3> protocol: 'https:', sparkyfitness-server-1.7.3> _redirectable: [Circular *1], sparkyfitness-server-1.7.3> Symbol(shapeMode): false, sparkyfitness-server-1.7.3> Symbol(kCapture): false, sparkyfitness-server-1.7.3> Symbol(kBytesWritten): 0, sparkyfitness-server-1.7.3> Symbol(kNeedDrain): false, sparkyfitness-server-1.7.3> Symbol(corked): 0, sparkyfitness-server-1.7.3> Symbol(kChunkedBuffer): [], sparkyfitness-server-1.7.3> Symbol(kChunkedLength): 0, sparkyfitness-server-1.7.3> Symbol(kSocket): [TLSSocket], sparkyfitness-server-1.7.3> Symbol(kOutHeaders): [Object: null prototype], sparkyfitness-server-1.7.3> Symbol(errored): null, sparkyfitness-server-1.7.3> Symbol(kWritableFinished): false, sparkyfitness-server-1.7.3> Symbol(kEndCallbacks): null, sparkyfitness-server-1.7.3> Symbol(kFlushError): null, sparkyfitness-server-1.7.3> Symbol(kHighWaterMark): 65536, sparkyfitness-server-1.7.3> Symbol(kRejectNonStandardBodyWrites): false, sparkyfitness-server-1.7.3> Symbol(kPath): '/CodeWithCJ/SparkyFitness/main/announcement.md', sparkyfitness-server-1.7.3> Symbol(kProxyRewrittenToAbsolute): false, sparkyfitness-server-1.7.3> Symbol(kAuthority): 'raw.githubusercontent.com', sparkyfitness-server-1.7.3> Symbol(kUniqueHeaders): null, sparkyfitness-server-1.7.3> Symbol(kError): [Error] sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> _currentUrl: 'https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/announcement.md', sparkyfitness-server-1.7.3> _timeout: null, sparkyfitness-server-1.7.3> Symbol(shapeMode): true, sparkyfitness-server-1.7.3> Symbol(kCapture): false sparkyfitness-server-1.7.3> }, sparkyfitness-server-1.7.3> [cause]: Error: getaddrinfo EAI_AGAIN raw.githubusercontent.com sparkyfitness-server-1.7.3> at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) { sparkyfitness-server-1.7.3> errno: -3001, sparkyfitness-server-1.7.3> code: 'EAI_AGAIN', sparkyfitness-server-1.7.3> syscall: 'getaddrinfo', sparkyfitness-server-1.7.3> hostname: 'raw.githubusercontent.com' sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 414 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5184 passed | 310 skipped (5543) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.94s sparkyfitness-server-1.7.3> stdout | tests/announcementService.test.ts > announcementService > should return local fallback announcement when offline or fetching sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.751Z] [INFO] [ANNOUNCEMENT] GitHub fetch skipped/failed, using local announcement.md fallback sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 414 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5184 passed | 310 skipped (5543) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.94s sparkyfitness-server-1.7.3> stderr | tests/announcementService.test.ts > announcementService > should return local fallback announcement when offline or fetching sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.751Z] [WARN] [ANNOUNCEMENT] Direct fetch failed: Error: getaddrinfo EAI_AGAIN raw.githubusercontent.com sparkyfitness-server-1.7.3> at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) { sparkyfitness-server-1.7.3> errno: -3001, sparkyfitness-server-1.7.3> code: 'EAI_AGAIN', sparkyfitness-server-1.7.3> syscall: 'getaddrinfo', sparkyfitness-server-1.7.3> hostname: 'raw.githubusercontent.com' sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 414 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5184 passed | 310 skipped (5543) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.94s sparkyfitness-server-1.7.3> ✓ tests/announcementService.test.ts (3 tests) 38ms sparkyfitness-server-1.7.3> ✓ tests/foodFavoritesQuery.test.ts (2 tests) 3ms sparkyfitness-server-1.7.3> ✓ tests/exerciseEntryGarminCleanup.test.ts (1 test) 3ms sparkyfitness-server-1.7.3> ✓ tests/resolveTemplateStartDay.test.ts (4 tests) 20ms sparkyfitness-server-1.7.3> ✓ tests/reportRepository.getExerciseEntries.test.ts (1 test) 4ms sparkyfitness-server-1.7.3> ✓ tests/foodFavoritesService.test.ts (3 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsMeta.test.ts (5 tests) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 414 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5184 passed | 310 skipped (5543) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.94s sparkyfitness-server-1.7.3> stderr | tests/measurementService.checkInDelete.test.ts > Measurement Service - Check-In Delete > deleteCheckInMeasurements > throws not-found when the row does not exist or is not owned sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.831Z] [ERROR] Error deleting check-in measurements non-existent-entry by test-user-id: Error: Check-in measurement not found. sparkyfitness-server-1.7.3> at Object.deleteCheckInMeasurements (/build/source/SparkyFitnessServer/services/measurementService.ts:1147:13) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 414 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5184 passed | 310 skipped (5543) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.94s sparkyfitness-server-1.7.3> ✓ tests/measurementService.checkInDelete.test.ts (2 tests) 9ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/alcoholNeverAddsCalories.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/bmrService.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/calorieCalculations.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 41/45 sparkyfitness-server-1.7.3> ❯ tests/findFoodByBarcode.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntrySelectedCopySchema.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/foodEntryWholeCopySchema.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/foodUtilsNutritionScale.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/mealSearch.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> ❯ tests/preferenceSafetyFloor.test.ts 0/7 sparkyfitness-server-1.7.3> ❯ tests/usdaAlcohol.test.ts [queued] sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 414 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5184 passed | 310 skipped (5543) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 13.94s sparkyfitness-server-1.7.3> stderr | tests/preferenceSafetyFloor.test.ts > calorie safety floor preference validation > rejects an unknown mode sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.842Z] [ERROR] Error updating preferences for user user-1 by user-1: Error: Invalid calorie_safety_floor_mode: 'sometimes'. Must be one of: standard, custom, disabled. sparkyfitness-server-1.7.3> at validateCalorieSafetyFloor (/build/source/SparkyFitnessServer/services/preferenceService.ts:118:7) sparkyfitness-server-1.7.3> at Object.updateUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:181:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceSafetyFloor.test.ts:28:5 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/preferenceSafetyFloor.test.ts > calorie safety floor preference validation > rejects invalid custom floor value 799 sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.847Z] [ERROR] Error updating preferences for user user-1 by user-1: Error: Invalid calorie_safety_floor_value: '799'. Must be an integer between 800 and 5000. sparkyfitness-server-1.7.3> at validateCalorieSafetyFloor (/build/source/SparkyFitnessServer/services/preferenceService.ts:133:9) sparkyfitness-server-1.7.3> at Object.updateUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:181:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceSafetyFloor.test.ts:38:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/preferenceSafetyFloor.test.ts > calorie safety floor preference validation > rejects invalid custom floor value 5001 sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.848Z] [ERROR] Error updating preferences for user user-1 by user-1: Error: Invalid calorie_safety_floor_value: '5001'. Must be an integer between 800 and 5000. sparkyfitness-server-1.7.3> at validateCalorieSafetyFloor (/build/source/SparkyFitnessServer/services/preferenceService.ts:133:9) sparkyfitness-server-1.7.3> at Object.updateUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:181:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceSafetyFloor.test.ts:38:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/preferenceSafetyFloor.test.ts > calorie safety floor preference validation > rejects invalid custom floor value 1200.5 sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.848Z] [ERROR] Error updating preferences for user user-1 by user-1: Error: Invalid calorie_safety_floor_value: '1200.5'. Must be an integer between 800 and 5000. sparkyfitness-server-1.7.3> at validateCalorieSafetyFloor (/build/source/SparkyFitnessServer/services/preferenceService.ts:133:9) sparkyfitness-server-1.7.3> at Object.updateUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:181:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceSafetyFloor.test.ts:38:7 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> stderr | tests/preferenceSafetyFloor.test.ts > calorie safety floor preference validation > rejects non-number values instead of coercing them sparkyfitness-server-1.7.3> [2026-09-30T11:46:21.849Z] [ERROR] Error updating preferences for user user-1 by user-1: Error: Invalid calorie_safety_floor_value: 'true'. Must be an integer between 800 and 5000. sparkyfitness-server-1.7.3> at validateCalorieSafetyFloor (/build/source/SparkyFitnessServer/services/preferenceService.ts:133:9) sparkyfitness-server-1.7.3> at Object.updateUserPreferences (/build/source/SparkyFitnessServer/services/preferenceService.ts:181:11) sparkyfitness-server-1.7.3> at processTicksAndRejections (node:internal/process/task_queues:104:5) sparkyfitness-server-1.7.3> at /build/source/SparkyFitnessServer/tests/preferenceSafetyFloor.test.ts:47:5 sparkyfitness-server-1.7.3> at file:///build/source/node_modules/.pnpm/vitest@5.0.0_@opentelemetry+api@1.9.1_@types+node@25.9.6_@vitest+coverage-v8@5.0.0_jsdo_b4998df7729176685ba14a81aaa25376/node_modules/vitest/dist/chunks/run.CQOUYP-x.js:2783:20 { sparkyfitness-server-1.7.3> status: 400 sparkyfitness-server-1.7.3> } sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 42/45 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 424 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5216 passed | 310 skipped (5560) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 14.04s sparkyfitness-server-1.7.3> ✓ tests/preferenceSafetyFloor.test.ts (7 tests) 24ms sparkyfitness-server-1.7.3> ✓ tests/foodEntryWholeCopySchema.test.ts (7 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/foodEntrySelectedCopySchema.test.ts (7 tests) 6ms sparkyfitness-server-1.7.3> ✓ tests/calorieCalculations.test.ts (3 tests) 4ms sparkyfitness-server-1.7.3> ✓ tests/usdaAlcohol.test.ts (1 test) 3ms sparkyfitness-server-1.7.3> ✓ tests/alcoholNeverAddsCalories.test.ts (1 test) 2ms sparkyfitness-server-1.7.3> ✓ tests/bmrService.test.ts (2 tests) 3ms sparkyfitness-server-1.7.3> ✓ tests/mealSearch.test.ts (1 test) 5ms sparkyfitness-server-1.7.3> ✓ tests/foodUtilsNutritionScale.test.ts (1 test) 3ms sparkyfitness-server-1.7.3> ✓ tests/findFoodByBarcode.test.ts (1 test) 3ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 42/45 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 424 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5216 passed | 310 skipped (5560) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 14.04s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 43/45 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 424 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5217 passed | 310 skipped (5560) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 14.24s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 44/45 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 424 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5218 passed | 310 skipped (5560) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 14.34s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/exerciseEntriesApiSchemas.test.ts 45/45 sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 424 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5219 passed | 310 skipped (5560) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 14.74s sparkyfitness-server-1.7.3> ✓ tests/exerciseEntriesApiSchemas.test.ts (45 tests) 13713ms sparkyfitness-server-1.7.3> ✓ Exercise entry API schemas (45) sparkyfitness-server-1.7.3> ✓ exercise snapshot modality (3) sparkyfitness-server-1.7.3> ✓ accepts a null modality and a snapshot from a pre-modality server 374ms sparkyfitness-server-1.7.3> ✓ superset_group (5) sparkyfitness-server-1.7.3> ✓ accepts null and omitted superset_group on session exercises 420ms sparkyfitness-server-1.7.3> ✓ requires superset_group on entry responses 783ms sparkyfitness-server-1.7.3> ✓ set duration (integer seconds) (2) sparkyfitness-server-1.7.3> ✓ accepts integer and null set durations 504ms sparkyfitness-server-1.7.3> ✓ set RIR (reps in reserve) (2) sparkyfitness-server-1.7.3> ✓ accepts 0-10 and null 814ms sparkyfitness-server-1.7.3> ✓ rejects values outside 0-10 (numeric(3,1) column) 643ms sparkyfitness-server-1.7.3> ✓ session location (2) sparkyfitness-server-1.7.3> ✓ trims the location and stores blank as null 382ms sparkyfitness-server-1.7.3> ✓ set distance (km) (3) sparkyfitness-server-1.7.3> ✓ accepts fractional, null, and omitted set distances on requests 562ms sparkyfitness-server-1.7.3> ✓ accepts distance on set responses and tolerates pre-distance servers omitting it 461ms sparkyfitness-server-1.7.3> ✓ completed_at (3) sparkyfitness-server-1.7.3> ✓ accepts ISO, null, and omitted completed_at on set requests 626ms sparkyfitness-server-1.7.3> ✓ requires completed_at on set responses 650ms sparkyfitness-server-1.7.3> ✓ is_pr (2) sparkyfitness-server-1.7.3> ✓ accepts boolean and omitted is_pr on set requests 385ms sparkyfitness-server-1.7.3> ✓ requires is_pr on set responses 461ms sparkyfitness-server-1.7.3> ✓ accepts a UUID exerciseId filter and rejects non-UUID values 369ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/chatbotToolsCaching.test.ts [queued] sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 2/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 425 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5219 passed | 310 skipped (5560) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 15.14s sparkyfitness-server-1.7.3> ✓ tests/chatbotToolsCaching.test.ts (1 test) 7ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 3/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 426 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5221 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 15.34s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 3/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 426 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5221 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 16.14s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 3/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 426 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5221 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 17.14s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 4/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 426 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5222 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 17.34s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 5/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 426 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5223 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 18.14s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 5/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 426 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5223 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 19.15s sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> ❯ tests/ouraService.test.ts 6/7 sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 426 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5224 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 19.34s sparkyfitness-server-1.7.3> ✓ tests/ouraService.test.ts (7 tests) 10052ms sparkyfitness-server-1.7.3> ✓ syncOuraData sync windows (4) sparkyfitness-server-1.7.3> ✓ manual sync uses a 7-day lookback window 2021ms sparkyfitness-server-1.7.3> ✓ scheduled sync uses a yesterday-to-today window 2006ms sparkyfitness-server-1.7.3> ✓ custom date range is passed through and heart rate uses UTC datetimes 2006ms sparkyfitness-server-1.7.3> ✓ syncOuraData resilience and bookkeeping (3) sparkyfitness-server-1.7.3> ✓ continues processing other datasets when one fetch fails 2011ms sparkyfitness-server-1.7.3> ✓ updates last_sync_at after a successful sync 2003ms sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Test Files 427 passed | 7 skipped (434) sparkyfitness-server-1.7.3> Tests 5225 passed | 310 skipped (5561) sparkyfitness-server-1.7.3> Start at 11:46:07 sparkyfitness-server-1.7.3> Duration 19.45s (transform 62%, import 28%, tests 10%, worker 1%) sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> Transform transforming modules took 349.21s · 62% of tracked time, re-done on every run sparkyfitness-server-1.7.3> persist transforms across runs with fsModuleCache: true sparkyfitness-server-1.7.3> learn more: https://vitest.dev/guide/improving-performance#caching-between-reruns sparkyfitness-server-1.7.3> sparkyfitness-server-1.7.3> checkPhase completed in 53 seconds sparkyfitness-server-1.7.3> Running phase: installPhase sparkyfitness-server-1.7.3> Running phase: fixupPhase sparkyfitness-server-1.7.3> shrinking RPATHs of ELF executables and libraries in /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3 sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/lightningcss-linux-arm64-gnu@1.33.0/node_modules/lightningcss-linux-arm64-gnu/lightningcss.linux-arm64-gnu.node sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/lightningcss-linux-x64-gnu@1.33.0/node_modules/lightningcss-linux-x64-gnu/lightningcss.linux-x64-gnu.node sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/@rolldown+binding-linux-x64-gnu@1.2.8/node_modules/@rolldown/binding-linux-x64-gnu/rolldown-binding.linux-x64-gnu.node sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/@rolldown+binding-linux-arm64-gnu@1.2.8/node_modules/@rolldown/binding-linux-arm64-gnu/rolldown-binding.linux-arm64-gnu.node sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/@esbuild+linux-arm64@0.28.1/node_modules/@esbuild/linux-arm64/bin/esbuild sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/hermes-compiler@250829098.0.17/node_modules/hermes-compiler/hermesc/linux64-bin/hermesc sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/@esbuild+linux-x64@0.28.1/node_modules/@esbuild/linux-x64/bin/esbuild sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> > sparkyfitnessfrontend@1.7.3 format:check /build/source/SparkyFitnessFrontend sparkyfitness-frontend-1.7.3> > prettier . --check sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> Checking formatting... sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/fb-dotslash@0.5.8/node_modules/fb-dotslash/bin/linux-musl.x86_64/dotslash sparkyfitness-server-1.7.3> shrinking /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/node_modules/.pnpm/fb-dotslash@0.5.8/node_modules/fb-dotslash/bin/linux-musl.aarch64/dotslash sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked sparkyfitness-server-1.7.3> checking for references to /build/ in /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3... sparkyfitness-frontend-1.7.3> .prettierignore.prettierrcAGENTS.mdCLAUDE.mdcomponents.jsoneslint.config.jsindex.htmlknip.jsoncpackage.jsonpublic/favicon.icopublic/images/chatbot.gifpublic/images/icons/icon-192x192.pngpublic/images/icons/icon-512x512.pngpublic/images/muscle-female.svgpublic/images/muscle-male.svgpublic/images/SparkyFitness.webppublic/locales/ar/translation.jsonpublic/locales/ca/translation.jsonpublic/locales/cs/translation.jsonpublic/locales/da/translation.jsonpublic/locales/de/translation.jsonpublic/locales/en/translation.jsonpublic/locales/es/translation.jsonpublic/locales/fi/translation.jsonpublic/locales/fr/translation.jsonpublic/locales/he/translation.jsonpublic/locales/hr/translation.jsonpublic/locales/hu/translation.jsonpublic/locales/id/translation.jsonpublic/locales/it/translation.jsonpublic/locales/ja/translation.jsonpublic/locales/kk/translation.jsonpublic/locales/ko/translation.jsonpublic/locales/lv/translation.jsonpublic/locales/nb-NO/translation.jsonpublic/locales/nl/translation.jsonpublic/locales/pl/translation.jsonpublic/locales/pt-BR/translation.jsonpublic/locales/pt/translation.jsonpublic/locales/ro/translation.jsonpublic/locales/ru/translation.jsonpublic/locales/sk/translation.jsonpublic/locales/sl/translation.jsonpublic/locales/sr/translation.jsonpublic/locales/sv/translation.jsonpublic/locales/ta/translation.jsonpublic/locales/te/translation.jsonpublic/locales/tr/translation.jsonpublic/locales/uk/translation.jsonpublic/locales/yue-Hant/translation.jsonpublic/locales/zh-Hans/translation.jsonpublic/locales/zh-Hant/translation.jsonpublic/manifest.jsonpublic/robots.txtpublic/videos/chatbot.mp4src/api/Admin/backup.tssrc/api/Admin/globalSettingsService.tssrc/api/Admin/oidcSettingsService.tssrc/api/Admin/userManagementService.test.tssrc/api/Admin/userManagementService.tssrc/api/AiConversions/aiConversionApi.tssrc/api/allergenPreferences.tssrc/api/api.tssrc/api/Auth/auth.tssrc/api/Chatbot/sparkyChatService.tssrc/api/CheckIn/checkInPhotoService.tssrc/api/CheckIn/checkInService.tssrc/api/CheckIn/moodService.tssrc/api/CheckIn/sleep.tssrc/api/Cycle/cycleService.tssrc/api/Diary/caffeineService.tssrc/api/Diary/dailySummaryService.tssrc/api/Diary/foodEntryService.tssrc/api/Diary/mealTypeService.tssrc/api/Diary/waterIntakteService.tssrc/api/Exercises/exerciseAlternatives.tssrc/api/Exercises/exerciseEntryService.tssrc/api/Exercises/exerciseSearchService.tssrc/api/Exercises/exerciseService.tssrc/api/Exercises/freeExerciseDB.tssrc/api/Exercises/workoutCoaching.tssrc/api/Exercises/workoutPlanTemplates.tssrc/api/Exercises/workoutPresets.tssrc/api/Fasting/fastingService.tssrc/api/Foods/customNutrients.tssrc/api/Foods/enhancedCustomFoodFormService.tssrc/api/Foods/favoritesService.tssrc/api/Foods/foodService.tssrc/api/Foods/mealPlanTemplate.tssrc/api/Foods/meals.tssrc/api/Foods/nutrionix.tssrc/api/Foods/openFoodFactsContributionService.tssrc/api/Foods/reviewService.tssrc/api/general.tssrc/api/Goals/goals.tssrc/api/Health/genericHealthService.tssrc/api/imageRequest.tssrc/api/Integrations/integrations.tssrc/api/keys/admin.tssrc/api/keys/ai.tssrc/api/keys/auth.tssrc/api/keys/checkin.tssrc/api/keys/dashboardLayouts.tssrc/api/keys/diary.tssrc/api/keys/exercises.tssrc/api/keys/fasting.tssrc/api/keys/general.tssrc/api/keys/goals.tssrc/api/keys/integrations.tssrc/api/keys/meals.tssrc/api/keys/onboarding.tssrc/api/keys/reports.tssrc/api/keys/review.tssrc/api/keys/settings.tssrc/api/keys/sleepScience.tssrc/api/Medications/medicationReportService.tssrc/api/Medications/medicationService.tssrc/api/Medications/symptomService.tssrc/api/Onboarding/onboarding.tssrc/api/Pregnancy/pregnancyService.tssrc/api/Reports/exerciseStatsService.tssrc/api/Reports/reportsService.tssrc/api/Settings/adaptiveTdeeService.tssrc/api/Settings/aiServiceSettingsService.tssrc/api/Settings/customCategoryService.tssrc/api/Settings/dashboardLayouts.tssrc/api/Settings/externalProviderService.tssrc/api/Settings/familyAccessService.tssrc/api/Settings/nutrientGoalPreferences.tssrc/api/Settings/nutrientPreferences.tssrc/api/Settings/openFoodFactsContributionsService.tssrc/api/Settings/passkey.tssrc/api/Settings/preferences.tssrc/api/Settings/profileService.tssrc/api/Settings/syncedDataService.tssrc/api/Settings/waterContainerService.tssrc/api/SleepScience/sleepScience.tssrc/App.tsxsrc/assets/cycle/icons/flow-heavy.svgsrc/assets/cycle/icons/flow-light.svgsrc/assets/cycle/icons/flow-medium.svgsrc/assets/cycle/icons/mood-calm.svgsrc/assets/cycle/icons/mood-happy.svgsrc/assets/cycle/icons/mood-irritable.svgsrc/assets/cycle/icons/mucus-eggwhite.svgsrc/assets/cycle/icons/product-cup.svgsrc/assets/cycle/icons/product-pad.svgsrc/assets/cycle/icons/product-tampon.svgsrc/assets/cycle/icons/symptom-cramps.svgsrc/assets/cycle/icons/symptom-fatigue.svgsrc/assets/cycle/icons/symptom-headache.svgsrc/assets/cycle/icons/symptom-nausea.svgsrc/assets/cycle/womb-week-08.svgsrc/assets/cycle/womb-week-20.svgsrc/assets/cycle/womb-week-36.svgsrc/components/AboutDialog.tsxsrc/components/ai/AskUserToolUI.tsxsrc/components/ai/ChatToolCategoriesSelector.tsxsrc/components/ai/FoodPhotoEstimateToolUI.tsxsrc/components/ai/GlobalOverrideBanner.tsxsrc/components/ai/ServiceForm.tsxsrc/components/ai/ServiceList.tsxsrc/components/ai/ServiceListItem.tsxsrc/components/ai/UserChatPreferences.tsxsrc/components/ai/UserServiceListItem.tsxsrc/components/AllergenBadges.tsxsrc/components/AnnouncementDialog.tsxsrc/components/AppSetup.tsxsrc/components/attachment.tsxsrc/components/BulkActionToolbar.tsxsrc/components/BulkDeleteDialog.tsxsrc/components/CalorieTargetBreakdown.tsxsrc/components/CsvImport/CsvFormatBar.tsxsrc/components/CsvImport/CsvFormatPreview.tsxsrc/components/CsvImport/CsvHeaderMappingDialog.tsxsrc/components/CsvImport/CsvImportResultPanel.tsxsrc/components/DayNavigator.tsxsrc/components/DraggableChatbotButton.tsxsrc/components/ExerciseActivityDetailsEditor.tsxsrc/components/ExerciseCharts/ActivityCadenceChart.tsxsrc/components/ExerciseCharts/ActivityElevationChart.tsxsrc/components/ExerciseCharts/ActivityHeartRateChart.tsxsrc/components/ExerciseCharts/ActivityHeartRateZoneChart.tsxsrc/components/ExerciseCharts/ActivityInterrogationFinder.tsxsrc/components/ExerciseCharts/ActivityPaceChart.tsxsrc/components/ExerciseCharts/ActivityStatsGrid.tsxsrc/components/ExerciseCharts/ActivityTelemetryList.tsxsrc/components/ExerciseCharts/BestSetRepRangeChart.tsxsrc/components/ExerciseCharts/CardioPRBadgesWidget.tsxsrc/components/ExerciseCharts/CardioSessionList.tsxsrc/components/ExerciseCharts/CardioVolumeIntervalChart.tsxsrc/components/ExerciseCharts/Estimated1RMTrendChart.tsxsrc/components/ExerciseCharts/ExerciseDashboardFilters.tsxsrc/components/ExerciseCharts/KeyStatsWidget.tsxsrc/components/ExerciseCharts/MatchedCoursesList.tsxsrc/components/ExerciseCharts/MaxWeightTrendChart.tsxsrc/components/ExerciseCharts/MuscleHeatmap.csssrc/components/ExerciseCharts/MuscleHeatmap.tsxsrc/components/ExerciseCharts/PrVisualizationWidget.tsxsrc/components/ExerciseCharts/RepsVsWeightChart.tsxsrc/components/ExerciseCharts/TimeUnderTensionChart.tsxsrc/components/ExerciseCharts/TrainingVolumeByMuscleGroupChart.tsxsrc/components/ExerciseCharts/VolumeTrendChart.tsxsrc/components/ExerciseCharts/WorkoutSessionBodyMap.csssrc/components/ExerciseCharts/WorkoutSessionBreakdown.tsxsrc/components/ExerciseHistoryDisplay.tsxsrc/components/Exercises/WorkoutGpsMap.tsxsrc/components/Exercises/WorkoutLapsTable.tsxsrc/components/FavoriteStarButton.tsxsrc/components/Foods/AliasChipInput.tsxsrc/components/Foods/CustomNutrientDialog.tsxsrc/components/FoodSearch/BarcodeScanner.tsxsrc/components/FoodSearch/BarcodeScannerDialog.tsxsrc/components/FoodSearch/CustomFoodForm.tsxsrc/components/FoodSearch/FoodFormDialog.tsxsrc/components/FoodSearch/FoodImagePicker.tsxsrc/components/FoodSearch/FoodResultCard.tsxsrc/components/FoodSearch/FoodSearch.tsxsrc/components/FoodSearch/FoodSearchDialog.tsxsrc/components/FoodSearch/NutrientFormGrid.tsxsrc/components/FoodSearch/NutrientGrid.tsxsrc/components/FoodSearch/ProviderNutrientViewer.tsxsrc/components/FoodSearch/ProviderVerifiedBadge.tsxsrc/components/FoodSearch/VariantCard.tsxsrc/components/FoodUnitSelector.tsxsrc/components/FoodUnitSelector/AiEstimateSection.tsxsrc/components/GitHubSponsorButton.tsxsrc/components/GitHubStarCounter.tsxsrc/components/GlobalNotificationIcon.tsxsrc/components/GlobalSyncButton.tsxsrc/components/HeaderLinkPill.tsxsrc/components/Health/DailyHealthMetricsCard.tsxsrc/components/Health/IntradaySamplesChart.tsxsrc/components/ImageLightbox.tsxsrc/components/LanguageHandler.tsxsrc/components/LinkedMealPreviewDialog.tsxsrc/components/markdown-text.tsxsrc/components/MealBuilder.tsxsrc/components/MealPercentageManager.tsxsrc/components/MonthCalendar.tsxsrc/components/NewReleaseDialog.tsxsrc/components/NumericInput.tsxsrc/components/OidcCallback.tsxsrc/components/Onboarding/CalculationSettings.tsxsrc/components/Onboarding/DietApproach.tsxsrc/components/Onboarding/FoodSourcesStep.tsxsrc/components/Onboarding/NutrientGoals.tsxsrc/components/Onboarding/OnBoarding.tsxsrc/components/Onboarding/OnboardingDialog.tsxsrc/components/Onboarding/OnBoardingForm.tsxsrc/components/Onboarding/OnBoardingSteps.tsxsrc/components/Onboarding/OptionButton.tsxsrc/components/Onboarding/PersonalPlan.tsxsrc/components/Onboarding/PersonalPlanHeader.tsxsrc/components/PasswordToggle.tsxsrc/components/ProfileSwitcher.tsxsrc/components/reasoning.tsxsrc/components/ThemeToggle.tsxsrc/components/thread.tsxsrc/components/tool-fallback.tsxsrc/components/tooltip-icon-button.tsxsrc/components/TooltipWarning.tsxsrc/components/ui/accordion.tsxsrc/components/ui/alert-dialog.tsxsrc/components/ui/alert.tsxsrc/components/ui/avatar.tsxsrc/components/ui/badge.tsxsrc/components/ui/button.tsxsrc/components/ui/calendar.tsxsrc/components/ui/card.tsxsrc/components/ui/checkbox.tsxsrc/components/ui/collapsible.tsxsrc/components/ui/ConfirmationDialog.tsxsrc/components/ui/DataTable.tsxsrc/components/ui/dataTableFeatures.tssrc/components/ui/DataTablePagination.tsxsrc/components/ui/DateRangeWithPresets.tsxsrc/components/ui/dialog.tsxsrc/components/ui/dropdown-menu.tsxsrc/components/ui/input.tsxsrc/components/ui/label.tsxsrc/components/ui/MarkdownEditor.tsxsrc/components/ui/MarkdownView.tsxsrc/components/ui/popover.tsxsrc/components/ui/progress.tsxsrc/components/ui/radio-group.tsxsrc/components/ui/select.tsxsrc/components/ui/separator.tsxsrc/components/ui/skeleton.tsxsrc/components/ui/slider.tsxsrc/components/ui/switch.tsxsrc/components/ui/table.tsxsrc/components/ui/tabs.tsxsrc/components/ui/TagInput.tsxsrc/components/ui/textarea.tsxsrc/components/ui/toast.tsxsrc/components/ui/toaster.tsxsrc/components/ui/toggle.tsxsrc/components/ui/tooltip.tsxsrc/components/ui/UnitInput.tsxsrc/components/widgets/WidgetFrame.tsxsrc/components/widgets/WidgetGrid.tsxsrc/components/ZoomableChart.tsxsrc/constants/dietTemplates.tssrc/constants/excerciseWorkoutSetTypes.tssrc/constants/exercises.tssrc/constants/fastingPresets.tssrc/constants/foodForm.tssrc/constants/goals.tssrc/constants/healthDataImport.tssrc/constants/integrationConstants.tssrc/constants/nutrients.tssrc/constants/reports.tssrc/constants/sleep.tssrc/constants/standardNutrientAliases.tssrc/contexts/ActiveUserContext.tsxsrc/contexts/ChatbotVisibilityContext.tsxsrc/contexts/ChatToolCategoriesContext.tsxsrc/contexts/PreferencesContext.tsxsrc/contexts/ThemeContext.tsxsrc/contexts/WaterContainerContext.tsxsrc/hooks/Admin/useBackups.tssrc/hooks/Admin/useOidcProvider.tssrc/hooks/Admin/useSettings.tssrc/hooks/Admin/useUsers.tssrc/hooks/AI/useAIServiceSettings.tssrc/hooks/AI/useGlobalAIServiceSettings.tssrc/hooks/AI/useSparkyChat.tssrc/hooks/AI/useTestAIServiceConnection.tssrc/hooks/AI/useUserAiConfigAllowed.tssrc/hooks/Auth/useAuth.tssrc/hooks/CheckIn/useCheckIn.tssrc/hooks/CheckIn/useCheckInLogic.tssrc/hooks/CheckIn/useCheckInPhotos.tssrc/hooks/CheckIn/useHealthDataImport.tssrc/hooks/CheckIn/useMood.tssrc/hooks/CheckIn/useSleep.tssrc/hooks/Diary/useCaffeineKinetics.tssrc/hooks/Diary/useDailyProgress.tssrc/hooks/Diary/useDashboardLayout.tssrc/hooks/Diary/useEntryImageDraft.tssrc/hooks/Diary/useFoodEntries.tssrc/hooks/Diary/useMealTypes.tssrc/hooks/Diary/useWaterIntake.tssrc/hooks/Exercises/useAddCustomExerciseForm.tssrc/hooks/Exercises/useDeleteExercise.tssrc/hooks/Exercises/useEditExerciseForm.tssrc/hooks/Exercises/useExerciseAlternatives.tssrc/hooks/Exercises/useExerciseEntries.tssrc/hooks/Exercises/useExerciseFilter.tssrc/hooks/Exercises/useExerciseHistoryImport.tssrc/hooks/Exercises/useExerciseImport.tssrc/hooks/Exercises/useExercises.tssrc/hooks/Exercises/useExerciseSearch.tssrc/hooks/Exercises/useExerciseSearchHook.tssrc/hooks/Exercises/useFitImport.tssrc/hooks/Exercises/useFreeExerciseDB.tssrc/hooks/Exercises/useWorkoutCoaching.tssrc/hooks/Exercises/useWorkoutPlanAssignments.tsxsrc/hooks/Exercises/useWorkoutPlans.tssrc/hooks/Exercises/useWorkoutPresetForm.tssrc/hooks/Exercises/useWorkoutPresets.tssrc/hooks/Fasting/useFasting.tssrc/hooks/Foods/useAiUnitConversion.tssrc/hooks/Foods/useAllProvidersFoodSearch.tssrc/hooks/Foods/useCustomNutrients.tssrc/hooks/Foods/useFavorites.tssrc/hooks/Foods/useFoodDatabaseManager.tssrc/hooks/Foods/useFoodForm.tsxsrc/hooks/Foods/useFoodPhotoEstimate.tssrc/hooks/Foods/useFoods.tssrc/hooks/Foods/useFoodsV2.tssrc/hooks/Foods/useFoodVariants.tssrc/hooks/Foods/useImageLightbox.tssrc/hooks/Foods/useMealplanTemplate.tssrc/hooks/Foods/useMeals.tssrc/hooks/Foods/useNutrionix.tssrc/hooks/Foods/useOpenFoodFactsContribution.tssrc/hooks/Foods/useReview.tssrc/hooks/Foods/useUnitConversion.tssrc/hooks/Goals/useAutoCalculateUserData.tssrc/hooks/Goals/useGoals.tssrc/hooks/Goals/useNutrientAutoCalculate.tssrc/hooks/Integrations/useIntegrations.tssrc/hooks/Integrations/useSyncAll.tssrc/hooks/Onboarding/useOnboarding.tssrc/hooks/Reports/useExerciseStats.tssrc/hooks/Reports/useReports.tssrc/hooks/Settings/useAccountSecurity.tssrc/hooks/Settings/useApiKeys.tssrc/hooks/Settings/useCustomCategories.tssrc/hooks/Settings/useExternalProviderSettings.tssrc/hooks/Settings/useFamilyAccess.tssrc/hooks/Settings/useNutrientGoalPreferences.tssrc/hooks/Settings/useNutrientPreferences.tssrc/hooks/Settings/useOpenFoodFactsContributions.tssrc/hooks/Settings/usePasskeys.tssrc/hooks/Settings/usePreferences.tssrc/hooks/Settings/useProfile.tssrc/hooks/Settings/useSyncedData.tssrc/hooks/Settings/useWaterContainers.tssrc/hooks/SleepScience/useSleepScience.tssrc/hooks/use-mobile.tsxsrc/hooks/use-toast.tssrc/hooks/use-toggle.tssrc/hooks/useAllergenPreferences.tssrc/hooks/useAuth.tsxsrc/hooks/useBulkSelection.tssrc/hooks/useCsvFormat.tssrc/hooks/useCycle.tssrc/hooks/useDebounce.tsxsrc/hooks/useGeneralQueries.tssrc/hooks/useGenericHealth.tssrc/hooks/useImageSlideshow.tssrc/hooks/useInjectionSiteSelection.tssrc/hooks/useInvalidateKeys.tssrc/hooks/useMedicationDisplayPreferences.tssrc/hooks/useMedications.tssrc/hooks/usePregnancy.tssrc/hooks/useSymptoms.tssrc/hooks/useSyncAllergens.tssrc/i18n.tssrc/index.csssrc/layouts/AddComp.tsxsrc/layouts/MainLayout.tsxsrc/lib/auth-client.tssrc/lib/scannerEngines/EngineInterface.tssrc/lib/scannerEngines/Html5QrcodeEngine.tssrc/lib/scannerEngines/QuaggaEngine.tssrc/lib/scannerEngines/ZxingEngine.tssrc/lib/sleep/whoop-colors.tssrc/lib/utils.tssrc/main.tsxsrc/pages/Admin/Admin.tsxsrc/pages/Admin/AuthenticationSettings.tsxsrc/pages/Admin/BackupListDialog.tsxsrc/pages/Admin/BackupSettings.tsxsrc/pages/Admin/BackupSettingsForm.tsxsrc/pages/Admin/backupTimeUtils.tssrc/pages/Admin/GlobalAISettings.tsxsrc/pages/Admin/GlobalProviderSettings.tsxsrc/pages/Admin/OidcProviderDialog.tsxsrc/pages/Admin/OidcSettings.tsxsrc/pages/Admin/OpenFoodFactsAdminContributionSettings.tsxsrc/pages/Admin/UserManagement.tsxsrc/pages/Auth/Auth.tsxsrc/pages/Auth/DemoDisclaimerDialog.tsxsrc/pages/Auth/ForgotPassword.tsxsrc/pages/Auth/MagicLinkRequestDialog.tsxsrc/pages/Auth/MfaChallenge.tsxsrc/pages/Auth/ResetPassword.tsxsrc/pages/Chat/SparkyChat.tsxsrc/pages/Chat/SparkyChatInterface.tsxsrc/pages/CheckIn/CheckIn.tsxsrc/pages/CheckIn/CheckInForm.tsxsrc/pages/CheckIn/CheckInPhotos.tsxsrc/pages/CheckIn/CheckInTopRow.tsxsrc/pages/CheckIn/HealthDataImportCSV.tsxsrc/pages/CheckIn/HomeDashboardFasting.tsxsrc/pages/CheckIn/MoodMeter.tsxsrc/pages/CheckIn/RecentActivity.tsxsrc/pages/CheckIn/SleepEntrySection.tsxsrc/pages/CheckIn/SleepTimelineEditor.tsxsrc/pages/Cycle/care/AppointmentsPanel.tsxsrc/pages/Cycle/care/ArticleLibrary.tsxsrc/pages/Cycle/care/BirthPrep.tsxsrc/pages/Cycle/care/CareHub.tsxsrc/pages/Cycle/care/DoctorReport.tsxsrc/pages/Cycle/CorrelationCards.tsxsrc/pages/Cycle/CycleBarGlyph.tsxsrc/pages/Cycle/CycleCalendar.tsxsrc/pages/Cycle/CycleHistoryList.tsxsrc/pages/Cycle/CycleIcon.tsxsrc/pages/Cycle/CycleInsights.tsxsrc/pages/Cycle/CycleOnboarding.tsxsrc/pages/Cycle/CyclePage.tsxsrc/pages/Cycle/CycleRing.tsxsrc/pages/Cycle/CycleSymptomPicker.tsxsrc/pages/Cycle/CycleToday.tsxsrc/pages/Cycle/DailyLogPanel.tsxsrc/pages/Cycle/pregnancy/BabyGrowthView.tsxsrc/pages/Cycle/pregnancy/BumpPhotoJournal.tsxsrc/pages/Cycle/pregnancy/ContractionTimer.tsxsrc/pages/Cycle/pregnancy/FoodMedSafetySearch.tsxsrc/pages/Cycle/pregnancy/KickCounter.tsxsrc/pages/Cycle/pregnancy/PregnancySetup.tsxsrc/pages/Cycle/pregnancy/PregnancyToday.tsxsrc/pages/Cycle/pregnancy/pregnancyTypes.tssrc/pages/Cycle/pregnancy/VitalsCard.tsxsrc/pages/Cycle/pregnancy/WeekBanner.tsxsrc/pages/Cycle/pregnancy/WeeklyChecklist.tsxsrc/pages/Cycle/pregnancy/WombScene.tsxsrc/pages/Cycle/ttc/BbtStatusCard.tsxsrc/pages/Cycle/ttc/CervicalPositionPicker.tsxsrc/pages/Cycle/ttc/FertileWindowChart.tsxsrc/pages/Cycle/ttc/FertilityCard.tsxsrc/pages/Cycle/ttc/IntercourseLog.tsxsrc/pages/Cycle/ttc/TestQuickLog.tsxsrc/pages/Cycle/ttc/TwoWeekWait.tsxsrc/pages/Diary/AdaptiveSuggestionNotice.tsxsrc/pages/Diary/CaffeineCard.tsxsrc/pages/Diary/ConvertToMealDialog.tsxsrc/pages/Diary/CopyFamilyEntryDialog.tsxsrc/pages/Diary/CopyFoodEntryDialog.tsxsrc/pages/Diary/DailyProgress.tsxsrc/pages/Diary/DailyProgressSkeleton.tsxsrc/pages/Diary/Diary.tsxsrc/pages/Diary/DiaryWidgetGrid.tsxsrc/pages/Diary/EditExerciseDatabaseDialog.tsxsrc/pages/Diary/EditExerciseEntryDialog.tsxsrc/pages/Diary/EditFoodEntryDialog.tsxsrc/pages/Diary/EditMealFoodEntryDialog.tsxsrc/pages/Diary/EnergyProgressCircle.tsxsrc/pages/Diary/ExerciseCard.tsxsrc/pages/Diary/ExerciseEntryDisplay.tsxsrc/pages/Diary/ExercisePlaybackModal.tsxsrc/pages/Diary/ExercisePresetEntryDisplay.tsxsrc/pages/Diary/FoodDiaryImportCSV.tsxsrc/pages/Diary/FoodEntryImageOverride.tsxsrc/pages/Diary/LogExerciseEntryDialog.tsxsrc/pages/Diary/LogMealDialog.tsxsrc/pages/Diary/MealCard.tsxsrc/pages/Diary/MiniNutritionTrends.tsxsrc/pages/Diary/NutrientsGrid.tsxsrc/pages/Diary/NutritionSummaryCard.tsxsrc/pages/Diary/useFoodPhotoIngredientDraft.tssrc/pages/Diary/useWorkoutPlaybackGuided.tssrc/pages/Diary/WaterIntake.tsxsrc/pages/Diary/WorkoutFeedbackPanel.tsxsrc/pages/Diary/WorkoutPlaybackDialogs.tsxsrc/pages/Diary/WorkoutPlaybackExercisesList.tsxsrc/pages/Diary/WorkoutPlaybackFinishDialog.tsxsrc/pages/Diary/WorkoutPlaybackGuidedCard.tsxsrc/pages/Diary/WorkoutPlaybackIntervalHud.tsxsrc/pages/Diary/WorkoutPlaybackPage.tsxsrc/pages/Diary/WorkoutPlaybackSetRow.tsxsrc/pages/Diary/WorkoutPlaybackSummary.tsxsrc/pages/Errors/ChartErrorFallback.tsxsrc/pages/Errors/ErrorComponents.tsxsrc/pages/Errors/NotFound.tsxsrc/pages/Exercises/AddCustomExerciseForm.tsxsrc/pages/Exercises/AddExerciseDialog.tsxsrc/pages/Exercises/AddWorkoutPlanDialog.tsxsrc/pages/Exercises/BodyMapFilter.csssrc/pages/Exercises/BodyMapFilter.tsxsrc/pages/Exercises/CardioLog.tsxsrc/pages/Exercises/DeleteExerciseDialog.tsxsrc/pages/Exercises/EditExerciseDialog.tsxsrc/pages/Exercises/ExerciseAlternativesPanel.tsxsrc/pages/Exercises/ExerciseEntryHistoryImportCSV.tsxsrc/pages/Exercises/ExerciseImportCSV.tsxsrc/pages/Exercises/ExerciseImportFit.tsxsrc/pages/Exercises/Exercises.tsxsrc/pages/Exercises/ExerciseSearch.tsxsrc/pages/Exercises/ExerciseSearchListItem.tsxsrc/pages/Exercises/SetHeader.tsxsrc/pages/Exercises/SortableExerciseItem.tsxsrc/pages/Exercises/SortableWorkoutSet.tsxsrc/pages/Exercises/WorkoutPlansManager.tsxsrc/pages/Exercises/WorkoutPresetForm.tsxsrc/pages/Exercises/WorkoutPresetSelector.tsxsrc/pages/Exercises/WorkoutPresetsManager.tsxsrc/pages/Fasting/EditFastDialog.tsxsrc/pages/Fasting/EndFastDialog.tsxsrc/pages/Fasting/FastingTimerRing.tsxsrc/pages/Fasting/FastingZoneBar.tsxsrc/pages/Foods/DeleteFoodDialog.tsxsrc/pages/Foods/FoodImportFromCSV.tsxsrc/pages/Foods/Foods.tsxsrc/pages/Foods/MealManagement.tsxsrc/pages/Foods/MealPlanCalendar.tsxsrc/pages/Foods/MealPlanTemplateForm.tsxsrc/pages/Foods/MealUnitSelector.tsxsrc/pages/Foods/OpenFoodFactsContributionDialog.tsxsrc/pages/Goals/AutoCalculateToolbar.tsxsrc/pages/Goals/DailyGoals.tsxsrc/pages/Goals/EditGoalsForToday.tsxsrc/pages/Goals/GoalPresetDialog.tsxsrc/pages/Goals/GoalPresetsSection.tsxsrc/pages/Goals/Goals.tsxsrc/pages/Goals/GoalsContent.tsxsrc/pages/Goals/NutrientAutoCalculate.tsxsrc/pages/Goals/nutrientAutoCalculateHelpers.tssrc/pages/Goals/NutrientInput.tsxsrc/pages/Goals/ResetOnboarding.tsxsrc/pages/Goals/WaterAndExerciseFields.tsxsrc/pages/Goals/WeeklyGoalPlanDialog.tsxsrc/pages/Goals/WeeklyGoalPlansSection.tsxsrc/pages/Index.tsxsrc/pages/Integrations/CallbackStatus.tsxsrc/pages/Integrations/CorosCallback.tsxsrc/pages/Integrations/FitbitCallback.tsxsrc/pages/Integrations/GoogleHealthCallback.tsxsrc/pages/Integrations/OuraCallback.tsxsrc/pages/Integrations/PolarCallback.tsxsrc/pages/Integrations/StravaCallback.tsxsrc/pages/Integrations/WithingsCallback.tsxsrc/pages/Medications/AddMedicationDialog.tsxsrc/pages/Medications/FastingTimer.tsxsrc/pages/Medications/Glp1Coach.tsxsrc/pages/Medications/Glp1InventoryManager.tsxsrc/pages/Medications/Glp1LogInjection.tsxsrc/pages/Medications/Glp1QuickLogDialog.tsxsrc/pages/Medications/Glp1RecentInjections.tsxsrc/pages/Medications/Glp1TitrationManager.tsxsrc/pages/Medications/GlpDailyCheckIn.tsxsrc/pages/Medications/InjectionSiteBodyMap.tsxsrc/pages/Medications/InjectionSitePicker.tsxsrc/pages/Medications/InjectionSiteSettings.tsxsrc/pages/Medications/MedicationDisclaimer.tsxsrc/pages/Medications/MedicationLogCalendar.tsxsrc/pages/Medications/Medications.tsxsrc/pages/Medications/medicationUtils.tssrc/pages/Medications/NutrientPicker.tsxsrc/pages/Medications/ScheduleManager.tsxsrc/pages/Medications/SymptomDashboard.tsxsrc/pages/Medications/SymptomHistoryCalendar.tsxsrc/pages/Medications/SymptomHistoryList.tsxsrc/pages/Medications/SymptomLogForm.tsxsrc/pages/Medications/TodayMedications.tsxsrc/pages/Reports/ActivityReportLapTable.tsxsrc/pages/Reports/ActivityReportMap.tsxsrc/pages/Reports/ActivityReportVisualizer.tsxsrc/pages/Reports/BodyBatteryCard.tsxsrc/pages/Reports/BodyBatteryGauge.tsxsrc/pages/Reports/CustomCategoryReport.tsxsrc/pages/Reports/ExerciseReportsDashboard.tsxsrc/pages/Reports/ExerciseVarietyScore.tsxsrc/pages/Reports/FastingReport.tsxsrc/pages/Reports/HRVCard.tsxsrc/pages/Reports/HydrationTrendChart.tsxsrc/pages/Reports/MeasurementChartsGrid.tsxsrc/pages/Reports/MedicationLogTable.tsxsrc/pages/Reports/MedicationReports.tsxsrc/pages/Reports/MoodChart.tsxsrc/pages/Reports/MuscleGroupRecoveryTracker.tsxsrc/pages/Reports/NutritionChartsGrid.tsxsrc/pages/Reports/NutritionPeriodSummary.tsxsrc/pages/Reports/PrProgressionChart.tsxsrc/pages/Reports/Reports.tsxsrc/pages/Reports/ReportsControls.tsxsrc/pages/Reports/ReportsTables.tsxsrc/pages/Reports/RespirationCard.tsxsrc/pages/Reports/respirationMetrics.tssrc/pages/Reports/SetPerformanceAnalysisChart.tsxsrc/pages/Reports/SleepAnalyticsCharts.tsxsrc/pages/Reports/SleepAnalyticsTable.tsxsrc/pages/Reports/SleepHeartRateCard.tsxsrc/pages/Reports/SleepReport.tsxsrc/pages/Reports/SleepRespirationCard.tsxsrc/pages/Reports/SleepScience/ChronotypeCard.tsxsrc/pages/Reports/SleepScience/EnergySchedule.tsxsrc/pages/Reports/SleepScience/SleepDebtHistory.tsxsrc/pages/Reports/SleepScience/SleepDebtRing.tsxsrc/pages/Reports/SleepScience/SleepNeedBreakdown.tsxsrc/pages/Reports/SleepScience/SleepScienceSection.tsxsrc/pages/Reports/SleepStageChart.tsxsrc/pages/Reports/SleepSummaryCard.tsxsrc/pages/Reports/SpO2Card.tsxsrc/pages/Reports/StressChart.tsxsrc/pages/Reports/WeeklyAlcoholCard.tsxsrc/pages/Reports/WorkoutHeatmap.tsxsrc/pages/Reports/WorkoutReportVisualizer.tsxsrc/pages/Settings/AccountSecurity.tsxsrc/pages/Settings/AddExternalProviderForm.tsxsrc/pages/Settings/AIServiceSettings.tsxsrc/pages/Settings/AllergenSettings.tsxsrc/pages/Settings/ApiSettings.tsxsrc/pages/Settings/CalculationSettings.tsxsrc/pages/Settings/CustomCategoryManager.tsxsrc/pages/Settings/CustomNutrientsSettings.tsxsrc/pages/Settings/CycleSettings.tsxsrc/pages/Settings/DataImportSettings.tsxsrc/pages/Settings/DataManagementSettings.tsxsrc/pages/Settings/DeleteMealTypeDialog.tsxsrc/pages/Settings/DevloperResources.tsxsrc/pages/Settings/EditProviderForm.tsxsrc/pages/Settings/ExternalProviderList.tsxsrc/pages/Settings/ExternalProviderSettings.tsxsrc/pages/Settings/FamilyAccessManager.tsxsrc/pages/Settings/GarminConnectSettings.tsxsrc/pages/Settings/GuidedWorkoutSettings.tsxsrc/pages/Settings/MealTypeManager.tsxsrc/pages/Settings/MFASettings.tsxsrc/pages/Settings/NutrientDisplaySettings.tsxsrc/pages/Settings/NutrientGoalDirectionSettings.tsxsrc/pages/Settings/OpenFoodFactsContributionSettingsCard.tsxsrc/pages/Settings/PasskeySettings.tsxsrc/pages/Settings/PreferenceSettings.tsxsrc/pages/Settings/ProfileFormContent.tsxsrc/pages/Settings/ProfileInformation.tsxsrc/pages/Settings/ProviderCard.tsxsrc/pages/Settings/ProviderSpecificFields.tsxsrc/pages/Settings/SettingsPage.tsxsrc/pages/Settings/SyncRangeDialog.tsxsrc/pages/Settings/TimezoneSelect.tsxsrc/pages/Settings/WaterContainerManager.tsxsrc/pages/Settings/WaterTrackingSettings.tsxsrc/schemas/form/AiServiceSettings.form.zod.tssrc/services/bmrService.tssrc/services/bodyCompositionService.tssrc/services/nutrientCalculationService.tssrc/tests/api/api.test.tssrc/tests/api/dailySummaryRange.test.tssrc/tests/api/enhancedCustomFoodFormService.test.tssrc/tests/api/externalProviderService.test.tssrc/tests/api/waterIntakeLogDelete.test.tssrc/tests/components/adaptiveTdeeI18n.test.tssrc/tests/components/AddMedicationDialog.test.tsxsrc/tests/components/AiEstimateSection.test.tsxsrc/tests/components/AIServiceSettings.test.tsxsrc/tests/components/AskUserToolUI.test.tsxsrc/tests/components/BackupListDialog.test.tsxsrc/tests/components/CaffeineCard.test.tsxsrc/tests/components/CalorieTargetBreakdown.test.tsxsrc/tests/components/CardioLog.test.tsxsrc/tests/components/CardioSessionList.test.tsxsrc/tests/components/CheckInForm.test.tsxsrc/tests/components/CsvFormatBar.test.tsxsrc/tests/components/CsvFormatPreview.test.tsxsrc/tests/components/CustomFoodForm.test.tsxsrc/tests/components/CustomFoodFormContribution.test.tsxsrc/tests/components/DailyHealthMetricsCard.test.tsxsrc/tests/components/DeleteMealTypeDialog.test.tsxsrc/tests/components/EditExerciseEntryDialog.test.tsxsrc/tests/components/EditFoodEntryDialog.test.tsxsrc/tests/components/EditProviderForm.test.tsxsrc/tests/components/ErrorComponents.test.tsxsrc/tests/components/ExerciseCharts/ActivityHeartRateZoneChart.test.tsxsrc/tests/components/ExerciseCharts/KeyStatsWidget.test.tsxsrc/tests/components/ExerciseCharts/MuscleHeatmap.test.tsxsrc/tests/components/ExerciseCharts/WorkoutSessionBreakdown.test.tsxsrc/tests/components/ExerciseEntryDisplay.test.tsxsrc/tests/components/ExerciseHistoryDisplay.test.tsxsrc/tests/components/ExercisePlaybackModal.test.tsxsrc/tests/components/ExternalProviderList.test.tsxsrc/tests/components/FavoriteStarButton.test.tsxsrc/tests/components/FoodResultCard.test.tsxsrc/tests/components/Foods.test.tsxsrc/tests/components/FoodUnitSelector.test.tsxsrc/tests/components/GlobalProviderSettings.test.tsxsrc/tests/components/Glp1Coach.test.tsxsrc/tests/components/GuidedWorkoutSettings.test.tsxsrc/tests/components/HydrationTrendChart.test.tsxsrc/tests/components/ImageLightbox.test.tsxsrc/tests/components/MarkdownEditor.test.tsxsrc/tests/components/MarkdownView.test.tsxsrc/tests/components/MealBuilder.test.tsxsrc/tests/components/MealManagement.test.tsxsrc/tests/components/MealPlanCalendar.test.tsxsrc/tests/components/MedicationReports.test.tsxsrc/tests/components/NumericInput.test.tsxsrc/tests/components/NutrientGoalDirectionSettings.test.tsxsrc/tests/components/NutrientPicker.test.tssrc/tests/components/NutrientPickerPortal.test.tsxsrc/tests/components/NutritionPeriodSummary.test.tsxsrc/tests/components/NutritionSummaryCard.test.tsxsrc/tests/components/OpenFoodFactsContributionDialog.test.tsxsrc/tests/components/OpenFoodFactsContributionSettings.test.tsxsrc/tests/components/RecentActivity.test.tsxsrc/tests/components/ReportsTables.test.tsxsrc/tests/components/ServiceForm.test.tsxsrc/tests/components/SleepEntrySection.test.tsxsrc/tests/components/SortableExerciseItem.test.tsxsrc/tests/components/TagInput.test.tsxsrc/tests/components/ThreadTokenUsage.test.tsxsrc/tests/components/TodayMedications.test.tssrc/tests/components/VariantCard.test.tsxsrc/tests/components/WaterContainerManager.test.tsxsrc/tests/components/WaterIntake.test.tsxsrc/tests/components/WeeklyAlcoholCard.test.tsxsrc/tests/components/WorkoutHeatmap.test.tsxsrc/tests/components/WorkoutPlaybackAdaptive.test.tsxsrc/tests/components/WorkoutPlaybackGuided.test.tsxsrc/tests/components/WorkoutPlaybackIntervalHudGuided.test.tsxsrc/tests/components/WorkoutPlaybackPage.test.tsxsrc/tests/components/WorkoutPlaybackRamp.test.tsxsrc/tests/components/WorkoutPresetsManager.test.tsxsrc/tests/contexts/ChatbotVisibilityContext.test.tsxsrc/tests/contexts/ChatToolCategoriesContext.test.tsxsrc/tests/contracts/diaryWidgetLayoutCoverage.test.tssrc/tests/contracts/nutrientColumnCoverage.test.tssrc/tests/hooks/buildCheckInMeasurementsPayload.test.tssrc/tests/hooks/foodEntryInvalidation.test.tsxsrc/tests/hooks/useAddCustomExerciseForm.test.tsxsrc/tests/hooks/useAllProvidersFoodSearch.test.tsxsrc/tests/hooks/useAuth.isDemo.test.tsxsrc/tests/hooks/useBackups.test.tsxsrc/tests/hooks/useCalculatedBMR.test.tsxsrc/tests/hooks/useDatabaseFoodSearchQuery.test.tsxsrc/tests/hooks/useExternalProviderSettings.openFoodFacts.test.tsxsrc/tests/hooks/useFoodForm.test.tsxsrc/tests/hooks/useImageSlideshow.test.tssrc/tests/hooks/useMealsFavoritesInvalidation.test.tsxsrc/tests/hooks/useOnboarding.test.tsxsrc/tests/hooks/useUnitConversion.test.tsxsrc/tests/hooks/useWaterIntake.test.tsxsrc/tests/hooks/useWorkoutPlanAssignments.test.tsxsrc/tests/hooks/useWorkoutPresetForm.test.tsxsrc/tests/hooks/useWorkoutPresets.test.tsxsrc/tests/i18n/exerciseDisplayLabels.test.tssrc/tests/i18n/healthMetricLabels.test.tssrc/tests/mocks/reactI18next.tssrc/tests/mocks/speechSynthesisMock.tssrc/tests/pages/Admin/OidcProviderDialog.test.tsxsrc/tests/pages/DailyGoals.test.tsxsrc/tests/pages/Diary/useFoodPhotoIngredientDraft.test.tsxsrc/tests/pages/Diary/WorkoutFeedbackPanel.test.tsxsrc/tests/pages/Exercises/ExerciseAlternativesPanel.test.tsxsrc/tests/pages/MoodMeter.test.tsxsrc/tests/pages/Reports/MuscleGroupRecoveryTracker.test.tsxsrc/tests/services/aiServiceSettingsService.test.tssrc/tests/services/bodyCompositionService.test.tssrc/tests/services/onboardingApi.test.tssrc/tests/services/stressDataParser.test.tssrc/tests/services/validateProvider.test.tssrc/tests/setupTests.tssrc/tests/stubs/betterAuth.tssrc/tests/stubs/reactMarkdown.tsxsrc/tests/stubs/remarkGfm.tssrc/tests/test-utils.tsxsrc/tests/utils/activityReportUtil.test.tssrc/tests/utils/addSupplementTotals.test.tssrc/tests/utils/aiServiceUtils.test.tssrc/tests/utils/alcoholNutritionCalculations.test.tssrc/tests/utils/backupTimeUtils.test.tssrc/tests/utils/caffeineNutritionCalculations.test.tssrc/tests/utils/calculateBasePlan.test.tssrc/tests/utils/calorieCalculations.test.tssrc/tests/utils/chartUtils.test.tssrc/tests/utils/chunkRecovery.test.tssrc/tests/utils/collectNutrientsToProvision.test.tssrc/tests/utils/countableForms.test.tssrc/tests/utils/csvFormat.test.tssrc/tests/utils/csvValue.test.tssrc/tests/utils/dailyHealthMetrics.test.tssrc/tests/utils/dashboardLayout.test.tssrc/tests/utils/dedupeAppend.test.tssrc/tests/utils/exerciseAlternatives.test.tssrc/tests/utils/exerciseTaxonomy.test.tssrc/tests/utils/exerciseTrendUtils.test.tssrc/tests/utils/filterMedsBySubtype.test.tssrc/tests/utils/foodImages.test.tssrc/tests/utils/foodPhotoEstimateWeb.test.tssrc/tests/utils/foodProviderLabels.test.tssrc/tests/utils/foodSearch.test.tssrc/tests/utils/formatTimeInZoneDstGap.test.tssrc/tests/utils/generateClientId.test.tssrc/tests/utils/guidedWorkoutPreferences.test.tssrc/tests/utils/guidedWorkoutSpeech.test.tssrc/tests/utils/healthDataImport.test.tssrc/tests/utils/hydrationExample.test.tssrc/tests/utils/imagePickerItems.test.tssrc/tests/utils/landingLists.test.tssrc/tests/utils/languageUtils.test.tssrc/tests/utils/macroFields.test.tssrc/tests/utils/monthGrid.test.tssrc/tests/utils/moodUtils.test.tssrc/tests/utils/muscleBodyMap.test.tssrc/tests/utils/nutrientUtils.test.tssrc/tests/utils/nutritionCalculations.test.tssrc/tests/utils/openFoodFactsContribution.test.tssrc/tests/utils/paceCalculation.test.tssrc/tests/utils/parseCsv.test.tssrc/tests/utils/positiveDoseOrNull.test.tssrc/tests/utils/providerColor.test.tssrc/tests/utils/reportUtil.test.tssrc/tests/utils/resolveExerciseImageSrc.test.tssrc/tests/utils/resolveFoodProviderId.test.tssrc/tests/utils/speechNarrator.test.tssrc/tests/utils/supplementDoseScaling.test.tssrc/tests/utils/timeFormatters.test.tssrc/tests/utils/topMatches.test.tssrc/tests/utils/translationKeysCoverage.test.tssrc/tests/utils/visibleCustomNutrients.test.tssrc/tests/utils/visibleDoseCards.test.tssrc/tests/utils/workoutHeartRateSeries.test.tssrc/tests/utils/workoutPlayback.test.tssrc/types.tssrc/types/admin.tssrc/types/allergenPreference.tssrc/types/auth.tssrc/types/Chatbot_types.tssrc/types/checkin.tssrc/types/customNutrient.tssrc/types/diary.tssrc/types/exercises.tssrc/types/fasting.tssrc/types/food.tssrc/types/goals.tssrc/types/meal.tssrc/types/medications.tssrc/types/mood.d.tssrc/types/nutrientAlgorithms.tssrc/types/onboarding.tssrc/types/reports.tssrc/types/settings.tssrc/types/workout.tssrc/utils/activityReportUtil.tssrc/utils/aiConfidenceLabels.tssrc/utils/aiServiceUtils.tssrc/utils/api.tssrc/utils/calculationLabels.tssrc/utils/chartUtils.tssrc/utils/chunkRecovery.tssrc/utils/dailyHealthMetrics.tssrc/utils/dashboardLayout.tssrc/utils/dedupeAppend.tssrc/utils/exerciseAlternatives.tssrc/utils/exerciseDisplayLabels.tssrc/utils/exercises.tssrc/utils/exerciseTaxonomy.tssrc/utils/exerciseTrendUtils.tssrc/utils/foodAiUnits.tssrc/utils/foodForm.tssrc/utils/foodImages.tssrc/utils/foodPhotoEstimate.tssrc/utils/foodProviderLabels.tssrc/utils/foodSearch.tssrc/utils/foodServing.tssrc/utils/generateClientId.tssrc/utils/goals.tssrc/utils/guidedWorkoutPreferences.tssrc/utils/guidedWorkoutSpeech.tssrc/utils/healthDataImport.tssrc/utils/healthMetricLabels.tssrc/utils/imagePickerItems.tssrc/utils/imageResize.tssrc/utils/landingLists.tssrc/utils/languageUtils.tssrc/utils/layout.tssrc/utils/logging.tssrc/utils/medicationUtils.tssrc/utils/moodUtils.tssrc/utils/numberFormatting.tssrc/utils/nutrientUtils.tssrc/utils/nutritionCalculations.tssrc/utils/onboarding.tssrc/utils/openFoodFactsContribution.tssrc/utils/providerColor.tssrc/utils/reportUtil.tssrc/utils/settings.tssrc/utils/sourceLabels.tssrc/utils/speechNarrator.tssrc/utils/timeFormatters.tssrc/utils/topMatches.tssrc/utils/unitConversions.tssrc/utils/userPreferences.tssrc/utils/waterContainerLabels.tssrc/utils/workoutHeatmap.tssrc/utils/workoutPlayback.tssrc/utils/workoutSounds.tssrc/vite-env.d.tstsconfig.app.jsontsconfig.app.tsbuildinfotsconfig.jsontsconfig.node.jsontsconfig.node.tsbuildinfovite.config.tsAll matched files use Prettier code style! sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> > sparkyfitnessfrontend@1.7.3 knip /build/source/SparkyFitnessFrontend sparkyfitness-frontend-1.7.3> > knip sparkyfitness-frontend-1.7.3> sparkyfitness-frontend-1.7.3> Reading workspace configuration… sparkyfitness-frontend-1.7.3> Analyzing workspace… sparkyfitness-frontend-1.7.3> Analyzing source files… sparkyfitness-frontend-1.7.3> Connecting the dots… sparkyfitness-frontend-1.7.3> Configuration hints (2) sparkyfitness-frontend-1.7.3> src/main.tsx knip.jsonc Remove redundant entry pattern sparkyfitness-frontend-1.7.3> .css knip.jsonc Compiled extension excluded by project (imports not followed) sparkyfitness-frontend-1.7.3> ✂️ Excellent, Knip found no issues. sparkyfitness-frontend-1.7.3> checkPhase completed in 1 minutes 7 seconds sparkyfitness-frontend-1.7.3> Running phase: installPhase sparkyfitness-frontend-1.7.3> Running phase: fixupPhase sparkyfitness-frontend-1.7.3> shrinking RPATHs of ELF executables and libraries in /nix/store/0kqklbv1xr3qdjg1a5gs95yrlqgr0mq0-sparkyfitness-frontend-1.7.3 sparkyfitness-frontend-1.7.3> checking for references to /build/ in /nix/store/0kqklbv1xr3qdjg1a5gs95yrlqgr0mq0-sparkyfitness-frontend-1.7.3... sparkyfitness-frontend-1.7.3> patching script interpreter paths in /nix/store/0kqklbv1xr3qdjg1a5gs95yrlqgr0mq0-sparkyfitness-frontend-1.7.3 building '/nix/store/4zxwchl0z0r8xlw3njcvs6yswa97xlsn-nginx.conf.drv' sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked nginx.conf> structuredAttrs is enabled nginx.conf> nginx.conf> ==================== Results =================== nginx.conf> No issues found. nginx.conf> nginx.conf> ==================== Summary =================== nginx.conf> Total issues: nginx.conf> Unspecified: 0 nginx.conf> Low: 0 nginx.conf> Medium: 0 nginx.conf> High: 0 nginx.conf> building '/nix/store/zizpm1ys9k7fcr6al0y45nbq1hr3h7mb-unit-script-nginx-pre-start.drv' unit-script-nginx-pre-start> structuredAttrs is enabled building '/nix/store/ayp7am4w662v6n1v7f0ym2526l94f8vm-unit-nginx.service.drv' unit-nginx.service> structuredAttrs is enabled sparkyfitness-server-1.7.3> patchelf: cannot find section '.dynamic'. The input file is most likely statically linked sparkyfitness-server-1.7.3> patching script interpreter paths in /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3 sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/shared/node_modules/.bin/ts-to-zod: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/shared/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/shared/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/nodemon: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/vitest: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/bcrypt: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/tsx: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/swagger-jsdoc: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/uuid: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/SparkyFitnessServer/node_modules/.bin/prettier: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/.husky/pre-commit: interpreter directive changed from "#!/bin/sh" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/sh" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/docker/docker-helper.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/nix/update-hashes.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/db_backup.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/start_garmin_microservice.sh: interpreter directive changed from "#!/bin/bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec/sparkyfitness/scripts/reset-dev.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/svx59425zxp552p2b8gm11qj5r09b56i-bash-5.3p15/bin/bash" sparkyfitness-server-1.7.3> stripping (with command strip and flags -S -p) in /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/libexec /nix/store/319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3/bin sparkyfitness-server-1.7.3> fixupPhase completed in 1 minutes 22 seconds building '/nix/store/3jsz4iw1ayix5k13w02hgwbpng00yl7i-unit-sparkyfitness.service.drv' unit-sparkyfitness.service> structuredAttrs is enabled building '/nix/store/y5ajv8lq6h3jivfmqrqrw1hzs6m54hfz-system-units.drv' building '/nix/store/1ijvvmn1mc6818f6i0wmp0rby95wsd5l-etc.drv' building '/nix/store/664nk9bff0hrml1x8n5xl4xhkc7903jn-activate.drv' activate> structuredAttrs is enabled building '/nix/store/jz5zhbzmzivz9d6d2fi1cpxpxvmjmyli-nixos-system-malt-26.11.20260916.bb79322.drv' nixos-system-malt-26.11.20260916.bb79322> structuredAttrs is enabled post-build step Route build to niks3: ok Pushing mulatta/dots to https://niks3.mulatta.io time=2026-09-30T20:48:15.928+09:00 level=INFO msg="Uploading 46 paths to niks3.mulatta.io (2289 already cached)" time=2026-09-30T20:48:16.340+09:00 level=INFO msg="Uploading 3i4xz1207rhf9himdylgfjrhvhdjy7zm-unit-nginx.service (2.7KB)" time=2026-09-30T20:48:16.357+09:00 level=INFO msg="Uploading 1a22cj638y5lic8czh61pqbhkc59ww7x-unit-dbus-broker.service (1.4KB)" time=2026-09-30T20:48:16.373+09:00 level=INFO msg="Uploading zgkxd2680nvw1d4hp7z73mvr2s26plz3-system-units (99.7KB)" time=2026-09-30T20:48:16.388+09:00 level=INFO msg="Uploading ycai63vz82fgjq4mhz3ln1jrsp3pc7b7-etc (55.0KB)" time=2026-09-30T20:48:16.397+09:00 level=INFO msg="Uploading rnq79lr5nj5wp4bvyn8zjb8k412haflk-users-groups.json (14.7KB)" time=2026-09-30T20:48:16.410+09:00 level=INFO msg="Uploading lad4sdayn82a2s0hnap5z4aqjfak4m2l-unit-container-opencrow.service (2.5KB)" time=2026-09-30T20:48:16.427+09:00 level=INFO msg="Uploading 7hk03l1n5nifc5iq5vaggpzirzryl9v8-user-units (16.4KB)" time=2026-09-30T20:48:16.447+09:00 level=INFO msg="Uploading xsd11d6j3ns4b44hanqxx0pvzd7jxack-manifest.json (21.6KB)" time=2026-09-30T20:48:16.468+09:00 level=INFO msg="Uploading y26mj2ch3cir9ynfmvppl54645mzdq15-unit-script-postgresql-pre-start (952B)" time=2026-09-30T20:48:16.486+09:00 level=INFO msg="Uploading qwdkja58p39j8c8yii6nq83z6pvpsn70-etc-nixos-containers-opencrow.conf (1.1KB)" time=2026-09-30T20:48:16.536+09:00 level=INFO msg="Uploading qswcb96ym80vpy8ihd0968v51cgycwry-unit-script-sparkyfitness-pre-start (680B)" time=2026-09-30T20:48:16.580+09:00 level=INFO msg="Uploading 5h80gr63va0ymn62smng9x04xlyxhzgk-unit-dbus-broker.service (1.3KB)" time=2026-09-30T20:48:16.585+09:00 level=INFO msg="Uploading 743mfd3iw85ajf000r2s1bgknnp7n20z-unit-postgresql.service (2.7KB)" time=2026-09-30T20:48:16.595+09:00 level=INFO msg="Uploading j69f4a0c3k48chmfdmh9w7vlnw0bd2sk-unit-systemd-tmpfiles-resetup.service (1.8KB)" time=2026-09-30T20:48:16.637+09:00 level=INFO msg="Uploading 319b9mqwjx2g9vkf95w03qbhypgw5x6k-sparkyfitness-server-1.7.3 (689.9MB)" time=2026-09-30T20:48:16.643+09:00 level=INFO msg="Uploading jmyla264ms4zh0k1ikl213k1yksi1hmw-nginx.conf (8.2KB)" time=2026-09-30T20:48:16.649+09:00 level=INFO msg="Uploading 5adyxwsydnf7my0kdg11vgjm3car7pmf-per-machine-malt-sparkyfitness_env (2.8KB)" time=2026-09-30T20:48:16.671+09:00 level=INFO msg="Uploading 7yaypk9651hmp7hbsvn66pi7qacmhdx7-unit-script-sparkyfitness-db-init-start (2.0KB)" time=2026-09-30T20:48:16.675+09:00 level=INFO msg="Uploading 3h973ynyms1gdqkz6nq4ap2p4k7v1603-X-Restart-Triggers-container-opencrow (272B)" time=2026-09-30T20:48:16.693+09:00 level=INFO msg="Uploading 82wgnsqqzwqshafkrhyjypni64aah1f0-etc (29.7KB)" time=2026-09-30T20:48:16.706+09:00 level=INFO msg="Uploading v3l54ps3zm4h7ab0nzp0iq9rvikbscr3-postgresql.conf (544B)" time=2026-09-30T20:48:16.709+09:00 level=INFO msg="Uploading 9sqpvdmiqn3kmravgibiwai38dp5c7h3-nixos-system-malt-26.11.20260916.bb79322 (248.5KB)" time=2026-09-30T20:48:16.725+09:00 level=INFO msg="Uploading jl3qbca2qhl9g983ndlds0kdaw41bjra-dbus-1 (9.4KB)" time=2026-09-30T20:48:16.729+09:00 level=INFO msg="Uploading 243f24i5yr75zbvdkf3wfs2g6c699jcq-system-units (175.5KB)" time=2026-09-30T20:48:16.739+09:00 level=INFO msg="Uploading 1g2ax80pgl05b38wcwwr8ybr5dgfll5j-unit-sparkyfitness.service (2.5KB)" time=2026-09-30T20:48:16.756+09:00 level=INFO msg="Uploading n5m6xjjab1x81jrd7z3q2x4gzi9x3wy4-unit-miniflux-provisioning-seungwon.service (1.9KB)" time=2026-09-30T20:48:16.764+09:00 level=INFO msg="Uploading zm12gx881z5skfvr8p05idq21v5lbibq-miniflux-provisioning-seungwon (1.3KB)" time=2026-09-30T20:48:16.800+09:00 level=INFO msg="Uploading 8za0vdmhsxhcy4751wczk44zlj9pgy0r-dbus-1 (10.7KB)" time=2026-09-30T20:48:16.806+09:00 level=INFO msg="Uploading bqb4bl9a079ypylmb0qq9w9j4ab9prvm-unit-dbus-broker.service (1.4KB)" time=2026-09-30T20:48:16.812+09:00 level=INFO msg="Uploading hqcxkm1dn4bf78fvygjvfa9lmg9kxzz2-X-Restart-Triggers-dbus-broker (168B)" time=2026-09-30T20:48:16.828+09:00 level=INFO msg="Uploading zwpjg4m0c8dg1fydzpb080yas6gqhnpi-unit-opencrow.service (9.4KB)" time=2026-09-30T20:48:16.840+09:00 level=INFO msg="Uploading f4n0wxhjx4q9agbclryq11fz9axnfyv9-unit-sparkyfitness-db-init.service (1.7KB)" time=2026-09-30T20:48:16.856+09:00 level=INFO msg="Uploading ghqyjrk4fhlgc6vcfpvw74wx4vgdz6lq-X-Restart-Triggers-dbus-broker (168B)" time=2026-09-30T20:48:16.917+09:00 level=INFO msg="Uploading yafw18cy2r5lw25rdnsnicqsqw0f5vml-tmpfiles.d (4.3KB)" time=2026-09-30T20:48:16.941+09:00 level=INFO msg="Uploading s6qnkvhbvlb7wr4kyn2dgfv7wvs497dd-unit-script-nginx-pre-start (696B)" time=2026-09-30T20:48:16.980+09:00 level=INFO msg="Uploading qky8fm8p1db7001f3k7wlc0jjfa7cvbx-user-units (11.8KB)" time=2026-09-30T20:48:17.019+09:00 level=INFO msg="Uploading 0kqklbv1xr3qdjg1a5gs95yrlqgr0mq0-sparkyfitness-frontend-1.7.3 (12.0MB)" time=2026-09-30T20:48:17.029+09:00 level=INFO msg="Uploading fmsfrv3j9fbviqsn1z604aa9xvh7i5sz-unit-dbus-broker.service (1.3KB)" time=2026-09-30T20:48:17.029+09:00 level=INFO msg="Uploading 9i3rafrdlicmvn7bnnzafwq715y9ap23-postgresql-18.6 (24.4MB)" time=2026-09-30T20:48:17.058+09:00 level=INFO msg="Uploading ggl9s54yad1334ajblw1c6i2a0avkc21-postgresql-18.6-lib (686.7KB)" time=2026-09-30T20:48:17.065+09:00 level=INFO msg="Uploading r9bf9rkavi9g7c9h5l21h67hbcrpgbff-pg_hba.conf (600B)" time=2026-09-30T20:48:17.066+09:00 level=INFO msg="Uploading 4w6519swb2pq9r6gpjvj6l1jx924kvp9-X-Restart-Triggers-systemd-tmpfiles-resetup (168B)" time=2026-09-30T20:48:17.083+09:00 level=INFO msg="Uploading szz2gj1rb273bgw61dwsy73wfn89wijb-miniflux-provisioning-seungwon.json (1.9KB)" time=2026-09-30T20:48:17.101+09:00 level=INFO msg="Uploading sskifhzg7nnzw6gdxyacv45770rpizdq-system-path (4.9MB)" time=2026-09-30T20:48:17.103+09:00 level=INFO msg="Uploading 566kplxswyshnyxvnk4bdi3bn2g51is3-nixos-tmpfiles.d (4.5KB)" time=2026-09-30T20:48:17.103+09:00 level=INFO msg="Uploading h1vcvnd1csyac1a3yk1xjb48jwqxn9ib-nixos-system-opencrow-26.11pre-git (14.5KB)" time=2026-09-30T20:48:25.429+09:00 level=INFO msg="Uploading 49 narinfos" time=2026-09-30T20:48:26.855+09:00 level=INFO msg="Upload complete. (11.683s)"