Agent docs

Mobile admin starts with one contract for iOS and Android.

Bumpgrade will build native publisher/admin apps from the same feature, roadmap, commerce, admin, and agent contracts used by the web app. This page defines the shared scope and the first platform smoke paths for #67 and #68.

Mobile admin source dataLive mobile dashboard source data

Status

Contract readyIssue #13 splits platform work into iOS issue #67, Android issue #68, and dashboard issue #153.

Live dashboard

One public-safe digest for mobile clients.

Dashboard source data

Route

/mobile-admin/dashboard/source-data gives iOS, Android, web, and agents one dashboard payload.

Status

live-public-source-data-ready from issue #153.

Redaction

The dashboard exposes counts, statuses, route IDs, issue evidence, and recent public-safe work-log metadata only. It excludes private buyer rows, raw inbox bodies, owner email values, session IDs, R2 object keys, signed URLs, upload bodies, secret values, and write tokens.

Jobs

What publishers need on a phone

Track issue #13
JobMobile admin digest

Check launch and platform status away from desktop

See whether funnels, checkout, products, email, analytics, agent work, and blockers are moving without opening the desktop admin app.

UserPublisher or owner monitoring Bumpgrade from a phone
Source routes/mobile-admin/dashboard/source-data, /features/source-data, /roadmap/source-data, /admin/source-data
BoundaryRead-only in the first mobile slice.
JobFor-Mark and work-log inbox

Review agent work and confirm safe follow-up actions

Inspect work-log entries, for-Mark items, screenshots, and required confirmations before approving public or billing-impacting work.

UserOwner receiving Codex, ChatGPT, Claude, or automation proposals
Source routes/mobile-admin/dashboard/source-data, /admin/work-log/source-data, /admin/for-mark/source-data, /agent-docs/source-data
BoundaryConfirmed writes need actor identity, confirmation text, idempotency key, stale-state check, audit correlation, and redaction.
JobCommerce health summary

Inspect offer and checkout health

Read products, prices, sandbox/live checkout state, webhook evidence, and known Stripe blockers before taking action.

UserPublisher watching sales and fulfillment state
Source routes/mobile-admin/dashboard/source-data, /commerce/source-data, /api/commerce/checkout
BoundaryNo live checkout, refund, subscription, price, or fulfillment mutation from mobile until confirmed-write APIs ship.

Platform split

Each app gets its own issue and smoke path.

Build first iOS publisher admin app slice

Render the mobile admin digest, fetch the live dashboard route, and preserve fixture fallback in the Expo app scaffold and iOS simulator smoke target.

Statussimulator-smoke-ready
ValidationRun npm run mobile:ios:validate to prove the fixture matches the shared contract and Xcode is available. Run npm run mobile:ios:smoke to build, install, launch, live-read/fallback hydrate, and screenshot the iOS simulator target.
androidIssue #68

Build first Android publisher admin app slice

Render the mobile admin digest, fetch the live dashboard route, and preserve fixture fallback in a native Android activity and emulator smoke target.

Statusemulator-smoke-ready
ValidationRun npm run mobile:android:validate to prove the fixture matches the shared contract and Android API 36 tooling is available. Run npm run mobile:android:smoke to build, install, launch, live-read/fallback hydrate, and screenshot the Android emulator target.

iOS slice

The first simulator path is source-data backed.

iOS source data

Scaffold

apps/mobile-admin contains the Expo entrypoint and iOS smoke target.

Fixture

apps/mobile-admin/fixtures/mobile-admin-contract.json is generated from /mobile-admin/source-data before the iOS app renders.

Smoke

npm run mobile:ios:smoke builds, launches, and screenshots the simulator target.

Android slice

The first emulator path is source-data backed.

Android source data

Scaffold

apps/mobile-admin/android contains the native Android smoke target.

Fixture

apps/mobile-admin/android/src/main/assets/mobile-admin-contract.json is generated from /mobile-admin/source-data before the Android app renders.

Smoke

npm run mobile:android:smoke builds, launches, and screenshots the emulator target.

API dependencies

Mobile reuses web and admin contracts.

Agent manifest
public-safe/mobile-admin/dashboard/source-data

mobile-api-dashboard

Live public-safe dashboard bundle for iOS and Android clients so mobile does not stitch or infer project state from hidden admin pages.

Stable IDsmobileDashboardCardId, featureId, roadmapItemId, workLogEntryId, markAttentionId, agentReadContractId
public-safe/admin/source-data

mobile-api-admin-source

Public-safe roadmap, work-log, user-journey, and Mark-attention digest for the first mobile admin screen.

Stable IDsworkLogEntryId, userJourneyId, markAttentionId, roadmapItemId
public-safe/features/source-data

mobile-api-feature-catalog

Feature status and issue evidence for the mobile dashboard.

Stable IDsfeatureId, issue, status
public-safe/roadmap/source-data

mobile-api-roadmap

Public roadmap lanes, blockers, next milestones, and issue links.

Stable IDsroadmapItemId, featureId, issue, status
public-safe/commerce/source-data

mobile-api-commerce

Redacted products, prices, checkout-intent, webhook, subscription, and audit architecture.

Stable IDsproductId, priceId, checkoutIntentId, auditCorrelationId
owner-session/api/auth/[...all]

mobile-api-auth

Better Auth session boundary for future private publisher/admin mobile views.

Stable IDsuserId, sessionId, role
future-confirmed-writefuture /api/mobile-admin/actions

mobile-api-confirmed-writes

Mobile confirmation endpoint for admin, publishing, commerce, and agent-proposal writes.

Stable IDsagentActionId, idempotencyKey, auditCorrelationId, staleStateToken

Stack and safety

No mobile-only product semantics.

Native direction

Start the publisher admin apps as an Expo React Native TypeScript workspace shared by iOS and Android, unless the child issue smoke tests expose a platform-specific reason to split native code. The repo has no existing native app tree, and the current web/admin state is already modeled as public-safe TypeScript/JSON contracts.

Auth boundary

Private mobile views reuse Better Auth owner or publisher sessions after the child slices wire mobile auth.

Confirmed writes

The first mobile app slices are read-only until a confirmed-write API exists. Public, destructive, billing-impacting, publishing, moderation, source-editing, and creator-speech writes require explicit confirmation text.