Skip to content

feat(ios): wire merge and PR review interactive workflows - #436

Merged
BunsDev merged 2 commits into
mainfrom
feat/ios-merge-pr-workflows
Sep 11, 2026
Merged

feat(ios): wire merge and PR review interactive workflows#436
BunsDev merged 2 commits into
mainfrom
feat/ios-merge-pr-workflows

Conversation

@BunsDev

@BunsDev BunsDev commented Sep 10, 2026

Copy link
Copy Markdown
Member

Summary

  • drive the iOS remote action sheet through host-style merge terminal chains, explicit single-use cancel paths, and fallback target confirmations
  • split PR review editing into title/body fields, keep host-compatible summary submission, and expose related-file navigation from the review sheet
  • extend fixture-mode and focused unit/UI coverage for merge outcomes, PR review editing, related-file navigation, and cancel semantics

Validation

  • pnpm ios:project:check
  • cd native/ios && xcodebuild test -project Psyche.xcodeproj -scheme PsycheApp -destination 'platform=iOS Simulator,name=iPhone 16 Pro' -derivedDataPath .build -> 569 tests executed, 8 skipped, 0 failures (PsycheCoreTests: 425, PsycheAppTests: 104, PsycheAppUITests: 40)
  • bash ./scripts/agent-check fast
  • bash ./scripts/agent-check full

Acceptance

  • merge confirmation and choice flows reach host-reported success, failure, and cancel terminals, including sibling panes and fallback target confirmation
  • PR review supports editing generated title/body content before submission and navigating to related files from the review sheet
  • cancel paths stay explicit and single-use while the host remains authoritative for workflow state

Addresses psyche-i7c.9.3

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings September 10, 2026 16:09
@vercel

vercel Bot commented Sep 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
psyche-build-docs Ready Ready Preview Sep 10, 2026 11:51pm UTC

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The updated workflows are exercised by targeted unit/UI tests and the reviewed diffs do not show correctness or safety issues in the changed paths.

Pull request overview

This PR expands Psyche Build’s iOS remote action sheet to support host-driven merge confirmation chains (including explicit/single-use cancel semantics) and a richer pull request review workflow that allows editing title/body and navigating to related files before submission.

Changes:

  • Add host-style merge workflow chains in fixture mode, including sibling-pane confirmation, fallback target confirmation, and explicit cancel as a choice option when provided by the host.
  • Introduce a specialized PR review presentation that splits title/body editing and enables navigation into related files from the review sheet.
  • Extend unit + UI coverage around cancel de-duping, merge chains, PR review editing, and related-file navigation.
File summaries
File Description
native/ios/PsycheCore/Tests/PsycheCoreTests/RemoteActionStoreTests.swift Adds coverage ensuring duplicate cancel taps do not send multiple responses while the first is in-flight.
native/ios/PsycheCore/Sources/PsycheCore/Fixtures/FixtureControlRequests.swift Refactors fixture start/respond flows to simulate host-driven merge confirmation chains and a PR review action with title/body parsing.
native/ios/PsycheApp/UnitTests/ActionSheetPresentationTests.swift Adds unit tests for cancel control selection, control identifier slugging, and PR title/body summary round-tripping.
native/ios/PsycheApp/Tests/PsycheAppUITests/PsycheAppUITests.swift Adds UI tests for merge confirmation chains, explicit cancel behavior, PR review editing, and related-file navigation.
native/ios/PsycheApp/Sources/PsycheApp/Views/FileBrowserView.swift Introduces ActionSheetRelatedFileView to load and display a related file (preview/diff) from the remote action sheet.
native/ios/PsycheApp/Sources/PsycheApp/Views/ActionSheetView.swift Updates the action sheet UI to handle PR review editing fields, related-file navigation links, and host-supplied cancel choice options.
native/ios/PsycheApp/Sources/PsycheApp/Views/ActionSheetPresentation.swift Adds helpers for cancel control selection, stable control identifiers, and PR title/body parsing/formatting.
Review details
  • Files reviewed: 7/7 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@BunsDev

BunsDev commented Sep 10, 2026

Copy link
Copy Markdown
Member Author

Independent R3 review at2799054b56f0663d4f7464c45c5cee91fc87190a against1e6e23d8e2d83cc17472652b4296d42650045e07 found two concrete P2 defects:

  1. ActionSheetPresentation.swift:165-173: clearing the separate PR Title field while retaining a body serializes a blank first line. The production parsePRSummary trims the whole input before splitting, promoting the first body line (for example a Summary heading) to the PR title. Reject an empty title before sending or consuming the single-use action session; retain the draft and visible correction state.
  2. FileBrowserView.swift:298-301: committed deletions listed by the PR comparison are absent from the current git ls-files plus working-tree-status inventory used by files.list. Their new review links therefore always fail as unpublished even for a valid PR deletion. The fixture inserts a deleted inventory entry and masks the production mismatch. Inspect through a host-scoped PR comparison that includes deleted paths; do not bypass inventory/path validation.

Fixture parity also needs care: its sibling/fallback sequence reverses production ordering, and its PR-edit UI assertion stops before submission. The pre-existing unknown-effect timeout remains separately tracked in #435, not reported as newly introduced here. Physical-host/receipt/device acceptance is not established by fixture or simulator results. Holding as draft pending correction and exact-head re-review; author worktree remains untouched.

@BunsDev
BunsDev merged commit b542bc6 into main Sep 11, 2026
10 checks passed
@BunsDev
BunsDev deleted the feat/ios-merge-pr-workflows branch September 11, 2026 00:19
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