Repository navigation
Push notifications, iPhone app 1.1.0 (Time tab), App Store resubmission package, deploy log - #644
Merged
Merged
Conversation
…publishing, trades, tip ledger, pay-period locks, push devices, per-store time rules Additive migrations only. Docs: docs/time-and-pay/ARCHITECTURE.md, DECISIONS.md, DESIGN.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…locale switching Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…per-person notification choices PushNotifier (apnotic token auth, web-push VAPID) behind boot-time env keys; the bell alone carries messages until they are set. /native/push_devices for the iPhone app, /employee/push_subscriptions and a push handler in the staff service worker, /employee/notifications/settings. Account deletion now drops push devices and the clock PIN, and employee-role accounts can reach it (App Store 5.1.1(v)). Native path configuration opens time & pay forms as sheets. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…notification deep links, Xcode project for the Simulator Time replaces Search in the tab bar (five tabs); Clock in quick action. PushRegistration asks once after sign-in, posts the APNs token to Rupert, forgets it on sign-out and opens a tapped notification's page in the Time tab. RUPERT_DEV_ORIGIN (debug only) points the app at a local Rupert. ios/RupertApp (xcodegen) builds the same sources into a runnable app with a UI test that signs in, walks the Time pages and saves screenshots. The employee and POS layouts now carry the rupert-session meta tag the app watches, so a sign-in on the Time tab restarts every tab. Demo workspace gains a worker (PIN 2580), punches, shifts, time off, tips and a submitted timesheet; App Store screenshots regenerated with the Time tab; checklist rewritten for 1.1.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Review notes with the manager and worker logins and the Time flows, listing text for 1.1.0, checklist with every owner click. config/locales/es.yml (dates, numbers, common errors) and a test that a worker's staff record, not the request, picks the language. bin/check-a11y runs axe-core over the staff pages at phone width in light and dark. mobile/README.md says where push arrives. DECISIONS.md records the App Store calls (Time tab, soft ask, platform-level keys, Sign in with Apple not required, account deletion for staff). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
# Conflicts: # docs/time-and-pay/DECISIONS.md # docs/time-and-pay/DESIGN.md # web/app/controllers/application_controller.rb # web/app/models/clock_break.rb # web/app/models/pay_period.rb # web/app/models/time_rules.rb # web/app/models/tip_allocation.rb # web/app/modules/people/employee.rb # web/app/services/push_notifier.rb # web/app/views/employee_app/devices.html.erb # web/db/schema.rb
…; strip a leftover marker in DECISIONS.md Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… tenant-scoped push device cleanup Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e app; page help under the content Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… critical) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…d dark) on the merged UI Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…reenshots regenerated Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…; UI test scrolls to it Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e on-screen pills Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…calendar cells carry data-date for tests Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Third time & pay PR (on top of #640 and #642).
PushNotifierdelivers everyTimeNotifierevent to APNs (token auth,apnotic) and Web Push (VAPID,web-push); configured byAPNS_*/VAPID_*keys (documented indocs/ops/environment-reference.md), a no-op until set.POST/DELETE /native/push_devicesfor the iPhone app,/employee/push_subscriptionsfor the installed web app, per-person choices at/employee/notifications/settings. Rejected tokens disable the device, never delete it.ios/): Time is the first tab, Search leaves the tab bar (5 tabs), soft-ask then system prompt for notifications, APNs token posted with the session, notification taps open the payload URL in the Time tab, "Clock in" Home Screen quick action, path configuration for the time forms,ios/RupertApp/xcodegen project for Simulator runs and UI tests (TimeFlowsUITests), DEBUG-onlyRUPERT_DEV_ORIGIN.ios/AppStore/): one-page checklist with only "Submit for Review" left to the owner, review notes with the time flows and demo worker, listing "what's new", privacy answers, Sign in with Apple assessment (not required: business-created accounts; recorded in DECISIONS.md), demo workspace task now seeds a worker with PIN, punches with meals, posted shifts, time off, tips and a submitted timesheet, screenshots regenerated.web/bin/check-a11y(axe via Playwright) andconfig/locales/es.yml;DEPLOYS.mdrecords the two production deploys and the live smoke test.Test plan
xcodebuild test -scheme Rupertin the iPhone 18 Pro Simulator (17 tests).🤖 Generated with Claude Code