Skip to content

Claude/whoop app fork improvements 897f7b - #5

Open
MatB57 wants to merge 8 commits into
ParthJadhav:mainfrom
MatB57:claude/whoop-app-fork-improvements-897f7b
Open

Claude/whoop app fork improvements 897f7b#5
MatB57 wants to merge 8 commits into
ParthJadhav:mainfrom
MatB57:claude/whoop-app-fork-improvements-897f7b

Conversation

@MatB57

@MatB57 MatB57 commented Aug 12, 2026

Copy link
Copy Markdown

What this PR does

Type of change

  • Bug fix
  • New feature
  • Refactor / cleanup
  • Documentation
  • CI / tooling

How it was tested

Checklist

  • Swift package tests pass for any package I touched (swift test in Packages/<name>)
  • Android unit tests pass if I touched android/ (./gradlew testFullDebugUnitTest)
  • No new build warnings introduced
  • UI changes use only StrandDesign tokens — no hardcoded colors, fonts, or spacing
  • No hardcoded hex frame bytes; protocol facts live in the schema / decoders
  • Follows the conventions in docs/CONTRIBUTING.md
  • I did not commit generated output (Strand.xcodeproj/) or any secrets/keystores

Related issues

noaetmatthias and others added 8 commits August 12, 2026 18:05
The in-app update checkers (macOS + Android), AltStore/SideStore source
metadata, bug-report links, and install/README docs all still pointed at
ParthJadhav/noop. Retarget them at MatB57/noop so future releases published
here are the ones this fork's users (and their sideloaded devices) actually
discover and auto-update to.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
French was ~15% complete on the main catalog (458/2988 keys) and partial
elsewhere. Fills in all remaining keys across the four Xcode string
catalogs (Strand, NOOPWatch, NOOPWatchComplications, StrandDesign) and adds
the missing android/values-fr/strings.xml, matching the established
"vous"-register terminology already used in the existing French strings
(Récupération, Effort, VFC, Bracelet, Sources de données, etc.).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…897f7b

Claude/whoop app fork improvements 897f7b
Version bump only, to trigger a clean CI build/publish of the update-
redirect and French-localization changes for MatB57/noop, and to give the
family's devices a distinct version to update to.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
TestReportLinkTest.kt and TestReportLinkTests.swift still asserted the old
ParthJadhav/noop issue URL, which broke Android CI's unit tests after the
source was retargeted to MatB57/noop.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The first real release built and published from this fork. Prepends the
8.2.1 entry (keeps 8.2.0 for AltStore's version history) and fixes the
remaining ParthJadhav source-attribution string.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Version-only bump to verify the in-app "Check for updates" flow works
end-to-end for both a currently-installed app and a freshly-checking one.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jaedonvs pushed a commit to jaedonvs/noop that referenced this pull request Aug 15, 2026
…ingle-slot arbiter (ParthJadhav#5)

ParthJadhav#4/#6 (iOS): the iOS smart alarm only armed the strap firmware buzz and posted a local notification
AFTER the strap reported it fired, so a failed strap buzz or a suspended phone past day one meant NO
wake at all. applySmartAlarm() now also schedules a REPEATING daily UNCalendarNotificationTrigger
(the WindDownNudge idiom: lives in the notification center, survives relaunch) at the wake time per
selected weekday, gated on the wrist-alerts master + notification auth, replaced on every re-arm and
cancelled on disarm. HONEST: it is a best-effort backup, not a guaranteed loud alarm (a sideloaded
build has no critical-alert entitlement, so Focus/silent can still mute it) , the honesty card now
says so and still tells users to keep their Clock alarm.

ParthJadhav#5 (Android): "Buzz WHOOP 4/5" and the "Strap wake-alarm" both drove the single firmware-alarm slot
with no coordination, so toggling one off ran disableStrapAlarm() and killed the other. Introduced
one reconcileStrapAlarm() as the SOLE caller of arm/disable: it computes both requested times and
arms the slot to the EARLIEST when either is on, else disarms. All six call sites routed through it.
Test: both on, turn one off, slot stays armed to the other.
jaedonvs pushed a commit to jaedonvs/noop that referenced this pull request Aug 15, 2026
iOS Backup & Sync: mirror Android adjustable keep-count (default 7)
jaedonvs pushed a commit to jaedonvs/noop that referenced this pull request Aug 15, 2026
fitnessReadyLead() returns an already-localized String (via
String(localized:)), but ReadinessChecklistCard.lead was typed
LocalizedStringKey?, which SwiftUI treats as a lookup key rather than
literal text. Retype to String? — Text(_:) accepts both, and this is
the correct type for pre-resolved copy.

Pre-existing break from commit 75a096a (PR #81), unrelated to this
branch's localization change; fixing here so PR ParthJadhav#5's CI build passes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.

2 participants