Skip to content

Refresh Rides screens and make signup requirements explicit - #6

Merged
capy-ai-staging[bot] merged 14 commits into
mainfrom
capy/refresh-rides-screens-and
Oct 20, 2026
Merged

capy-ai-staging[bot] merged 14 commits into
mainfrom
capy/refresh-rides-screens-and

Conversation

@Landseer100

@Landseer100 Landseer100 commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Refresh the independent native Rides app and update repository guidance. Eats and the account/dispatch contracts are unchanged; GitHub automation remains in Revyl Benchmarks.

Changes

  • Rework Home, Services, Activity, Account, booking, driver, tracking, chat, and receipts with clearer actions, lifecycle confirmations, and honest empty/error states. Saved opens editable saved places; rebooking preserves route/service.
  • Add persistent signup rules, backend-aligned field errors, keyboard progression, and one persistent native password field that preserves its editing buffer and selection through Show/Hide. Keep pickup notes/counter above the keyboard by stepping the map/footer aside until Done.
  • Use Apple MapKit tiles and dashed route previews without fabricated vehicle motion. Keep unavailable payments, payouts, live GPS, and timed dispatch explicit.
  • Refresh README for both apps, builds/checks, backend limits, and independent Revyl projects. Add AGENTS.md and a PR template requiring exact device/build context and compact, public-safe screenshot grids. Exclude private session metadata from cloud source archives.

Validation

Rides CI at 1d3f8fd executed 64 simulator XCTest cases with zero failures, including native field identity/focus and mid-string selection tests (executed log); Eats CI passed too. Earlier local checks passed 120 Convex tests, TypeScript checking, 6 legacy HTTP tests, 9 session-helper tests, 6 configuration-isolation tests, and connected Revyl configuration validation. Ten signup-validation regressions cover the new rules. Documentation link targets and whitespace checks pass.

The final commit 99b5b29 only updates the verification record: Rides and service source are identical to tested 1d3f8fd. Build/CI success is separate from the native observations below.

Revyl device context

All pictured devices are iPhone 17 Pro Max / iOS 27.0 simulators, using Benchmarks Rides app 1f375e45-bf9b-434a-b939-a8892a2297c3 / profile rides. These are simulator observations, not physical-iPhone testing.

Exact-preview auth/keyboard proof: source 1d3f8fd77b6e632fedf1e04054a750c239ac0d07, automated PR preview build 3bf5a946-625a-42f9-865c-7a4d4c42257e. Independent ordinary signup and sign-in checks retained all original dummy text while physically tapping a/b/c/d through repeated Show/Hide. A native text drag established a real middle caret, corroborated by physical insertion; subsequent middle edits while hidden and visible, plus further toggles, retained the exact expected text and focus. The software keyboard stayed open, with full inputs and signup length hint above it. Driver validation/keyboard checks covered required vehicle/plate errors and focusing all five fields; the full plate input remained above the keyboard. The driver capture retains visible noncredential dummy text, so it is layout evidence, not a hidden-password assertion.

These targeted checks kept an invalid email and created no account or trip; successful account submission was not rerun here. Failed navigation/cursor-setup and wrong-key test protocols were excluded, then corrected native checks passed. The owned input session was stopped and its report completed.

Automatic Proof of Changes: run 84e7bb90-b5a4-4ebb-b30c-1a0c03e52c48 originally ended Ready with issues / 3 of 5 confidence, not a clean pass. Its password finding used an input action for the alleged append, not a physical key tap. The stored payload omits clear_first; the CLI defaults device type to replacing the field. The finding was independently investigated, replied to, and resolved after the exact-build physical-key checks above. Do not retroactively call the original automatic run green. Its current-build coverage includes notes, cancellation, signup errors, saved places/wallet, and paired request/accept/chat, not the remaining full paired lifecycle.

Earlier complete paired lifecycle: source dfcf0294fa3d19d9eee1420faf2e50915a26378a, build 1277f0f5-0132-41ad-9c1e-e694143c69b2. Two distinct registered database users shared one isolated service area, one Rider and one Driver. Native actions covered request → accept → arrival → start → complete, both chat directions, five stars, a $3 tip preference, rebooking/Keep ride, then pre-start cancellation. Both clients agreed on $18.40 / $21.40 and the later $0 histories; no payment was processed. Read-only backend snapshots corroborated UI, not replacement mutations. This is not a full lifecycle rerun on the latest source.

