Skip to content

Add native Rides app and paired rider/driver demo - #2

Merged
capy-ai-staging[bot] merged 8 commits into
mainfrom
landseer/rides-demo
Oct 19, 2026
Merged

capy-ai-staging[bot] merged 8 commits into
mainfrom
landseer/rides-demo

Conversation

@Landseer100

@Landseer100 Landseer100 commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Adds an independent native iOS 17 SwiftUI Rides target in the same repository, preserving Eats and its existing default Revyl sign-in flow.

  • Rider booking supports offline destinations, vehicle/payment selection, stops, reservations, tracking, shared chat, cancellation, receipts, rating/tips, activity, and saved places. The same binary has an original driver dashboard for availability, acceptance, arrival, start, completion, and demo earnings.
  • A Node 24 SQLite service synchronizes invitation-isolated phone sessions, enforces role/assignment rules and atomic acceptance, and persists trip history. Credentials stay in Keychain. Simulator builds use ad-hoc signing; a Debug-only token-gated launcher prepares independent rider/driver roles without changing Eats defaults.
  • Revyl uses two project roots: root Eats and nested apps/rides. Each has its own app ID, build recipe, session hook, path triggers, strict preview-build check, and Revyl-harness Proof of Changes policy. Rides automation is published and enabled; Eats remains Git-managed. Rides single-phone proof covers offline booking/navigation and the connection-required boundary, not a claimed automated two-phone lifecycle. Six setup regression tests run in CI.

Verification: 16 Swift core tests in Debug and Release, 17 executed iOS XCTest cases including a real Keychain round trip, six HTTP integration tests, and connected configuration validation. Real paired iOS sessions verified rider booking → driver acceptance → rider assignment, two-way chat, arrival/start/completion, five-star rating plus a $3 tip, and cancellation on both phones. Both phones also restored their secure sessions after app updates. Paired-phone verification build: d502f022-9034-4b30-b5bb-1530f6c2c802; its cancelled-trip summary shows zero charges, no active pickup instructions, and returns Home correctly from history.

Independent PR automation: At 28646d0, all six CI checks pass and both app-specific Revyl Proof of Changes reports are Ready, with no defects found in the exercised changes. Eats verified sign-in, customized ordering, cart/tab navigation, and offline checkout. Rides verified independent Rider sign-in, offline booking, reservation/stops, wallet/saved places, navigation, and the no-server guard. Neither single-phone proof claims paired service coverage.

This is a core demo, not exhaustive Uber parity or production dispatch/payment software. Maps and fares are simulated. The verification backend is a temporary HTTPS workspace preview; persistent demos require durable service hosting. Setup, reference links, scope limits, and detailed evidence are in docs/RIDES.md and docs/RIDES_VERIFICATION.md.

Native iOS screenshots: rider/driver handoff, shared chat, home, completion, and cancellation

Rider and driver after native acceptance

Messages synchronized across both native phones

Native rider home

Native completion and rating screen

Final native cancelled-trip summary with zero charges

Landseer100 and others added 6 commits October 19, 2026 02:42
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
@capy-ai-staging
capy-ai-staging Bot marked this pull request as ready for review October 19, 2026 03:01
@revyl

revyl Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Preview builds Revyl

28646d09

Project: uber-eats-clone

Managed via .revyl/config.yaml (config-as-code).

Build Target Status Details Updated (UTC)
Uber Eats Clone iOS (iOS) 🟩 Ready · 1m 06s Open preview · View logs 2026-10-19 05:03

Proof of changes

Target Status Details Updated (UTC)
Uber Eats Clone iOS (iOS) 🟩 Ready View proof logs 2026-10-19 05:10

Findings

🟩 No defects found in the exercised changes.

Revyl Open this build in Atlas →
Explore screenshots, findings, and resolution history.

iOS · Uber Eats Clone iOS

Verification confidence · 3/5

exercised the complete required Eats regression path on device; the PR's separate Rides target, paired-service behavior, and configuration test are not reachable from this Eats build/environment.

What this proof covered

Change Result
Root Eats session/proof isolation regression Fresh launch bypassed onboarding and showed Home with “Revyl sign-in accepted · Local buyer.”
Eats ordering regression Opened Super Duper Burgers, customized Garlic Fries to Large, added it to cart, and confirmed the cart retained the selected size and $6.95 total.
Cart navigation regression With the cart populated, Home, Browse, Orders, and Account all remained reachable; Browse, Orders, and Account visibly retained the View cart bar.
Offline demo-order regression Checkout displayed the simulated-order warning, asked for confirmation, then showed “Order confirmed” / “OFFLINE SIMULATION” and no live-map claim.

Out of reach

  • The new native Rides rider/driver screens, offline ride booking, and independent Rides sign-in: this session runs the root Eats app selected by the PR profile; Rides is a separate apps/rides app/build.
  • Rides paired dispatch, chat, trip transitions, cancellation, ratings, and driver earnings: these require the separate Rides build, two phones, and a reachable shared HTTPS ride-demo service.
  • Node SQLite service behavior and Rides CI/iOS tests: no separate service process or Rides build target is exposed by this supplied Eats device build.
  • scripts/test_revyl_config.py: its required yaml module is absent, so the suite was not started.

To make this provable

  • Supply a cloud device session for the Rides app ID/build using apps/rides/.revyl/config.yaml so the rider flows and independent session can be driven.
  • Provide two Rides device sessions plus a reachable HTTPS deployment of services/ride-demo and an invitation room to exercise paired lifecycle behavior.
  • Expose the Rides build/test target (and, where appropriate, a Node 24 service test environment) to this proof environment.
  • Include PyYAML in the preinstalled proof image so python3 scripts/test_revyl_config.py can run without modifying the environment.
