Skip to content

Integrate upstream updates and Apple UI fixes for testing - #21

Closed
AlexSchmidt1999 wants to merge 19 commits into
codex/apple-dashboard-performancefrom
codex/upstream-sync-oct09
Closed

AlexSchmidt1999 wants to merge 19 commits into
codex/apple-dashboard-performancefrom
codex/upstream-sync-oct09

Conversation

@AlexSchmidt1999

@AlexSchmidt1999 AlexSchmidt1999 commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

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.

ryanbr and others added 19 commits October 4, 2026 12:48
…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
@AlexSchmidt1999 AlexSchmidt1999 changed the title Sync 12 upstream commits into the Apple test version Integrate upstream updates and Apple UI fixes for testing Oct 9, 2026
@AlexSchmidt1999

Copy link
Copy Markdown
Owner Author

Closing this older fork test PR. Its full head (bd0702144c67) is included in the combined test branch. New test-version work continues in #28. The branch and commits are kept.

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.

6 participants