Rnd 33848 | "version": "1.23.0" upgrade - #439
Open
giladna wants to merge 113 commits into
Open
Conversation
…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
[RND-28226] Ver 1.20.0 bump
…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>
…meric interval to 1s
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
upgrade "version": "1.23.0",
Fixes # (issue)
Type of change
Please delete options that are not relevant.
Checklist: