Skip to content
Draft

AAPS v4 #4903

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1434 commits
Select commit Hold shift + click to select a range
7957373
Fix RM dialog observation
MilosKozak Jun 6, 2026
c3cfd4b
Chips layout
MilosKozak Jun 6, 2026
8dc3514
Graphs: fix scale calculation
MilosKozak Jun 6, 2026
317b5b9
Enforce landscape mode for 2 cols
MilosKozak Jun 6, 2026
ff1d999
Fix EPS position on graph
MilosKozak Jun 6, 2026
5c43924
Merge remote-tracking branch 'origin/dev' into ns_settings
MilosKozak Jun 6, 2026
1a53fbf
Fix COB chip
MilosKozak Jun 7, 2026
22d09e1
Client comm - ACK on insulin
MilosKozak Jun 7, 2026
e716759
Cleint Ping-Pong
MilosKozak Jun 7, 2026
199612b
Fix plugin's onStart
MilosKozak Jun 7, 2026
0aaee88
Fix COB chip
MilosKozak Jun 7, 2026
26ac264
General ACK, hearbeat
MilosKozak Jun 7, 2026
98f891a
Merge remote-tracking branch 'origin/dev' into ns_settings
MilosKozak Jun 7, 2026
ccadf90
Scenes migration
MilosKozak Jun 7, 2026
9ccd1e0
Improve profile verification and handling
MilosKozak Jun 8, 2026
9278ecc
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 8, 2026
9084b5f
NonCancellable transactions
MilosKozak Jun 8, 2026
c6ae160
Scenes refactoring
MilosKozak Jun 8, 2026
3065ee9
Merge remote-tracking branch 'origin/dev' into ns_settings
MilosKozak Jun 8, 2026
519baef
Insulin refactoring
MilosKozak Jun 8, 2026
b33dace
TT control
MilosKozak Jun 8, 2026
cb635b3
Ping when offline
MilosKozak Jun 9, 2026
660f7c0
Bump okhttp from 5.3.2 to 5.4.0
dependabot[bot] Jun 9, 2026
f9e09a2
Bump com.google.firebase:firebase-bom from 34.14.0 to 34.14.1
dependabot[bot] Jun 9, 2026
7e31f00
Merge pull request #4892 from nightscout/dependabot/gradle/dev/com.go…
MilosKozak Jun 9, 2026
207a3db
Merge pull request #4891 from nightscout/dependabot/gradle/dev/okhttp…
MilosKozak Jun 9, 2026
23a834e
WizardBolusExecutor
MilosKozak Jun 9, 2026
61ee327
New Crowdin updates (#4860)
MilosKozak Jun 9, 2026
59d0f86
Vacuum prechecks
MilosKozak Jun 10, 2026
19ad3e3
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 10, 2026
e9a18da
Insulin general execution path
MilosKozak Jun 10, 2026
ffa9a1e
Route eCarbs delivery through WizardBolusExecutor
MilosKozak Jun 10, 2026
1a4ea92
Fixes
MilosKozak Jun 10, 2026
3c9eac6
Merge branch 'ns_settings' of https://github.com/nightscout/AndroidAP…
MilosKozak Jun 10, 2026
74e8bad
DanaRS: remove excessive banner
MilosKozak Jun 10, 2026
5230049
Merge branch 'ns_settings' of https://github.com/nightscout/AndroidAP…
MilosKozak Jun 10, 2026
f9cc1ea
Merge remote-tracking branch 'origin/dev' into ns_settings
MilosKozak Jun 10, 2026
5e38034
Insulin general execution path #2
MilosKozak Jun 10, 2026
675548a
Fix double UEL entry
MilosKozak Jun 10, 2026
e9a784f
Wear: fix clearing alarm
MilosKozak Jun 11, 2026
184e0cc
Fix build
MilosKozak Jun 11, 2026
2e1640b
Cleanup Workflow AAPS CI: keep_runs=20, keep_threshold=5. Uses cleanu…
Jun 11, 2026
b3a79ea
Fix ANR
MilosKozak Jun 11, 2026
915088b
Fix ANR
MilosKozak Jun 11, 2026
7274a9f
Fix blocking threads
MilosKozak Jun 11, 2026
42b80f9
4.0.0-dev-a
MilosKozak Jun 11, 2026
5652add
Insulin general execution path #3
MilosKozak Jun 11, 2026
02840e2
Fix labels color
MilosKozak Jun 12, 2026
60cd7e8
Insulin general execution path #4
MilosKozak Jun 12, 2026
6b08313
ProfileManagement: back() on use
MilosKozak Jun 12, 2026
5d1ceaf
Merge remote-tracking branch 'origin/dev' into ns_settings
MilosKozak Jun 12, 2026
fcbd814
Client snooze icons
MilosKozak Jun 12, 2026
6afc35c
Fix tests
MilosKozak Jun 12, 2026
e592800
Merge remote-tracking branch 'origin/dev' into ns_settings
MilosKozak Jun 12, 2026
e32337a
Bolus error handling
MilosKozak Jun 12, 2026
464a717
Stop alarm from master
MilosKozak Jun 12, 2026
5d88f6c
Bolus progress
MilosKozak Jun 12, 2026
488ee9e
Default opt-in on master
MilosKozak Jun 12, 2026
17be6c4
Watch ECarbs
MilosKozak Jun 12, 2026
e70f832
Watch TT
MilosKozak Jun 13, 2026
e727b8b
Wear-Mobile cleanup
MilosKozak Jun 13, 2026
756532e
Fix NS alarm snoozing
MilosKozak Jun 13, 2026
cb89ff9
Watch,client Profile
MilosKozak Jun 13, 2026
4f3156a
Watch,client RM
MilosKozak Jun 13, 2026
7ec8169
Wear-Mobile cleanup
MilosKozak Jun 13, 2026
58833e6
Wizard unify and cleanup
MilosKozak Jun 13, 2026
f4ab4ee
Cleanup
MilosKozak Jun 13, 2026
d383952
Client TT unify
MilosKozak Jun 14, 2026
048a2c8
Wear wizard unify
MilosKozak Jun 14, 2026
25fe652
Cleanup
MilosKozak Jun 14, 2026
d7208d8
Update CONTRIBUTING.md
MilosKozak Jun 15, 2026
69745c1
Client TBR and EB
MilosKozak Jun 15, 2026
1780065
pump_info_row_extension_2
andyrozman Jun 15, 2026
b367577
Client Insulin 2 steps
MilosKozak Jun 16, 2026
5c50a2f
Client Scenes 2 steps
MilosKozak Jun 16, 2026
9cc708d
Cleanup docs
MilosKozak Jun 16, 2026
e4e2100
Equil: fix basal profile limit
MilosKozak Jun 16, 2026
9565b25
Merge pull request #4895 from vanelsberg/dev3
MilosKozak Jun 16, 2026
b28d86d
Kdoc, fixes, cleanup
MilosKozak Jun 16, 2026
e1e721e
Merge remote-tracking branch 'origin/dev3' into dev
MilosKozak Jun 16, 2026
b8112d3
Fix merge
MilosKozak Jun 16, 2026
1428478
Merge remote-tracking branch 'origin/dev' into ns_settings
MilosKozak Jun 16, 2026
4030e48
Merge pull request #4867 from nightscout/ns_settings
MilosKozak Jun 16, 2026
01e0c00
Bump com.google.gms:google-services from 4.4.4 to 4.5.0
dependabot[bot] Jun 17, 2026
3aacb03
Bump com.google.zxing:core from 3.5.3 to 3.5.4
dependabot[bot] Jun 17, 2026
909c298
Bump com.google.firebase:firebase-bom from 34.14.1 to 34.15.0
dependabot[bot] Jun 17, 2026
ad5b864
Client: bolus progress fixes
MilosKozak Jun 17, 2026
b011179
Client: APS synced preferences
MilosKozak Jun 18, 2026
6f1d2ce
Fix back button on profile
MilosKozak Jun 18, 2026
fef2b61
Merge pull request #4905 from nightscout/dependabot/gradle/dev/com.go…
MilosKozak Jun 18, 2026
7c1a8e8
Merge pull request #4906 from nightscout/dependabot/gradle/dev/com.go…
MilosKozak Jun 18, 2026
03c204c
Fix back button on cancel TT
MilosKozak Jun 18, 2026
c0e4126
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 18, 2026
5bda48f
Flaky tests
MilosKozak Jun 18, 2026
c33c303
Merge pull request #4904 from nightscout/dependabot/gradle/dev/com.go…
MilosKozak Jun 18, 2026
9f0fa38
Flaky tests
MilosKozak Jun 19, 2026
a78f421
Bump com.google.crypto.tink:tink-android from 1.21.0 to 1.22.0
dependabot[bot] Jun 19, 2026
4513323
Merge pull request #4911 from nightscout/dependabot/gradle/dev/com.go…
MilosKozak Jun 19, 2026
40fa31a
Libs update, target API 37
MilosKozak Jun 19, 2026
9c3b45b
Carbs dialog, scenes sync fixes
MilosKozak Jun 20, 2026
6cdf5ad
Share BGI and DEV vertical scale
Philoul Jun 18, 2026
6f528e8
Merge pull request #4901 from andyrozman/pump_info_row_extension_2
MilosKozak Jun 20, 2026
a67b3e6
RunningMode dialog profile message fix
MilosKozak Jun 20, 2026
07e4cc3
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 20, 2026
e2af31c
Improve temp target confirmation dialog formatting
olorinmaia Jun 20, 2026
9c20873
BolusProgress fix
MilosKozak Jun 21, 2026
c2277ba
Negative carbs entry confirmation fix
MilosKozak Jun 21, 2026
e92dfcd
WizardDialog: show eCabrs calculation
MilosKozak Jun 21, 2026
7ac3834
Equil: connection hardening
MilosKozak Jun 21, 2026
e14853f
Wizard: do not close on cancel
MilosKozak Jun 21, 2026
b4495cd
Merge pull request #4915 from olorinmaia/improve_TT_dialogue_confirma…
MilosKozak Jun 21, 2026
170d06c
Merge pull request #4914 from Philoul/Dev-BGI-Scale
MilosKozak Jun 21, 2026
5d0f3d2
Fix glucose unit display labels: mmol/L and mg/dL
olorinmaia Jun 20, 2026
617e80c
Replace ISF unit string concatenation with proper string resources
olorinmaia Jun 21, 2026
1364497
Wear running mode confirmation: colored mode names, title case, durat…
olorinmaia Jun 21, 2026
c642034
Fix stale tile timestamp causing "Please try again" on running mode s…
olorinmaia Jun 21, 2026
90d32cd
Fix running mode TS race: don't rotate timestamp when modes unchanged
olorinmaia Jun 21, 2026
2f7fd8f
Bump com.patrykandpatrick.vico:compose from 3.2.2 to 3.2.3
dependabot[bot] Jun 22, 2026
02e6925
Merge pull request #4916 from olorinmaia/improve_mmoll_mgdl_text_display
MilosKozak Jun 22, 2026
2f47d05
Merge pull request #4918 from olorinmaia/wear_running_mode_confirmati…
MilosKozak Jun 22, 2026
794cd4a
Combov2: fix uninitilized crash
MilosKozak Jun 22, 2026
f230b65
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 22, 2026
1815d9e
Merge pull request #4919 from nightscout/dependabot/gradle/dev/com.pa…
MilosKozak Jun 22, 2026
8f05abd
Fix crash
MilosKozak Jun 22, 2026
45bbbd3
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 22, 2026
f8bd093
Scenes and Profile Switch: duration format, watch confirmation improv…
olorinmaia Jun 22, 2026
a7e6117
Fix crash
MilosKozak Jun 22, 2026
fd5dc46
Fix crash
MilosKozak Jun 22, 2026
43e35a7
New Crowdin updates (#4893)
MilosKozak Jun 22, 2026
833fd21
Fix AAPSClient wear scene integration: route through batchExecutor
olorinmaia Jun 22, 2026
828748f
Strings cleanup
olorinmaia Jun 22, 2026
f8e7549
Fix tests
MilosKozak Jun 22, 2026
56c0b60
NSCv3: retry PATCH on 404
MilosKozak Jun 22, 2026
b5c979d
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 22, 2026
b6d3e55
receivers -> :implementation, tests
MilosKozak Jun 22, 2026
84accad
Fix AAPSClient wear scenes: use SceneActions own relay path
olorinmaia Jun 22, 2026
bef6728
Scenes: Fix ProfileSwitch issue with empty profileName shows "Profile…
olorinmaia Jun 22, 2026
67f1a44
Fix scene TT preset dropdown showing English instead of localized nam…
olorinmaia Jun 22, 2026
2cc420b
Merge pull request #4920 from olorinmaia/wear_improve_scenes_flow_and…
MilosKozak Jun 22, 2026
5ba7ed5
Wear: QuickWizard tiles
MilosKozak Jun 22, 2026
033e034
Remove comment from string
olorinmaia Jun 23, 2026
6436a95
Dash: sync after pair
MilosKozak Jun 23, 2026
d1d0878
Wear: reintroduce bolus wizard result screen; QuickWizard WIZARD detail
olorinmaia Jun 23, 2026
8b6dcb8
Wear wizard result: improved layout, alarm icon, eCarbs in summary, c…
olorinmaia Jun 23, 2026
1b84f84
Fix rounding
MilosKozak Jun 23, 2026
4a7f89d
Equil: do not drop commands after connect
MilosKozak Jun 23, 2026
42ea25d
Merge remote-tracking branch 'origin/dev3' into dev
MilosKozak Jun 23, 2026
8812bef
Merge pull request #4922 from olorinmaia/add_strings_scenes_TT_preset
MilosKozak Jun 24, 2026
1fdca90
Merge pull request #4924 from olorinmaia/wear_reintroduce_wizard_result
MilosKozak Jun 24, 2026
fca88a3
Basal height 50%
MilosKozak Jun 24, 2026
c642da2
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jun 24, 2026
c06b0f9
Strings cleanup
MilosKozak Jun 24, 2026
3269d20
Client: resolve unpaired visibility
MilosKozak Jun 24, 2026
e918ba3
Fix QuickLaunch TT preset names showing as "?" for built-in presets
olorinmaia Jun 24, 2026
f867905
QuickLaunch: use formatMinutesAsDuration for TT preset duration
olorinmaia Jun 24, 2026
4e7fa82
Client: careportal
MilosKozak Jun 24, 2026
7adcdcf
QuickLaunch: use reason-specific icons for built-in TT presets
olorinmaia Jun 24, 2026
0eda97b
QuickLaunch: improve reason-specific icons and colors for TT presets
olorinmaia Jun 24, 2026
065e4b2
Wear QuickWizard: mode icons, tile refresh on enter. Phone: instant s…
olorinmaia Jun 22, 2026
e2091d7
Wear QuickWizard tile: remove 1-hour cooldown after use
olorinmaia Jun 22, 2026
37a6997
Fix QuickWizard CARBS mode ignoring eCarbs configuration
olorinmaia Jun 22, 2026
06ffdc6
Wear wizard result: ±correction buttons
olorinmaia Jun 24, 2026
ee480db
Fix recalculated value & handle disabled accepting commands
MilosKozak Jun 25, 2026
d4c454f
Medtrum: better track bolus result
MilosKozak Jun 25, 2026
a773521
Fix tests
MilosKozak Jun 25, 2026
194febb
Wear wizard correction: fix unclampedInsulin for IOB > calculated dose
olorinmaia Jun 25, 2026
e24f903
Wear wizard correction: disable confirm swipe when adjusted total is …
olorinmaia Jun 25, 2026
204dd4f
Wear wizard correction: fix number+unit centering between ± buttons
olorinmaia Jun 25, 2026
7310d16
Wear wizard correction: screen-off grace period, no absolute timeout
olorinmaia Jun 25, 2026
e19bd80
Wear wizard correction: pass correctionU through BolusCommit wire for…
olorinmaia Jun 25, 2026
67ac39a
Bump dagger from 2.59.2 to 2.60
dependabot[bot] Jun 26, 2026
3b837ed
Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0
dependabot[bot] Jun 26, 2026
dc11758
Wear wizard correction: code review safety & cleanup fixes
olorinmaia Jun 26, 2026
0cb39c2
Reuse MODE_INSULIN and add MODE_CARBS constant in QuickWizardSourc
olorinmaia Jun 26, 2026
f0bf176
Client: fix - replace alarms with simple dialogs on remote errors
olorinmaia Jun 26, 2026
e1e7d9b
Client: fix HTTP 410 tombstone caused by WS echo self-processing
olorinmaia Jun 26, 2026
8dc33d5
Overview: Base basal rate popup when no TBR is active
olorinmaia Jun 26, 2026
a1f41cc
Merge pull request #4923 from olorinmaia/wear_improve_quickwizard_bol…
MilosKozak Jun 27, 2026
2df00be
Merge pull request #4931 from nightscout/dependabot/gradle/dev/com.go…
MilosKozak Jun 27, 2026
0ac52aa
Merge pull request #4930 from nightscout/dependabot/gradle/dev/dagger…
MilosKozak Jun 27, 2026
77215ee
Merge pull request #4933 from olorinmaia/phone/fix/bug_master_is_offl…
MilosKozak Jun 27, 2026
fc87021
Merge pull request #4925 from olorinmaia/phone/fix/quicklaunch_ttpresets
MilosKozak Jun 27, 2026
009a025
Merge pull request #4934 from olorinmaia/phone/improve/base_basal_rat…
MilosKozak Jun 27, 2026
7fca39e
UI tests (#4935)
MilosKozak Jun 27, 2026
eb792f9
Exclude previews from coverage
MilosKozak Jun 27, 2026
d5ff5c6
Merge pull request #4936 from nightscout/dev-jacoco-preview-exclusion
MilosKozak Jun 27, 2026
aa9ad40
New Crowdin updates (#4921)
MilosKozak Jun 27, 2026
989065e
mmol conversion 18.0 → 18.0155
MilosKozak Jun 27, 2026
7013a54
Wear: show correction amount in total insulin label on wizard result …
olorinmaia Jun 28, 2026
de18e35
Wear wizard result: redesign summary card visuals
olorinmaia Jun 28, 2026
2e18410
Concentration fix: PumpPluginConstraints
MilosKozak Jun 29, 2026
0ff7b08
Fix tests
MilosKozak Jun 29, 2026
fb53fa7
Concentration fixed & cleanup
MilosKozak Jun 29, 2026
fbc7cc8
Dana: notification when bolus block is activated on pump
MilosKozak Jun 29, 2026
7f4fd2c
QuickWizard improvements
MilosKozak Jun 29, 2026
dd2d227
Bump junit from 6.1.0 to 6.1.1
dependabot[bot] Jun 29, 2026
1a8544a
Client: fix tombstoning
MilosKozak Jun 29, 2026
edf417d
Merge pull request #4939 from nightscout/dependabot/gradle/dev/junit-…
MilosKozak Jun 29, 2026
d9e9445
SiteRotation: client control, search fix
MilosKozak Jun 29, 2026
502252f
Client-master UI visibility
MilosKozak Jun 29, 2026
77683ea
Aloow remote control searchable
MilosKozak Jun 30, 2026
1f43290
No flicking by progress bar
MilosKozak Jun 30, 2026
455c940
Statistics: expand by default
MilosKozak Jun 30, 2026
79227e4
Tidepool: fix sending TBRs, tests
MilosKozak Jun 30, 2026
9fe99b4
PS: schedule update at the end of temporary PS
MilosKozak Jun 30, 2026
f55e112
Tests
MilosKozak Jun 30, 2026
6511646
Fix tests
MilosKozak Jun 30, 2026
f07f000
Tests
MilosKozak Jun 30, 2026
52d94a9
Tidepool: don't switch modes
MilosKozak Jun 30, 2026
fd319f3
Tests
MilosKozak Jul 1, 2026
fc1a475
CarbSuggestionReceiver test
MilosKozak Jul 1, 2026
d8860a3
Tests
MilosKozak Jul 1, 2026
8acd15e
Tests
MilosKozak Jul 1, 2026
0f70ad8
Gradle cleanup
MilosKozak Jul 1, 2026
e7c995c
SetupWizard: Master-Client
MilosKozak Jul 1, 2026
e51f4fe
Fix tests
MilosKozak Jul 1, 2026
f726d47
Fix profile edit save
MilosKozak Jul 1, 2026
79c3d7b
Fix tests
MilosKozak Jul 1, 2026
ad76846
Tests
MilosKozak Jul 1, 2026
0e76767
Tests
MilosKozak Jul 1, 2026
87d8b46
Bump composeUi from 1.11.3 to 1.11.4
dependabot[bot] Jul 2, 2026
1edb473
Bump androidxHilt from 1.3.0 to 1.4.0
dependabot[bot] Jul 2, 2026
bfa3715
Bump androidx.test.uiautomator:uiautomator from 2.3.0 to 2.4.0
dependabot[bot] Jul 2, 2026
75f42da
Bump androidx.wear.tiles:tiles from 1.6.0 to 1.6.1
dependabot[bot] Jul 2, 2026
7235468
Bump androidx.wear.protolayout:protolayout-expression
dependabot[bot] Jul 2, 2026
ba64249
Bump androidx.hilt:hilt-navigation-compose from 1.3.0 to 1.4.0
dependabot[bot] Jul 2, 2026
8bce8b9
Bump androidx.sqlite:sqlite-bundled from 2.6.2 to 2.7.0
dependabot[bot] Jul 2, 2026
635c472
Plugin enable/disable from search
MilosKozak Jul 2, 2026
884442a
Test
MilosKozak Jul 2, 2026
48b2496
Wizard: fix alarm
MilosKozak Jul 2, 2026
808fef3
Merge pull request #4943 from nightscout/dependabot/gradle/dev/compos…
MilosKozak Jul 2, 2026
dad626c
New Crowdin updates (#4937)
MilosKozak Jul 2, 2026
612e5d9
Merge pull request #4949 from nightscout/dependabot/gradle/dev/androi…
MilosKozak Jul 2, 2026
c70d025
Merge pull request #4948 from nightscout/dependabot/gradle/dev/androi…
MilosKozak Jul 2, 2026
8316d72
Merge branch 'dev' into dependabot/gradle/dev/androidx.wear.tiles-til…
MilosKozak Jul 2, 2026
8c96502
Merge pull request #4947 from nightscout/dependabot/gradle/dev/androi…
MilosKozak Jul 2, 2026
1881500
Merge pull request #4945 from nightscout/dependabot/gradle/dev/androi…
MilosKozak Jul 2, 2026
8a68b3a
Merge pull request #4946 from nightscout/dependabot/gradle/dev/androi…
MilosKozak Jul 2, 2026
9b97482
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jul 2, 2026
4cc7cd4
Merge pull request #4950 from nightscout/dependabot/gradle/dev/androi…
MilosKozak Jul 2, 2026
9196b3f
Fix tests
MilosKozak Jul 2, 2026
1f8ab7d
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Jul 2, 2026
941db9b
Bump androidx.compose:compose-bom from 2026.06.00 to 2026.06.01
dependabot[bot] Jul 2, 2026
bcb7a71
Merge pull request #4951 from nightscout/dependabot/gradle/dev/androi…
MilosKozak Jul 2, 2026
8248489
Merge pull request #4929 from olorinmaia/wear/impl/bolus_wizard_corre…
MilosKozak Jul 2, 2026
4e1f5dc
Fix tests
MilosKozak Jul 2, 2026
9a9973d
Tests
MilosKozak Jul 2, 2026
141b6a1
Fix verifying password
MilosKozak Jul 2, 2026
5ca3bea
Fix wear coverage
MilosKozak Jul 2, 2026
2e09122
Test optimize
MilosKozak Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
26 changes: 12 additions & 14 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,16 @@ jobs:
- checkout

- run:
name: Run compileFullDebugAndroidTestSources
name: Compile all test sources
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
env
./gradlew \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dkotlin.daemon.jvm.options="-Xmx3g" \
-Dorg.gradle.daemon=true \
compileFullDebugAndroidTestSources
compileFullDebugAndroidTestSources \
compileFullDebugUnitTestSources

- run:
name: Create avd
Expand All @@ -47,35 +46,34 @@ jobs:
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
env
export JAVA_TOOL_OPTIONS="-Xmx6g"
./gradlew \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseG1GC -XX:MaxMetaspaceSize=1g -Xss1024m" \
-Dkotlin.daemon.jvm.options="-Xmx3g" \
-Dorg.gradle.workers.max=4 \
-Dorg.gradle.daemon=true \
connectedFullDebugAndroidTest

- run:
name: Kill emulators
command: |
echo "Killing emulators"
adb devices | grep emulator | cut -f1 | while read -r line; do adb -s $line emu kill; done

- run:
name: Run testFullDebugUnitTest
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
./gradlew \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dkotlin.daemon.jvm.options="-Xmx3g" \
-Dorg.gradle.workers.max=22 \
-Dorg.gradle.daemon=true \
testFullDebugUnitTest

- run:
run: Run jacocoAllDebugReport
name: Run jacocoAllDebugReport
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
Expand Down
74 changes: 74 additions & 0 deletions .claude/agent-memory/code-reviewer/MEMORY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Code Reviewer Memory

## Key Patterns Confirmed

- `AapsSpacing` object: `extraSmall`(2), `small`(4), `medium`(8), `large`(12), `extraLarge`(16),
`xxLarge`(24). Use instead of hardcoded `.dp` literals.
- `clearFocusOnTap` in `app.aaps.core.ui.compose.Modifiers.kt`. Required for screens with text
fields.
- `ComposablePluginContent` in
`core/ui/src/main/kotlin/app/aaps/core/ui/compose/ComposablePluginContent.kt`.
- `PluginBase.scope` is private; plugins must declare their own `CoroutineScope`.
- Previews MUST use `MaterialTheme` wrapper (NOT `AapsTheme` — crashes in preview tool).

## DI Patterns by Module

- **Medtrum + Equil**: Use Hilt (`@HiltViewModel`, `hiltViewModel()`). Build needs
`libs.plugins.hilt`,
`com.google.dagger.hilt.android`, `androidx.hilt.navigation.compose`, ksp hilt compiler.
App has `@HiltAndroidApp` on `MainApp`. This is the correct modern pattern.
- **NSClient, Tidepool, Wear, SMS**: Use Dagger `ViewModelFactory` via
`@Binds @IntoMap @ViewModelKey`.
`ComposablePluginContent` receives `viewModelFactory` and calls
`ViewModelProvider(viewModelStoreOwner, viewModelFactory)[...]`. Instantiating via `remember {}`
is a latent lifecycle bug (viewModelScope never cancelled correctly).
- **ComposeContent constructor**: Always constructed manually in the plugin, receives only
non-ViewModel deps (e.g., `protectionCheck`, `blePreCheck`) as constructor params.

## Recurring Bugs Across Pump Compose Migrations

- `BlePreCheckHost` + wizard screen render simultaneously — wizard shows before BLE check completes.
Need a separate `isCheckingBle` state to gate wizard rendering. (EOPatch2, Equil) — STILL OPEN in
Equil.
- `SharedFlow` event branches left empty (`// handled inline`) when they are actually NOT handled.
(Equil: `ShowMessage` in `EquilComposeContent` swallows unpair errors)
- Public `val rh: ResourceHelper` on ViewModels — should always be `private val`. (EOPatch2,
Equil) — FIXED in Equil.
- `canGoBack` implemented as a plain Kotlin computed property reading `StateFlow.value` instead of
a derived `StateFlow` — not reactive in Compose. (Equil) — FIXED.
- Step composables accessing ViewModel data via plain function calls instead of `StateFlow`. (
Equil) — FIXED.
- Step count (`totalSteps`) mismatch when shared steps (AIR, CONFIRM) are reused across workflows
without updating the workflow's declared `totalSteps`. (Equil: CHANGE_INSULIN declares 4 but
runs 6 steps) — FIXED (count correct), but comment in EquilWizardStep.kt line 15 not updated.
- Duplicate therapy event insertion in activation confirm step — check all `insertTherapyEvent`
calls when porting confirm logic. (Equil: double CANNULA_CHANGE event) — RESOLVED, not duplicated.
- Air removal step: "Finish" button must be disabled until the removal command has been sent and
succeeded. Easy to forget when porting from XML (button was initially disabled via alpha). (
Equil) — FIXED.
- Callback.run() in commandQueue executes on background HandlerThread — all MutableStateFlow.value
assignments from callbacks are safe (StateFlow is thread-safe), but plain `var` fields (
autoFillActive,
fillStepCount) accessed from callbacks are NOT safe without @Volatile.
- Empty password allowed through SerialNumberStep — `isPasswordValid = password.isEmpty() || ...`
lets user pair with no password, which is stored and used for future unpair.
- Resource strings with embedded stray characters: equil_install has trailing `"`,
equil_unbind_content
has full-width `!`. Always check string values not just keys.
- `GIF_MAX_HEIGHT = 300.dp` duplicated in 4 step files — WizardGifImage.kt was planned but not
created.

## Architecture Notes

- `WizardGifImage.kt` / `WizardImage` in `core/ui/compose/pump/` — shared GIF/image wrapper for
wizards. Step composables should use this instead of copy-pasting `GlideImage` boilerplate.
- `WizardStepLayout`, `StepProgressIndicator`, `WizardButton` in `core/ui/compose/pump/` — shared
wizard chrome components.
- `BlePreCheckHost` in `core/ui/compose/pump/BlePreCheckHost.kt` — async, renders wizard at same
time unless guarded.

## See Also

- `equil-migration.md` — detailed Equil Compose migration review (2026-03-09)
- Earlier migration reviews (NSClient, Tidepool, Wear, SMS, Preferences, EOPatch2): see conversation
history from 2026-03-01 and 2026-03-02.
45 changes: 45 additions & 0 deletions .claude/agent-memory/design-reviewer/MEMORY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Design Reviewer Memory

## Key Files
- Theme spacing: `core/ui/src/main/kotlin/app/aaps/core/ui/compose/AapsSpacing.kt`
- Shared icon component: `core/ui/src/main/kotlin/app/aaps/core/ui/compose/TonalIcon.kt` (40dp box, 24dp icon)
- Core composables: `core/ui/src/main/kotlin/app/aaps/core/ui/compose/` (AapsTopAppBar, AapsCard, etc.)

## Sizing Conventions
- Standard icon in icon button (toolbar/list): 24dp
- TonalIcon container: 40dp box, 24dp icon inside
- ConfigPluginItem (expanded plugin rows): 40dp tonal icon container, 24dp icon
- Category row leading icon: 24dp (no container)
- Material minimum touch target: 48dp (use `minimumInteractiveComponentSize` or ensure 48dp hit area)
- IconButton default size: 48dp touch area, but visually can be constrained with `.size()`

## Color Conventions
- All icon tints use `MaterialTheme.colorScheme.onSurfaceVariant` for secondary/decorative icons
- Primary/active plugin icons use `MaterialTheme.colorScheme.primary`
- Do NOT use hardcoded colors; use `MaterialTheme.colorScheme.*` or `AapsTheme.colors.*`

## ConfigurationScreen Patterns (ui module)
- Category rows: custom Row with clickable modifier, 24dp start padding, 16dp end padding
- Expanded plugin rows: ListItem with rounded card + secondaryContainer tinted background
- Chevron: `KeyboardArrowRight` (24dp), animated rotation 0→90° on expand
- Shortcut icon buttons use `.size(36dp)` constraint on IconButton with 20dp inner icon
- See: `ui/src/main/kotlin/app/aaps/ui/compose/configuration/ConfigurationScreen.kt`

## Accessibility Patterns
- Decorative icons that are part of a labeled row: `contentDescription = null` is acceptable
- Action icons (IconButton) MUST have meaningful contentDescription
- ConfigurationScreen Settings cog IconButton uses `contentDescription = null` — this is a known bug (line 321)
- Disabled alpha convention: `0.38f` (matches Material spec) — used inline as a local val, no shared constant in core/ui yet

## ConfigPluginItem Interaction Patterns
- Card is only clickable when plugin is enabled (line 337: `.then(if (isEnabled) Modifier.clickable {...} else Modifier)`)
- This creates an interaction gap: disabled plugins have no tap feedback at all — users may tap and think the app froze
- Switch `onCheckedChange = null` correctly disables it when `canToggle = false` (renders as non-interactive)
- The Settings cog is hidden when plugin is disabled (correct) — avoids dead-end navigation
- Trailing Row contains both cog + switch with no spacer between them — they sit very close together (touch target collision risk)
- `vertical = 2.dp` card margin is tight — cards stack with minimal breathing room

## Patterns Seen
- QuickLaunchConfigScreen uses `OutlinedIconButton` for add/remove row actions
- DrawerMenuItem uses full-width clickable rows with icon + label + description
- ListItem trailing content uses default IconButton (48dp touch target, no size constraint)
Loading
Loading