Files
Yuvomi-App/docs/native-parity.md
T
Yuvomi Mobile Contributors 40a7962307
Android validation / emulator (35) (push) Failing after 4s
Android validation / emulator (37.0) (push) Failing after 6s
Android validation / build (push) Successful in 5m27s
iOS validation / simulator (push) Canceled after 23m26s
docs: record verified native preview and unfinished PWA parity
Replace current wrapper claims with native architecture/security/build evidence, preserve historical documents, track all thirty pages and explicit release gates, correct brand attribution and provide the twelve-section delivery report without claiming completion. Native signing remains paused and Apple application/device validation outstanding.
2026-10-21 09:13:36 +02:00

6.0 KiB

Native parity tracker

Acceptance contract

Native means native screens, forms, lists, navigation and interaction. Android uses Kotlin/Compose; iOS uses SwiftUI. PWA HTML/JavaScript is not embedded as the application surface. The PWA is the design/behavior reference, not the renderer.

Reference: unmodified upstream 2.78.0, 10bfef7686ed7303b4c74c7fcc55a5eb16356c9d. The scope includes its thirty page modules, settings leaves, permissions, dashboard customization and cross-module workflows. Third-party web extensions need an explicit native integration design; arbitrary server-installed HTML cannot silently become a native module.

Use these states honestly:

  • Slice: real native UI/API interaction exists, with the listed limitations.
  • Pending: not implemented. No fake screen, raw-JSON editor or WebView fallback.
  • Parity accepted: requires functional and visual evidence on both platforms. No module currently has this status.

Page inventory

Upstream page Native status Work still required before parity
login Slice: password + TOTP/recovery step OIDC/provider policy, recovery/error UX, localization, visual comparison
setup Slice: initial household creation Full onboarding and configuration workflow
forgot-password Pending Native recovery request and server-capability UX
reset-password Pending Native reset token/confirmation flow
join Pending Invitations, account setup, validation
dashboard Slice: task/calendar/shopping/note previews All remaining widgets, user layout/options, timezone-aware presentation, quick add, wall mode
tasks Slice: list/search/status filter/create/edit/complete/delete Category/assignee/tag/visibility controls, recurrence, subtasks, attachments, comments, archive/history, lock UX, bulk/sync controls
shopping Slice: lists/items/create/edit/check/delete List rename/duplicate, categories, ordering, suggestions, live versions, prices/stores, imports/send/undo
notes Slice: list/search/create/edit/pin/delete Markdown/checklists, categories, note colors, ordering and concurrent edit UX
calendar Dashboard preview only; module pending Agenda/week/month, editing, recurrence/scopes, source calendars, timezone behavior, attachments/sync
schedule Pending Shift grid, roster, creation and settings
birthdays Pending Date/age privacy, contacts, reminders/import
contacts Pending Address book, editing, links/import/export
documents Pending Browse/search, metadata, native upload/camera/export and lifecycle tests
inventory Pending Items, locations, guarantees, attachments and reminders
meals Pending Meal plan, ingredients, household options and shopping transfer
recipes Pending Search/detail/editor, source import, images, pantry/shopping cross-links
pantry Pending Stock, batches/expiry, locations, quantity controls and shopping transfer
budget Pending Accounts, entries, categories, currency/amount handling and attachments
budget-plans Pending Plan editor, period/category matching and forecasts
budget-stats Pending Native charts and filters matching upstream calculations
subscriptions Pending Lifecycle, billing, recurrence and linked budget behavior
split-expenses Pending Groups, guests, balances, settlement and permission distinctions
housekeeping Pending Visits, tasks, time and role-gated payment data
waste Pending Schedules, pickup display/import and reminders
rewards Pending Catalog, ledger, goals, approvals and pocket-money precision
health Pending Medication, cycle, nutrition and capability-gated private views
health-fasting Pending Clock, history, capabilities and lifecycle behavior
settings Slice: native logout/server removal only Every relevant personal/admin settings leaf and native permissions
pair-display Pending Pairing protocol, display role and shared-surface privacy

Design reference

Native primitives reuse the upstream warm palette (#F5F3ED / #191816), opaque surfaces (#FFFFFF / #2B2825), violet accent, 16-point cards, 26-point auth panel, pill navigation/buttons and the exact three-circle brand geometry. These are initial design-token mappings, not proof of 1:1 visuals. Material/SF symbols, typography, sheets, adaptive layouts and module details still need comparison.

Every accepted module needs side-by-side screenshots from matching server data, light/dark and small/large text coverage, keyboard/safe-area/back behavior, read-only/denied permission cases and real API success/error tests. Android's integration test exports a synthetic-fixture native dashboard screenshot; it is not a production screenshot or a visual-parity approval.

Implementation order

  1. Stabilize the current native authentication/dashboard/tasks/notes/shopping slice, including Apple SDK compilation and actual native tests.
  2. Close auth/recovery/SSO and first-slice feature gaps, then accept those screens against PWA visual/behavior baselines rather than adding empty menu entries.
  3. Implement calendar/family/contacts, kitchen/pantry, documents/inventory, then finance, household, rewards and health as separately tested native slices.
  4. Complete settings, extensions/cross-module flows, accessibility, offline and notifications. Audit every upstream route/settings leaf before claiming parity.

Signing work retained, not released

The owner-authorized initial signing key and four Gitea repository secrets were created before the native correction. The private backup remains outside Git at /home/neste/yuvomi-signing/initial-20261021. Never print/commit its contents. The uncommitted signing-workflow changes were preserved in Git stash wip: owner-authorized signing setup paused for true native rewrite; do not apply it blindly to the new workflows. No signing-secret values belong in screenshots, test fixtures, documentation, commits or artifacts. Native signing/release work remains paused until this preview's scope is explicitly accepted.