Skip to content

Rnd 33848 | "version": "1.23.0" upgrade - #439

Open
giladna wants to merge 113 commits into
agencyenterprise:masterfrom
Hello-Heart:RND-33848_2
Open

Rnd 33848 | "version": "1.23.0" upgrade#439
giladna wants to merge 113 commits into
agencyenterprise:masterfrom
Hello-Heart:RND-33848_2

Conversation

@giladna

@giladna giladna commented May 14, 2026

Copy link
Copy Markdown

Description

upgrade "version": "1.23.0",

Fixes # (issue)

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • I have checked my code and corrected any misspellings

yairpi165 and others added 30 commits August 21, 2025 12:53
…ealthKit module

- Implemented `saveBloodPressureSamples` method for saving blood pressure data.
- Added methods to retrieve medication, condition, allergy, immunization, procedure, lab, and clinical vital records.
- Updated TypeScript definitions and JavaScript exports to include new methods.
feat: Add save blood pressure samples and clinical records methods
[RND-28226] Add BP Write permission
…s of enabled state

Previously syncInterval was only stored when enabled:true, so passing a
custom interval while disabling sync would silently drop it. Now the
interval is always written to NSUserDefaults so re-enabling later picks
up the correct value without needing to re-specify it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a new getStepCountSamples method that uses fetchQuantitySamplesOfType
instead of the aggregate fetchCumulativeSumStatisticsCollection. This
returns individual HK samples with full provenance: UUID, sourceName,
sourceBundleId, device info, and metadata. getDailyStepCountSamples is
preserved for backward compatibility.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Missing forward declaration caused "No visible @interface" build error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add missing hasListeners parameter to fitness observer initialization
- Implement includeManuallyAdded option for step/quantity sample queries
- Replace deprecated NSKeyedArchiver APIs with secure coding variants
- Fix fetchAnchoredWorkouts schema to normalize added/deleted fields
- Add InsulinDelivery case to quantityTypeFromName and default nil for unknown types
- Replace deprecated unarchiveObjectWithData with unarchivedObjectOfClass
- Add _initializeHealthStore call in configureBackgroundSync
- Add every24hours case to syncIntervalFromString
- Validate required 'type' field in getDeltaSamplesForPermissions
- Add default startDate fallback in predicateForAnchoredQueries
- Fix getStepCountSamples metadata schema documentation
- Add 30+ missing methods to docs/README.md
- Add 7 missing observer types to HealthObserver enum
- Normalize Periods.lastYear to lowercase 'lastyear'
- Remove 27 unnecessary comments per CLAUDE.md guidelines

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Gilad Nadav and others added 30 commits May 11, 2026 11:33
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Guard wrong types and log warnings for unrecognized strings.
Replace MAX() with isfinite check to correctly reject NaN/Infinity.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
… behavior

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
MindfulSession is a category type, not a quantity type. It was silently
skipped because quantityTypeFromName returns nil for it. Adds explicit
branch alongside SleepAnalysis so background delivery fires correctly.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Any positive finite value passes through unchanged. Only zero, negative,
NaN, and Infinity fall back to 86400s — not clamped to 1s minimum.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
… only

removeObserver: with no name argument removes all observers on self,
including any non-HealthKit registrations. Scope the dedup remove to
each supported event name to avoid silently dropping unrelated observers.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…avior

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Aligns numeric invalid-input behavior with string/type fallbacks — all
three paths now default to 86400s (24 hours) for unrecognized input.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Floats are rounded to nearest integer (e.g. 1.5 → 2, 0.3 → 1).
Zero, negative, NaN, and Infinity fall back to 86400s (24h default).
Updates docs and JSDoc to match.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…vent double-init

Serializes the lazy-init block so concurrent calls cannot both pass the
BOOL check and call initializeBackgroundObservers: twice.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…type

Documents that number must be a positive finite value; floats are rounded
and invalid values (zero, negative, NaN, Infinity) fall back to 86400s.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
… fitness_registerObserver

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…if chain

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
RND-33517: fix: normalize Vo2Max unit to ml/kg/min in native bridge
…x duplicate JSDoc

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
RND-33794 |  HealthKit background delivery never fired
… for killed-state delivery

When initializeBackgroundObservers is called with nil bridge from
AppDelegate.didFinishLaunchingWithOptions (before JS loads), the observer
fires but has no bridge to emit events through. Without this guard,
sendEventWithName crashes. With it, events are silently dropped until
the bridge connects via configureBackgroundSync — anchors and
completionHandler still run correctly.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…t double-init

Move _observersInitialized guard inside initializeBackgroundObservers so
both the AppDelegate early call (nil bridge) and the configureBackgroundSync
lazy call (with bridge) are protected. Without this, two HKObserverQuery
objects registered per type causing duplicate firings on every data change.

Also skip self.bridge assignment when bridge is nil so the early AppDelegate
call does not overwrite the bridge set later by configureBackgroundSync.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…servers, set flag atomically

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
… metrics on killed-state, log unknown metrics

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…inate TOCTOU window

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
RND-33848 | fix(observers): support killed-state HealthKit background delivery
…cs provided

Clinical observers and results_registerObservers (InsulinDelivery) previously
always registered regardless of the metrics filter, causing unnecessary background
wakes for unauthorized types. When a metrics list is specified, only the requested
fitness types are registered. Backwards compatible — nil/empty metrics registers all
types as before.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…st zero-observer init

- Add 9 metrics to healthMetricToHKTypeMap: spO2, respiratoryRate, bodyTemperature,
  weight, height, bmi, bodyFat, bloodGlucose, bloodPressure (via BloodPressureSystolic proxy)
- Mirror additions in allFitnessObservers so register-all path stays consistent
- Early return without setting _observersInitialized when all requested metrics are
  unsupported (e.g. totalCholesterol) — prevents permanent flag corruption, allows retry
- Document nil/@[] treated identically as register-all in configureBackgroundSync

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…ro-observer early return

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
RND-33848 | cont fix(observers): skip clinical and InsulinDelivery when specific metrics provided
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants