Skip to content

Follow the Grove Page Scaffold - #31

Merged
PSchmiedmayer merged 11 commits into
mainfrom
page-scaffold-and-report-names
Sep 9, 2026
Merged

PSchmiedmayer merged 11 commits into
mainfrom
page-scaffold-and-report-names

Conversation

@PSchmiedmayer

@PSchmiedmayer PSchmiedmayer commented Sep 8, 2026 •

Copy link
Copy Markdown
Member

♻️ Current situation & Problem

The onboarding pages are built on Grove's old onboarding views, which Grove has replaced with one page scaffold. On the HealthKit page the primary button had to be disabled by hand while the permission sheet is up, with Skip staying live underneath.

⚙️ Release Notes

  • Welcome, Disclaimer and HealthKit use PageView, PageHeader and PageActions.
  • While the Health permission request waits, the primary button reads "Waiting" and is held back with actionButtonDisabled(.primary); Skip stays live once recovery is offered.
  • Grove follows its consent-and-documentation-grid branch until the next release; Textual moves to 0.6.4.

📚 Documentation

None.

✅ Testing

The app builds against the pinned revision and the onboarding UI tests pass on iOS 26.5.

Code of Conduct & Contributing Guidelines

By creating and submitting this pull request, you agree to follow our Code of Conduct and Contributing Guidelines:

@coderabbitai

coderabbitai Bot commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 03d5305f-47cf-428d-8460-74ccabe993b2


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@PSchmiedmayer
PSchmiedmayer marked this pull request as ready for review September 8, 2026 19:30
Copilot AI lite review requested due to automatic review settings September 8, 2026 19:30
@PSchmiedmayer PSchmiedmayer added enhancement New feature or request dependencies Pull requests that update a dependency file labels Sep 8, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

There are confirmed issues affecting filename determinism (calendar-dependent formatting) and HealthKitPermissions UX/accessibility state handling that should be corrected before approval.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates onboarding screens to the newer Grove page scaffold components and improves study report discoverability by generating human-readable, time-sorted report file names (study/participant/local timestamp + UUID), including preserving the prefix across upload retries.

Changes:

  • Add StudyReport.fileName(...) and StudyReport.uploadName(for:) utilities plus unit tests for deterministic report naming.
  • Switch report generation/storage/upload paths to use the new naming strategy (including retry behavior).
  • Migrate onboarding pages (Welcome/Disclaimer/HealthKit) to Grove’s PageView/PageHeader/PageActions, and pin Grove to a feature branch (plus update textual to 0.6.4 in the resolved file).
File summaries
File Description
PlainlyShared/Tests/PlainlySharedTests/StudyReportFileNameTests.swift Adds unit tests covering report file naming and upload retry naming behavior.
PlainlyShared/Sources/PlainlyShared/Chat/StudyReport+FileName.swift Introduces shared filename and upload-name helpers plus sanitization.
PlainlyShared/Package.swift Pins Grove dependency to consent-and-documentation-grid branch.
Plainly/Study/Chat/StudyChatViewModel.swift Generates report temp files using the new StudyReport.fileName(...) format.
Plainly/Onboarding/Welcome.swift Migrates Welcome screen to PageView and symbol-based onboarding areas.
Plainly/Onboarding/HealthKitPermissions.swift Migrates HealthKit permissions screen to page scaffold and PageActions.
Plainly/Onboarding/Disclaimer.swift Migrates Disclaimer screen to PageView and symbol-based onboarding areas.
Plainly/Modules/PendingReportStore.swift Retains failed uploads under the report’s own filename instead of a fresh UUID filename.
Plainly/Modules/FirebaseUpload.swift Uploads using StudyReport.uploadName(for:) to keep prefix and rotate UUID per attempt.
Plainly.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved Updates resolved pins (Grove branch+revision, textual 0.6.4).
Plainly.xcodeproj/project.pbxproj Updates SwiftPM package requirement and adds GroveOnboarding product dependency.
Review details

Suppressed comments (1)

Plainly/Onboarding/HealthKitPermissions.swift:79

  • primaryButtonTitle treats .recoveryAvailable as "waiting" because it uses authorizationState.isProcessing, but primaryViewState switches back to .idle in that state. This can produce an enabled primary action that still reads as "waiting".
    private var primaryButtonTitle: LocalizedStringResource {
        authorizationState.isProcessing ? "HEALTHKIT_PERMISSIONS_WAITING" : "HEALTHKIT_PERMISSIONS_BUTTON"
    }
  • Files reviewed: 11/11 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@PSchmiedmayer PSchmiedmayer changed the title Follow the Grove Page Scaffold and Name Reports by Participant and Time Follow the Grove Page Scaffold at the Top of Its Stack Sep 8, 2026
@PSchmiedmayer
PSchmiedmayer force-pushed the page-scaffold-and-report-names branch from affba0f to 8ba6ad1 Compare September 8, 2026 19:41
@PSchmiedmayer PSchmiedmayer changed the title Follow the Grove Page Scaffold at the Top of Its Stack Follow the Grove Page Scaffold Sep 9, 2026
@PSchmiedmayer
PSchmiedmayer merged commit 6f9c837 into main Sep 9, 2026
12 of 13 checks passed
@PSchmiedmayer
PSchmiedmayer deleted the page-scaffold-and-report-names branch September 9, 2026 08:20
PSchmiedmayer added a commit that referenced this pull request Sep 9, 2026
### ♻️ Current situation & Problem

The onboarding pages are built on Grove's old onboarding views, which
Grove has replaced with one page scaffold. On the HealthKit page the
primary button had to be disabled by hand while the permission sheet is
up, with Skip staying live underneath.

### ⚙️ Release Notes

- Welcome, Disclaimer and HealthKit use `PageView`, `PageHeader` and
`PageActions`.
- While the Health permission request waits, the primary button reads
"Waiting" and is held back with `actionButtonDisabled(.primary)`; Skip
stays live once recovery is offered.
- Grove follows its `consent-and-documentation-grid` branch until the
next release; Textual moves to 0.6.4.

### 📚 Documentation

None.

### ✅ Testing

The app builds against the pinned revision and the onboarding UI tests
pass on iOS 26.5.

### Code of Conduct & Contributing Guidelines

By creating and submitting this pull request, you agree to follow our
[Code of
Conduct](https://github.com/SchmiedmayerLab/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/SchmiedmayerLab/.github/blob/main/CONTRIBUTING.md):
- [x] I agree to follow the [Code of
Conduct](https://github.com/SchmiedmayerLab/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/SchmiedmayerLab/.github/blob/main/CONTRIBUTING.md).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants