Repository navigation
Integrate upstream updates and Apple UI fixes for testing - #21
Closed
AlexSchmidt1999 wants to merge 19 commits into
Closed
AlexSchmidt1999 wants to merge 19 commits into
AlexSchmidt1999 wants to merge 19 commits into
Conversation
…talls beside 749c941 dropped the .staging suffix from every iOS-family bundle id because iOS has no App Store app to install beside (NoopApp is closed), so the overlay served no purpose there and only broke sideloading. It did not carry that to PRODUCT_NAME, which has read "NOOP Staging" since 719477a. So the iOS app has been shipping a production bundle identifier under a staging product name, signed releases included: the bundle was NOOP Staging.app, with an executable to match. The same oversight reached the release notes. Both fork workflows announced "NOOP Staging identity, installs beside the official app (separate data)" for all three platforms at once. Since 749c941 that is false for iOS, which carries the production id, so a sideload REPLACES an installed official app and uses its data. Android (.staging via -PstagingRelease) and macOS (.noop.staging, kept deliberately per ryanbr#39) genuinely do install beside. The claim is now made per platform, and the iOS line says plainly that it replaces, because believing the old wording could cost someone the data they expected to be left alone. macOS is untouched and still consistent with itself. Nothing keys off the iOS product name: the WKCompanion reference uses the bundle id, StrandTests' TEST_HOST points at the macOS NOOP Staging.app rather than the iOS bundle, Info.plist already set CFBundleName and CFBundleDisplayName to NOOP, and both workflows locate the built bundle by a *.app glob. Not claimed as the cause of the Apple Health symptom in ryanbr#2514: the plist display names were already NOOP, so what Health reads there is still unestablished. Refs ryanbr#2514
…he Devices card The sidebar footer and the onboarding "bonded" line truncated `batteryPct` (`Int($0)`), while the Devices card rounds through `LiveConsoleReadout.batteryPercent`. A strap reporting 34.77% read "35%" on Devices and "Battery 34%" in the sidebar at the same moment. Both now go through the same rounding seam, so every battery readout agrees. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The widget worker compares a PERSISTED fingerprint and returns before StressWidgetProducer.todayCurve is reached at all, so a backfill landing today's rows under an alias id (ryanbr#908) left the stored value unmoved and skipped the scoring pass outright. No memo inside the producer can rescue a caller that never arrives. The Stress screen's periodic re-read had the same shape: two aggregates over the active strap in front of three union reads. Both now ask WhoopRepository.hrUnionFingerprint, and the worker's composition moves into a testable storedFingerprint so the gate stops being unreachable from a JVM test. Apple's StressDayCurve already walked every id but summed them into one count and one max, which can hold steady while the window's composition changes, so it gates on the per-id hrFingerprintUnion instead. The summed Repository.hrFingerprint(from:to:) had one caller and no test, and goes with it along with its stale claim to be a twin of hrFingerprintWindow. Also corrects both union-witness docs: one caller persists a value now, and a stored value only ever compares equal to one written in the same format. Refs ryanbr#2710
Center the pending-sync indicator below Effort
Center training icons and inset Dynamic Island content
Owner
Author
|
Closing this older fork test PR. Its full head ( |
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.
Integrate the 12 upstream commits through 4d40dda into the Apple test-version branch and include the two reviewed UI fixes merged via fork PRs #22 and #23.
Dynamic Island training glyphs are centered in explicit bounds with native content margins. The pending-sync indicator sits below Effort in an overlay, preserving the Today hero height instead of inserting a row. Existing sync visibility behavior and training actions remain unchanged.
The full upstream sync retains upstream Android and workflow files as requested; only Apple targets are built and tested. No new Android work is included. Security-sensitive source and build changes were reviewed with separate baseline commits. Local macOS/iOS builds, focused UI/guard tests, source and binary policy, translation coverage and doc hygiene passed on the equivalent source tree. GitHub Actions is currently blocked by GitHub for this fork's Actions usage; no remote CI success is claimed.
The combined test version with offline training is continued in fork PR #24 and is installed locally as NOOP 12.0.0 build 448. The fork main branch remains unchanged while the owner tests the candidate.