Pickup-note follow-up: source 5ee087502acec96c89224a30edf6d3b1a9a4e8e9, build e05d94cc-1b67-4277-a073-dd4503217540. The full three-line editor, counter, and Done stayed above the keyboard. Done preserved the note and restored the map/footer.

Device screenshots

Linked 220px thumbnails retain source attribution; older-build pictures do not establish current-head coverage.

Driver: request received
Driver: request received
dfcf029
Rider: driver accepted
Rider: driver accepted
dfcf029
Rider: pickup-note keyboard
Rider: pickup-note keyboard
5ee0875
Signup: retained middle edits
Signup: retained middle edits
1d3f8fd
Sign in: retained middle edits
Sign in: retained middle edits
1d3f8fd
Driver: plate above keyboard
Driver: plate above keyboard
1d3f8fd

Cleanup and limits

The complete-pair accounts were signed out, their original tokens rejected by accounts:resume, the driver was offline, and no active trip remained. Only owned sessions were stopped and private account files removed. The later pickup-note account's original token was also verified revoked; its expired input session was stopped and private account file removed. Hardware release was not confirmed and is not claimed.

Keep native functional observations, executed tests, and automatic proof distinct. For future password append checks, enter fixtures once, then use actual software-keyboard character taps; a default replacing device type operation is not an append test. Real payments, live GPS/matching, verified drivers, recovery, and exhaustive Uber parity remain outside scope. Do not migrate the GitHub integration to Uber.

Open in Capy

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
@revyl

revyl Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Preview builds Revyl

99b5b290

Closed — Revyl stopped unfinished work after this pull request was closed or merged.

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 · 2m 05s Open preview · View logs 2026-10-20 01:13

Proof of changes

iOS proof for this commit finished without a write-up. Screenshots below are from 1d3f8fd7.

Target Status Details Updated (UTC)
Uber Rides Demo iOS (iOS) 🟧 Inconclusive View proof logs 2026-10-20 00:56

Findings

🟩 No open findings

1 closed finding
Evidence Status Finding
Focused evidence for Toggling Show password while the password field is focused clears the previously entered value. In this current-build signup check, entering a short password, toggling Show, then appending one character left only the appended character. Th… 🟩 Resolved Toggling Show password while the password field is focused clears the previously entered value. In this current-build signup check, entering a short password, toggling Show, then appending one character left only the appended character. Th…
Resolved manually by Landseer Enga · 2026-10-20 01:02 UTC
View resolution in Atlas →
Revyl Open this build in Atlas →
Explore screenshots, findings, and resolution history.

iOS · Uber Rides Demo iOS

Outdated — from 1d3f8fd7. This run finished without a write-up.

Verification confidence · 3/5

exercised changed Rider booking, notes, cancellation, saved places, wallet disclosure, signup field validation, and paired native request/accept/chat; did not complete the remaining paired lifecycle or successful auth/receipt rebooking paths.

What this proof covered

Change Result
Rider Home → Saved The refreshed Saved shortcut opened editable saved places with Home, Work, and add-place affordance.
Booking/map/payment disclosure Selected Home, UberX, and a Cash preference; the Apple map showed a dashed route preview and Wallet stated payments are unavailable.
Pickup-note editor A multiline note and 56/300 counter remained fully above the software keyboard; Done retained the note on confirmation.
Request and cancellation Native Rider confirmation reached Finding your ride; cancellation showed “Your ride was cancelled” and $0.00.
Signup validation Required name/email, invalid-email, 12–128 password rule, and required Driver vehicle/license fields displayed field-specific errors above the keyboard.
Password toggle Reproduced an open issue: Show/Hide drops previously entered password text while focused; the safety-pinned thread is left open.
Paired Rider/Driver Driver was put online through native UI; Rider requested; Driver saw and accepted $18.40; Rider showed the assigned driver; Driver quick-chat arrived on Rider.

