Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
ba6fdf6
starting on prodigy autocode meter
gniezen Oct 14, 2025
d84a599
successfully retrieves data from meter
gniezen Nov 20, 2025
1b033fc
uploads data from Prodigy AutoCode meter successfully
gniezen Nov 24, 2025
ec664a5
read serial number
gniezen Nov 25, 2025
34b72ee
add autocode meter checklist
gniezen Nov 25, 2025
84b3202
v2.63.0-prodigy-autocode.1
gniezen Nov 25, 2025
7aa998b
throw error if meter does not respond
gniezen Nov 25, 2025
e0535c0
Apply suggestions from code review
gniezen Nov 25, 2025
a39ec1c
further changes from code review
gniezen Nov 25, 2025
5476330
add new pid/vid
gniezen Dec 8, 2025
77519e5
v2.63.0-prodigy-autocode.2
gniezen Dec 8, 2025
03d0003
starting on keto-mojo meter
gniezen Dec 8, 2025
b0018c5
successfully reading serial number
gniezen Dec 9, 2025
36888f0
started on setting the date/time on the meter
gniezen Dec 9, 2025
1e69248
Merge branch 'develop' into keto-mojo
gniezen Dec 11, 2025
c5d939e
Merge branch 'main' into keto-mojo
gniezen Dec 11, 2025
78af323
retrieves number of records on meter
gniezen Dec 11, 2025
8e842e1
reads first two glucose values from meter
gniezen Dec 11, 2025
05106dc
simplify pump checklist
gniezen Jan 5, 2026
a63c495
simplify cgm checklist
gniezen Jan 5, 2026
49db4e7
Merge branch 'develop' into improve-checklists
gniezen Jan 5, 2026
dfc74b1
Merge pull request #1716 from tidepool-org/improve-checklists
gniezen Jan 27, 2026
ab3092b
Merge branch 'develop' into prodigy-autocode
gniezen Jan 27, 2026
f6ad0c9
fix typo
gniezen Jan 27, 2026
b443e18
add FSL3+ support for Tandem
gniezen Feb 5, 2026
bce8c76
v2.64.1-tandem-fsl3plus
gniezen Feb 5, 2026
09aae61
update electron and node; babel
gniezen Feb 9, 2026
a4c2e50
update dependencies
gniezen Feb 9, 2026
7e3c32c
rolling back to electron-builder 26.6.0 as 26.7.0 breaks rebuild
gniezen Feb 9, 2026
124e88d
remove node-gyp from resolutions now that node has been updated
gniezen Feb 9, 2026
33fa0fc
remove comma
gniezen Feb 9, 2026
237ab7c
bump electron-builder
gniezen Feb 9, 2026
0610363
v2.64.1-update-deps-feb26.1
gniezen Feb 9, 2026
281cdff
only send feature report if the chip supports it
gniezen Feb 9, 2026
13b8d71
also support v6 meter
gniezen Feb 10, 2026
b40b89c
v2.64.1-prodigy-autocode.3
gniezen Feb 10, 2026
e681e15
use this.cfg instead of cfg
gniezen Feb 10, 2026
5b44f87
handle serial number on v7 without end byte
gniezen Feb 10, 2026
9d9145d
v2.64.1-prodigy-autocode.4
gniezen Feb 10, 2026
722c7d8
move messageLength out of the loop
gniezen Feb 12, 2026
d586428
v2.64.1-prodigy-autocode.5
gniezen Feb 12, 2026
af72c35
only use message length when reading serial
gniezen Feb 12, 2026
3f53d04
v2.64.1-prodigy-autocode.6
gniezen Feb 12, 2026
bea5555
Merge pull request #1725 from tidepool-org/tandem-fsl3plus
gniezen Feb 19, 2026
82ff783
handle HI/LO for V6; add V6 incompatibility for MacOS
gniezen Feb 19, 2026
92b858e
v2.64.1-prodigy-autocode.7
gniezen Feb 19, 2026
552f291
don't try to overwrite constant
gniezen Feb 19, 2026
4780865
v2.64.1-prodigy-autocode.8
gniezen Feb 19, 2026
f0ec8e7
Merge branch 'develop' into keto-mojo
gniezen Feb 23, 2026
f744781
add tandem changes merged to main
gniezen Feb 23, 2026
e1558fe
reads data successfully
gniezen Feb 24, 2026
51efd57
v2.64.1-keto-mojo.1
gniezen Feb 24, 2026
a666a3d
update linting
gniezen Feb 24, 2026
0dbbd62
Merge branch 'develop' into prodigy-autocode
gniezen Feb 24, 2026
8fdaa81
specify model in description
gniezen Feb 26, 2026
c773897
handle HI/LO for mmol/L
gniezen Feb 26, 2026
108febf
v2.64.1-prodigy-autocode.9
gniezen Feb 26, 2026
1d90a0d
Merge branch 'prodigy-autocode' of github.com:tidepool-org/uploader i…
gniezen Feb 26, 2026
8cb5820
handle floats for mmol/L
gniezen Feb 26, 2026
b47c6de
value is glucose
gniezen Feb 26, 2026
844d3dc
2.64.1-prodigy-autocode.10
gniezen Feb 26, 2026
671f476
fix linting issue
gniezen Feb 26, 2026
c603c96
Merge branch 'develop' into update-deps-feb26
gniezen Mar 2, 2026
0a8d394
Merge pull request #1724 from tidepool-org/update-deps-feb26
gniezen Mar 2, 2026
cb67303
Merge branch 'develop' into prodigy-autocode
gniezen Mar 2, 2026
457d058
add checklist for keto-mojo meter
gniezen Mar 2, 2026
684a0ca
handle both mmol/l and mg/dl for keto-mojo
gniezen Mar 2, 2026
c10fed3
v2.64.1-keto-mojo.2
gniezen Mar 2, 2026
b618531
Merge pull request #1709 from tidepool-org/prodigy-autocode
gniezen Mar 3, 2026
39bc053
v2.65.0
gniezen Mar 3, 2026
f721903
Merge branch 'develop' into keto-mojo
gniezen Mar 3, 2026
0a59ebf
fix HI/LO tresholds
gniezen Mar 3, 2026
ba66872
retry on getRecords; cleanup
gniezen Mar 3, 2026
a751301
v2.64.1-keto-mojo.3
gniezen Mar 3, 2026
2a4b44e
fix timestamps
gniezen Mar 5, 2026
53b0864
fix serial number
gniezen Mar 5, 2026
cc42e62
v2.64.1-keto-mojo.4
gniezen Mar 5, 2026
890e296
some cleanup
gniezen Mar 5, 2026
090f70f
put index back
gniezen Mar 5, 2026
68338ce
v2.64.1-keto-mojo.5
gniezen Mar 5, 2026
cd9d587
Merge pull request #1730 from tidepool-org/release-2.65.0
gniezen Mar 9, 2026
5d13e78
Merge branch 'develop' into keto-mojo
gniezen Mar 9, 2026
954231e
simplify timeouts
gniezen Mar 30, 2026
df5d9e4
v2.65.0-keto-mojo.6
gniezen Mar 30, 2026
4cf9216
fix HI/LO bug for mg/dL Autocode meters
gniezen Mar 30, 2026
1f47571
v2.65.1
gniezen Mar 30, 2026
95e3ec3
handle HI/LO on v6 and v7 meters for both mg/dl and mmol/l readings
gniezen Mar 31, 2026
3fe8f17
threshold is always in mg/dL
gniezen Apr 7, 2026
dab52f3
use EV code signed version
gniezen Apr 7, 2026
2c163d0
update helper.exe to 0.1.4
gniezen Apr 9, 2026
7f0421c
Merge pull request #1733 from tidepool-org/hotfix-2.65.1
gniezen Apr 9, 2026
ffd6654
Merge branch 'main' into develop
gniezen Apr 9, 2026
b14c1b3
Merge branch 'develop' into keto-mojo
gniezen Apr 16, 2026
1e18d7e
update dependencies
gniezen Apr 20, 2026
33281fc
bump pl2303
gniezen Apr 23, 2026
07e2666
we only support GK+ in mg/dL and GKI in mmol/L
gniezen Apr 23, 2026
2cc4125
v2.65.1-keto-mojo.7
gniezen Apr 23, 2026
f0fb7b6
bump sundial to test version
gniezen Apr 23, 2026
8eea0ba
thresholds are always in mg/dL
gniezen Apr 23, 2026
95f3bbe
v2.65.1-keto-mojo.8
gniezen Apr 23, 2026
6972f03
update electron and node again
gniezen Apr 27, 2026
3fae94b
v2.65.1-update-deps-apr26.1
gniezen Apr 27, 2026
fecb9c2
change docker version to default used in circleci image
gniezen Apr 27, 2026
e46d031
submit release candidates to VirusTotal API
gniezen Apr 27, 2026
195a941
bump aws-sdk to v3
gniezen Apr 27, 2026
f3e60d4
rollback version number as we were testing VT script
gniezen Apr 27, 2026
f100d8e
added correctness, robustness and style improvements
gniezen Apr 28, 2026
e3bd872
roll back version number as it was just used for testing
gniezen May 7, 2026
ba18c8f
Merge pull request #1745 from tidepool-org/virustotal-scan
gniezen May 7, 2026
a978d18
Merge branch 'develop' into update-deps-apr26
gniezen May 12, 2026
9286aff
remove test suffix for sundial
gniezen May 12, 2026
f5b9b5a
Merge pull request #1740 from tidepool-org/update-deps-apr26
gniezen May 12, 2026
c9b77df
Merge branch 'develop' into keto-mojo
gniezen May 12, 2026
9fb0989
roll back sinon-chai to a veresion compatible with our chai
gniezen May 12, 2026
46ec7f4
Merge pull request #1747 from tidepool-org/fix-chai
gniezen May 12, 2026
772d69d
Merge branch 'develop' into keto-mojo
gniezen May 12, 2026
457bfaa
Merge pull request #1727 from tidepool-org/keto-mojo
gniezen May 12, 2026
fb2bc98
fix for rollbar error
gniezen May 12, 2026
064b292
v2.66.0
gniezen May 12, 2026
629ac55
try to fix rollbar error by loading browser version first
gniezen May 12, 2026
510d00d
make sure we're really using post_client_item in the renderer
gniezen May 12, 2026
4507010
drop import as it breaks things
gniezen May 12, 2026
b95eb69
Merge pull request #1748 from tidepool-org/release-2.66.0
gniezen May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ jobs:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
nvm install v22.19.0
nvm alias default v22.19.0
nvm install v24.15.0
nvm alias default v24.15.0
- run: node -v
- run: npm install --global node-gyp
- run: echo $SHELL
Expand Down Expand Up @@ -110,10 +110,10 @@ jobs:
BASH_ENV: ".circleci/bash_env.sh"
DISPLAY: ":99"
docker:
- image: cimg/node:22.19.0-browsers
- image: cimg/node:24.15.0-browsers
steps:
- setup_remote_docker:
version: docker23
version: default
- run: sudo apt-get update && sudo apt-get install -y build-essential git curl libusb-1.0 libavutil-dev libxss1 libsecret-1-dev libudev-dev libgtk-3-0 libcanberra-gtk3-module packagekit-gtk3-module chromium-browser fonts-liberation libappindicator3-1 libasound2t64 libatk-bridge2.0-0 libatspi2.0-0 libcairo2 libcups2 libgbm1 libgdk-pixbuf2.0-0 libgtk-3-0 libpango-1.0-0 libpangocairo-1.0-0 libxcursor1 libxss1 xdg-utils xvfb libdbus-glib-1-2 libgtk-3-dev libxt6 python3-dev python3-setuptools
- checkout
# - run: mv .nvmrc .nvmrc.tmp
Expand Down Expand Up @@ -145,8 +145,8 @@ jobs:
- run: pwsh.exe -command "Register-PSRepository -Name 'Nuget' -SourceLocation 'https://api.nuget.org/v3/index.json' -InstallationPolicy Trusted"
- run: python -m pip install packaging
- run: pip install setuptools
- run: nvm install v22.19.0
- run: nvm use v22.19.0
- run: nvm install v24.15.0
- run: nvm use v24.15.0
- run: node -v
- run: npm install --global npm@8 node-gyp
- run: npm -v
Expand Down Expand Up @@ -175,7 +175,7 @@ jobs:
-FileDigest 'SHA256' `
-Files $dummyExePath
# Package
- run: if [ -z "$CIRCLE_PR_NUMBER" ]; then yarn package; else echo "Forked repo; no package built."; fi
- run: if [ -z "$CIRCLE_PR_NUMBER" ]; then yarn package; yarn av-check; else echo "Forked repo; no package built."; fi
- run: if [ -n "$CIRCLE_TAG" ]; then yarn av-whitelist; else echo "Not a tagged release."; fi

# runs build for all branches and all tags starting with v.
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
22.19.0
24.15.0
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:22.19.0-alpine as base
FROM node:24.11.1-alpine as base
WORKDIR /app
RUN mkdir -p dist node_modules .yarn-cache && chown -R node:node .

Expand Down
13 changes: 11 additions & 2 deletions app/components/Upload.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import debugMode from '../utils/debugMode.js';
import uploadDataPeriod from '../utils/uploadDataPeriod.js';

import { VerioBLE } from '../../lib/drivers/onetouch/oneTouchVerioBLE';
import { KetoMojo } from '../../lib/drivers/vivachek/ketomojo';

import * as styles from '../../styles/components/Upload.module.less';
import env from '../utils/env.js';
Expand All @@ -44,6 +45,7 @@ import { i18n } from '../utils/config.i18next.cjs';
const MEDTRONIC_KEYTAR_SERVICE = 'org.tidepool.uploader.medtronic.serialnumber';
const ble = new BLE();
const verioBLE = new VerioBLE();
const ketoMojo = new KetoMojo();

export default class Upload extends Component {
static propTypes = {
Expand Down Expand Up @@ -97,7 +99,7 @@ export default class Upload extends Component {
super(props);
this.ble = ble;
this.verioBLE = verioBLE;

this.ketoMojo = ketoMojo;
this.populateRememberedSerialNumber();
}

Expand Down Expand Up @@ -168,6 +170,8 @@ export default class Upload extends Component {

if (device === 'onetouchverioble') {
options.ble = this.verioBLE;
} else if (device === 'ketomojo') {
options.ble = this.ketoMojo;
} else {
options.ble = this.ble;
}
Expand Down Expand Up @@ -212,7 +216,12 @@ export default class Upload extends Component {
return this.handleMedtronic600Upload();
}

if (device === 'caresensble' || device === 'onetouchverioble' || device === 'foracareble' || device === 'relionplatinumble') {
if (device === 'caresensble' ||
device === 'onetouchverioble' ||
device === 'foracareble' ||
device === 'relionplatinumble' ||
device === 'ketomojo'
) {
return this.handleBluetoothUpload(_.get(upload, 'key', null));
}

Expand Down
2 changes: 1 addition & 1 deletion app/main.dev.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import osName from 'os-name';
import * as chromeFinder from 'chrome-launcher/dist/chrome-finder.js';
import { createRequire } from 'module';
import { fileURLToPath, pathToFileURL } from 'url';
import Rollbar from 'rollbar/src/server/rollbar.js';
import Rollbar from 'rollbar';
import uploadDataPeriod from './utils/uploadDataPeriod.js';
import { setLanguage, i18n } from './utils/config.i18next.cjs';
import path from 'path';
Expand Down
2 changes: 1 addition & 1 deletion app/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "tidepool-uploader",
"productName": "tidepool-uploader",
"version": "2.64.1",
"version": "2.66.0",
"description": "Tidepool Project Universal Uploader",
"main": "./main.prod.js",
"author": {
Expand Down
15 changes: 15 additions & 0 deletions app/reducers/devices.js
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,13 @@ const devices = {
enabled: {mac: true, win: true, linux: true},
powerOnlyWarning: true,
},
ketomojo: {
instructions: i18n.t('Turn meter on and check the Bluetooth icon is flashing'),
key: 'ketomojo',
name: 'Keto-Mojo GK+/GKI (Connect with Bluetooth)',
source: {type: 'device', driverId: 'KetoMojo'},
enabled: {mac: true, win: true, linux: true},
},
medtronic: {
instructions: i18n.t('Connect your Contour Next Link to your computer'),
image: {
Expand Down Expand Up @@ -276,6 +283,13 @@ const devices = {
source: {type: 'device', driverId: 'OneTouchUltra2'},
enabled: {mac: true, win: true, linux: true}
},
prodigyautocode: {
instructions: i18n.t('Plug in meter with mini-USB cable'),
name: 'Prodigy AutoCode',
key: 'prodigyautocode',
source: {type: 'device', driverId: 'ProdigyAutocode'},
enabled: {mac: true, win: true, linux: true}
},
relionplatinum: {
instructions: i18n.t('Plug in meter with micro-USB cable'),
name: 'ReliOn Platinum (Connect with USB)',
Expand Down Expand Up @@ -332,6 +346,7 @@ if (navigator.userAgentData.platform === 'macOS') {
linkText: i18n.t('EZSync002B cable'),
link: 'https://purenitetech.com/product/ezsync002b/',
};
devices.prodigyautocode.instructions = i18n.t('Plug in meter with mini-USB cable. V6 meter not compatible with MacOS.');
}

if (env.electron) {
Expand Down
2 changes: 1 addition & 1 deletion app/utils/rollbar.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* global __VERSION_SHA__ */
import Rollbar from 'rollbar/dist/rollbar.umd.js';
import Rollbar from 'rollbar';

let rollbar;

Expand Down
Loading
Loading