Skip to content

FieldProof v0.1.0 — portfolio demo build 2 (main 76339db)

Latest

Choose a tag to compare

@huyupwork-hub huyupwork-hub released this 05 Sep 01:53
76339db

FieldProof Android release build, for portfolio review. Same commit as the deployed review console.

Built by CI — run 33935381654 — at the PR #6 merge ref ef90622, whose tree 942bb45b is byte-identical to main at 76339db, the commit this tag points at and the commit the console at https://upwork-system-thun-viet.vercel.app is deployed from. Gates on that run: migrations apply from empty and from seed, pgTAP 11 files / 208 assertions (run three times), hosted smoke against the live project, Android release build, admin lint/typecheck/test/build.

Install

sha256  2d1d0fdcd79269342c3bf91dbbdad2ca28eef9f37d2eb74af18176e274a12f3a

Android 8.0+. Sideload — the app is not on Play, so Android will warn about an unknown developer; that warning is expected for any self-signed build. App version is still 0.1.0 (pubspec.yaml unchanged), hence the .2 build suffix rather than a new number.

Demo account

fieldproof-demo-inspector@yopmail.com
DemoInspector2026!

Deliberately an inspector, not an admin: the mobile app is the field-capture half of the product and RLS scopes it to that inspector's own work.

What changed since v0.1.0-demo (f12d71d)

Database, applied to the hosted project on 2026-09-05 (20260905000600000800):

  • EXECUTE on the three trigger functions withdrawn from public, anon, authenticated; search_path pinned to '' on set_updated_at() and enforce_submission_transition().
  • Self-signup closed at the database: handle_new_user() now refuses any address not in signup_allowlist (RLS forced, no policy, unreadable by client roles).
  • One stranded real-device QA inspection removed from the demo data.

App (apps/mobile, 12 commits): Figma parity pass — density, findings hero, reports and settings screens; the finding editor explains the two choices it already had; an empty history no longer offers a summary or a filter; render fixes found by looking at the captured screens; the hosted smoke test no longer strands a draft, and its purge tool exists.

What to try

  1. Sign in — the history loads from hosted Supabase.
  2. Open Cavendish House — a draft, with an editable punch list.
  3. Turn on airplane mode, then create an inspection and add a punch item. It is kept on the device and marked Not synced, and the banner says only local drafts are shown.
  4. Force-stop the app and reopen it, still offline. The draft and its items are still there.
  5. Turn the network back on and press Retry. The draft syncs once, the marker clears, and it appears exactly once — no duplicate.
  6. Submit it. Submission is only offered after sync, and the record is immutable afterwards.

Known, intentionally deferred

  • Offline photo capture — drafts and punch items work offline; attaching photos does not.
  • ~30 s cold-start delay when the app is opened offline with no cached profile. Data is never at risk; the list simply waits for a DNS lookup to fail.
  • SMOKE run… do-not-keep rows may be visible in the console: each CI run submits one and the cleanup job cannot delete it until its privileged key is configured (see docs/DEPLOY.md).