Out of reach

  • Successful ordinary signup/sign-in and a valid long-password submission: the current password toggle defect prevented the requested retention/append check from passing, and no new permanent test account was created.
  • Paired arrival, start, completion, receipt, rating, tip preference, rebook, and post-accept cancellation: only request/accept/chat were driven before pair cleanup.
  • Receipt rebooking and its preserved route/service: no completed trip record existed in this proof account.
  • Services and the complete Account/Activity redesign beyond the exercised Saved, Wallet, profile, and cancellation surfaces: not all revised screens were individually driven.

To make this provable

  • Fix the focused password toggle so it preserves text and selection; then provide a fresh private signup account for a successful valid-password sign-up/sign-in/sign-out check.
  • Reserve enough paired-device time for the native Driver actions arrive → start → complete and the Rider rating/tip/receipt/rebook checks in the same isolated service area.
  • Provide a completed trip fixture only if receipt rebooking must be tested without first completing the paired flow.
  • Allocate a follow-up proof pass to drive the remaining Services and Account/Activity destinations individually.
What we exercised

Current-build proof on iPhone 17 Pro Max / iOS 27.0 simulators: Rider booking/cancellation, validation, and the paired request → acceptance → chat path worked on build 3bf5a946-625a-42f9-865c-7a4d4c42257e at commit 1d3f8fd77b6e632fedf1e04054a750c239ac0d07. Fail: the pinned password Show/Hide control clears existing text while focused (open Revyl issue). Two isolated real database accounts were used for Rider and Driver; no payment was processed.


iOS · Uber Rides Demo iOS · Evidence

Revyl Full step-by-step report and session video — paired Rider session 4d5ab68e-9b0c-4a77-9048-d17ccd4c2a9a (Driver session 789ae185-0f4b-4cfc-a1c3-83f94be12872; single-Rider session 7e78dcaf-6014-4edf-a74a-9b7bf23d4e18).

Rider pickup-note editor and character counter above the software keyboard
Pickup-note keyboard
Rider cancellation outcome shows zero-dollar amount
Zero-charge cancellation
Signup form shows explicit required name and email field errors
Signup requirements
Driver online screen receives the Rider's native request
Driver: request received
Rider screen shows the driver after native acceptance
Rider: driver accepted

Captured by Revyl · See how Revyl works →

Landseer100 and others added 12 commits October 19, 2026 23:09
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>
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

Copy link
Copy Markdown
Contributor

Replying to #6 (comment)

Independently rechecked and resolved the password finding in Atlas on the exact automated preview 3bf5a946-625a-42f9-865c-7a4d4c42257e / source 1d3f8fd. Ordinary signup and sign-in both retain the full existing text through repeated Show/Hide and physical software-keyboard a/b/c/d taps. Native text-drag positioning, corroborated by a real middle insertion, then preserves subsequent middle edits while hidden and visible. The field stays focused above the open keyboard; current CI executed 64 passing simulator XCTest cases, including focus and selection regressions.

The original report's step 30 uses an input action, not a physical keyboard tap. Its payload omits clear_first; device type defaults to replacing the field. That leaves replacement as an unresolved confounder in the original reproduction, rather than establishing an application visibility defect. The independent retest uses no input replacement during its assertions.

The original automatic proof remains Ready with issues, not a retroactive clean pass. Its current-build paired coverage stops at request/accept/chat; the earlier complete lifecycle is separately attributed to dfcf029. Build-specific screenshots and the independent results are being recorded in the PR description and verification document.

Co-authored-by: capy-ai-staging[bot] <305915985+capy-ai-staging[bot]@users.noreply.github.com>
@capy-ai-staging

Copy link
Copy Markdown
Contributor

Final merge disposition: all six checks pass at 99b5b29; its Rides job executed 64 simulator XCTest cases with zero failures and TEST EXECUTE SUCCEEDED (log). Rides/service source is unchanged from the independently device-verified 1d3f8fd. There are no open Atlas findings.

The documentation-only automatic proof rerun 6c1b58e2-56ce-45f3-8a6c-839b0c190c5e still shows Running instruction; visible session history has no new Rides session for that build. It is not counted as completed or passing. The merge relies on final CI plus the explicitly attributed independent keyboard/cursor, driver layout, and earlier lifecycle evidence in the description, rather than this unfinished rerun. Proceeding under the user's existing merge authorization.

@capy-ai-staging
capy-ai-staging Bot merged commit 5a4c2ee into main Oct 20, 2026
6 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