{"data":{"base_url":"https://borrowmyshit.org","blocked_items":[{"id":"RM-028","label":"Public native-store release","needed":"Apple signing, the app record, Build 3 upload, and the internal group exist; processed beta verification, release metadata/review, and any public release remain. Google Play remains separate."},{"id":"RM-017","label":"iOS universal-link domain association rollout","needed":"Publish the reviewed AASA host/path set and add the signed associated-domains entitlement, then pass the physical link-opening matrix."},{"id":"RM-029","label":"Android App Links production association","needed":"Authorize release signing, publish the reviewed Digital Asset Links host/path set, and pass verified-link acceptance."},{"id":"RM-005","label":"Native push-notification production rollout","needed":"Development APNs registration works; production sender credentials, delivery infrastructure, consent, and Android delivery remain separate work."}],"core_endpoints":{"android_app_link_diagnostics":"/api/v1/public/android/app-links/diagnostics","app_readiness":"/api/v1/mobile/app-readiness","camera_quality_check":"/api/v1/mobile/camera-quality-check","capabilities_ios":"/api/v1/capabilities?profile=ios","deep_link_resolver":"/api/v1/mobile/deep-link/resolve","field_audit_checkin":"/api/v1/mobile/field-audit/checkin","ios_bootstrap_bundle":"/api/v1/mobile/ios/bootstrap-bundle","ios_bootstrap_signed":"/api/v1/mobile/ios/bootstrap-bundle/signed","ios_universal_link_diagnostics":"/api/v1/public/ios/universal-links/diagnostics","manifest":"/manifest.webmanifest","marketplace_local_demand":"/api/v1/marketplace/local-demand","marketplace_map":"/api/v1/marketplace/map","offline_conflict_resolve":"/api/v1/mobile/offline-conflicts/<operation_uuid>/resolve","offline_queue":"/api/v1/mobile/offline-queue","offline_queue_action":"/api/v1/mobile/offline-queue/<operation_uuid>/action","openapi":"/api/v1/openapi","push_inbox":"/api/v1/mobile/push-inbox","service_worker":"/service-worker.js","web_open_resolver":"/app/open","widget_summary":"/api/v1/mobile/widget/summary"},"device_profiles":[{"layout_expectation":"single_column_touch_first","primary_contracts":["/api/v1/mobile/deep-link/resolve","/api/v1/mobile/ios/bootstrap-bundle","/api/v1/mobile/ios/bootstrap-bundle/signed","/api/v1/mobile/offline-queue","/api/v1/mobile/push-inbox","/api/v1/marketplace/local-demand","/api/v1/marketplace/map"],"priority":1,"profile":"iphone","status":"signed_founder_device_validated","wrapper_path":"native_ios_founder_test"},{"layout_expectation":"tablet_two_column_where_space_allows","primary_contracts":["/api/v1/mobile/deep-link/resolve","/api/v1/mobile/ios/bootstrap-bundle","/api/v1/mobile/widget/summary","/api/v1/mobile/field-audit/checkin","/api/v1/marketplace/local-demand","/api/v1/marketplace/map"],"priority":2,"profile":"ipad","status":"development_build_and_layout_validated","wrapper_path":"ios_ipad_development"},{"layout_expectation":"same_responsive_web_surface","primary_contracts":["/manifest.webmanifest","/service-worker.js","/api/v1/mobile/deep-link/resolve","/api/v1/public/android/app-links/diagnostics"],"priority":3,"profile":"android","status":"debug_build_validated","wrapper_path":"android_debug_development"},{"layout_expectation":"tablet_viewport_sweep_required","primary_contracts":["/manifest.webmanifest","/service-worker.js","/api/v1/mobile/app-readiness"],"priority":4,"profile":"tablet","status":"pwa_live","wrapper_path":"browser_home_screen_app"}],"generated_at":"2026-09-14T06:37:21.770369+00:00","launch_sequence":["pwa","ios","ipad","android"],"manifest":{"display":"standalone","orientation":"any","path":"/manifest.webmanifest","tablet_friendly":true},"native_store_status":"apple_internal_beta_in_progress_public_stores_unavailable","offline_conflict_replay_acceptance":{"acceptance_version":"rms-mobile-offline-conflict-replay-v1","conflict_replay_steps":[{"expected":"Queue item/photo/check-in draft locally and mirror it to offline queue when authenticated.","step":"capture"},{"expected":"Move operation through in-progress or failed without hiding retry/cancel controls.","step":"sync_attempt"},{"expected":"Mark conflict_detected or requires_manual_merge and expose server/local choices.","step":"detect_conflict"},{"expected":"Persist resolution strategy and field choices on the operation payload.","step":"resolve"},{"expected":"Return keep-local and merge-fields resolutions to pending for the next sync attempt.","step":"replay"}],"endpoints":{"action":"/api/v1/mobile/offline-queue/<operation_uuid>/action","list_or_upsert":"/api/v1/mobile/offline-queue","resolve":"/api/v1/mobile/offline-conflicts/<operation_uuid>/resolve"},"phone_tablet_requirements":["List pending, failed, cancelled, resolved, and conflict operations with status counts.","Let users retry, cancel, and reorder queued operations before sync.","Show conflict details before resolving; never auto-discard local edits silently.","Support keep-local, keep-remote, merge-fields, and discard-local resolution strategies.","After keep-local or merge-fields, return the operation to pending for replay."],"queue_actions":["cancel","mark_conflict","mark_failed","reorder","retry"],"queue_statuses":["cancelled","conflict_detected","failed","in_progress","pending","requires_manual_merge","resolved"],"resolution_strategies":["discard_local","keep_local","keep_remote","merge_fields"],"status":"contract_ready_native_ui_pending"},"operator_notes":["TrackMyShit is live on the web and as a browser-installed home-screen app.","Signed iPhone and Apple Watch founder-device builds have passed; Apple internal beta processing/testing is still in progress.","iPad development and Android debug validation do not imply public App Store, TestFlight, or Google Play availability.","Universal Links, Android App Links, and production push delivery remain separate rollout work."],"pwa_status":"production_path_now","readiness_version":"rms-mobile-app-readiness-v1","tablet_layout_audit":{"acceptance":["No horizontal overflow at iPad landscape, portrait, and Split View widths.","Primary navigation, filters, and row/card actions remain reachable by touch.","Dense owner workflows may use two columns on tablet but must collapse to one column on phone widths.","Authenticated tablet Playwright coverage remains the visual gate when auth state or smoke credentials are available."],"audit_version":"rms-tablet-layout-audit-v1","dense_owner_workflows":[{"must_keep_visible":["primary navigation","critical counters","next actions","create item"],"path":"/dashboard","phone_fallback":"single_column_touch_first","surface":"dashboard","tablet_layout":"two_column_summary_and_next_actions_where_space_allows"},{"must_keep_visible":["item status","owner actions","condition evidence","share or recovery links"],"path":"/items/<id>","phone_fallback":"stacked_summary_actions_evidence","surface":"item_detail","tablet_layout":"item_summary_beside_owner_actions_and_evidence"},{"must_keep_visible":["due status","messages","timeline","return or dispute actions"],"path":"/loans/<id>","phone_fallback":"stacked_loan_sections","surface":"loan_detail","tablet_layout":"timeline_or_messages_beside_return_actions"},{"must_keep_visible":["request filters","status badges","approve or reject actions","item preview"],"path":"/marketplace/requests","phone_fallback":"filters_then_rows","surface":"marketplace_requests","tablet_layout":"request_filters_beside_triage_rows"},{"must_keep_visible":["quick filters","severity","assignment","review actions"],"path":"/admin/feedback-tickets","phone_fallback":"stacked_filters_and_ticket_rows","surface":"feedback_admin","tablet_layout":"filters_metrics_and_ticket_rows_without_horizontal_overflow"}],"split_view_widths":["1024x768","834x1112","744x1133","507x768"],"status":"contract_ready_visual_followup_pending"},"validation_contracts":{"contract_version":"rms-mobile-validation-contract-v1","critical_smoke_guards":["tests/test_project_continuity_docs.py","tests/test_regression_subset_matrix.py","tests/test_sqlalchemy_query_get_contract.py","tests/test_sqlalchemy_get_or_404_contract.py","tests/test_a745_route_warning_cleanup.py"],"desktop_mobile_browser_smoke":{"script":"scripts/run_admin_playwright_smoke.sh","subset":"playwright-admin","viewports":["desktop","mobile"]},"guard_membership_contract":"tests/test_regression_subset_matrix.py::test_critical_smoke_guards_stay_in_full_and_bounded_lanes","mobile_checkpoint":{"scope":"PWA, deep-link, offline, tablet-readiness, and native-wrapper contract checks","script":"scripts/run_mobile_execution_checkpoint.sh"},"operator_gated_scheduled_lanes":["api-local-demand","playwright-nav-more","authenticated-tablet-smoke"],"recurring_smoke_lanes":["smoke","smoke-bounded","mobile"],"status":"actively_enforced"}},"ok":true}
