SHA256
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.
92 lines
6.0 KiB
Markdown
92 lines
6.0 KiB
Markdown
# 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.
|