What we exercised

Pass — the Eats regression contract held on the supplied iPhone 17 Pro Max build. Build id: 2745fa5e-f803-4e21-9cfe-5fdc50e48f9d; app commit: 28646d09f06bd5dde9418d3df82e03035a516b86; device: iPhone 17 Pro Max, iOS 27.0. The fresh buyer session reached Home with the accepted banner; a customized item remained in the cart while Home, Browse, Orders, and Account stayed usable, and the offline demo checkout completed without real payment.


iOS · Uber Eats Clone iOS · Evidence

Revyl Full step-by-step report and session video — session 7d019deb-50d6-4a04-a1ae-e101393c50a7

Eats Home tab with the Revyl sign-in accepted Local buyer banner
Start state
Garlic Fries customization with Large size selected and the enabled add-to-cart button
Customized item
Account tab remains reachable with a one-item View cart bar
Cart survives tabs
Confirmed offline simulated order with route illustration and no live map
Demo order confirmed

Captured by Revyl · See how Revyl works →


Project: apps/rides

Managed via apps/rides/.revyl/config.yaml (config-as-code).

Build Target Status Details Updated (UTC)
Uber Rides Demo iOS (iOS) 🟩 Ready · 1m 15s Open preview · View logs 2026-10-19 05:03

Proof of changes

Target Status Details Updated (UTC)
Uber Rides Demo iOS (iOS) 🟩 Ready View proof logs 2026-10-19 05:16

Findings

🟩 No defects found in the exercised changes.

Revyl Open this build in Atlas →
Explore screenshots, findings, and resolution history.

iOS · Uber Rides Demo iOS

Verification confidence · 3/5

exercised the single-phone offline rider paths and local data; paired rider/driver dispatch and service behavior require a reachable HTTPS server and second phone, while repository test suites could not run with the installed toolchains.

What this proof covered

Change Result
Revyl Rider launch into the independent Rides app Fresh session showed “Revyl sign-in accepted · Rider” and Rides Home; it did not open Eats or request real authentication.
Offline destination, vehicle, and demo payment selection Selected Jo's Coffee, chose UberX and Demo Cash, and reached Confirm your pickup with the demo/no-charge messaging.
No-server booking boundary “Connect to request a ride” opened Demo connection with no server populated and a disabled room-creation action; no trip or charge was invented.
Reservation and stops Selected a scheduled pickup, added Jo's Coffee as a stop, selected Zilker Metropolitan Park, and the confirmation showed the stop and scheduled time.
Local Rides navigation and sample account data Visited Services, Activity, Account, Wallet, and Saved places; added Zilker Metropolitan Park from the offline catalog and returned to Home.

Out of reach

  • Paired-room creation/join, driver availability, atomic acceptance, shared chat, trip arrival/start/completion, cancellation, receipt, rating/tip, and driver earnings need a shared reachable HTTPS ride-demo service plus a second phone; neither was configured for this single-phone build proof.
  • Server HTTP/SQLite persistence and its integration tests had no visible device result and could not be run here: the installed Node is v22.23.3 while the service declares Node 24+.
  • Swift core tests and the iOS XCTest/Keychain checks could not run because Swift/Xcode tooling is absent.
  • The Python Revyl-configuration regression suite did not start because the installed Python lacks the yaml module (PyYAML); no dependencies were installed during this proof.

To make this provable

  • Provide a publicly reachable HTTPS URL for services/ride-demo, preconfigure it in the rider preview, and make a second Rides device available with the same room invitation so both roles can be driven through the shared lifecycle.
  • Supply a Node 24 runtime for services/ride-demo so node --test can exercise its HTTP and SQLite behavior.
  • Supply the iOS/Swift toolchain used by the Rides target so its Swift core and XCTest suites can start.
  • Include PyYAML in the proof environment so python3 scripts/test_revyl_config.py can run.
What we exercised

Exercised the native Rides rider experience on iPhone 17 Pro Max (iOS 27.0) using build 486a825a-3ab0-426c-b8c3-d133d44c738b at app commit 28646d0. Pass for the directly reachable offline flows: the Revyl-bypassed Rider Home opened, booking used only demo data, the missing-server boundary opened Demo connection without creating a ride, and local navigation/saved places worked; no user-visible defect was observed in that scope.


iOS · Uber Rides Demo iOS · Evidence

Revyl Full step-by-step report and session video — session 44cf2824-ea4b-489a-9b0b-871850367413

Rides Home shows the accepted Rider banner and Where to control
Rider start state
Confirm pickup screen for Jo's Coffee shows Demo Cash and no-payment messaging
Offline booking confirmation
Demo connection sheet explains the shared-server requirement and has no server configured
Connection required
Scheduled pickup confirmation lists the added coffee stop and Zilker destination
Reservation with stop
Saved places lists the newly added Zilker Metropolitan Park demo location
Saved place added

Captured by Revyl · See how Revyl works →

Landseer100 and others added 2 commits October 19, 2026 04:43
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
@capy-ai-staging

Copy link
Copy Markdown
Contributor

Replying to #2 (comment)

The 76db841 reports now contain separate Eats and Rides builds. Rides proof passed its locally reachable rider flow; Eats exercised its ordering regression but was inconclusive because it also evaluated Rides-only functionality. Commit 28646d0 explicitly scopes each proof to its own app without removing any regression checks. Two-phone/service-backed behaviors remain separately verified demo coverage, not claims made by the single-phone automatic proof.

@capy-ai-staging
capy-ai-staging Bot merged commit 8d81065 into main Oct 19, 2026
6 of 7 checks passed
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.

1 participant