Skip to content

v0.9.0

@mds08011 mds08011 tagged this 30 Jul 16:55
LoopCheck is a startup and commissioning checkout tracker for water/wastewater
and heavy-civil construction: every plant asset already wears a P&ID tag, so
LoopCheck puts a QR code on it. Scanning /t/{tag_number} shows where that
equipment stands in checkout and lets the person in front of it log the next
check or flag a punch item -- no app, no account, no training.

This first tag is about trust rather than breadth. The feature set was already
wide; M1 made it provable: the tests assert the invariants, the docs tell one
truth, and the access model is enforced and verified rather than assumed. No new
features were added, deliberately.

Shipped: core checkout ledger, warranty & closeout, instrument calibration,
service cutover tracker, LOTO status board, and signatures & turnover (code
ships; ADR 0010 remains Proposed and frozen, so treat those two collections as
delta). 24 application collections, 34 migrations.

Highlights of this release:

- Auth lockdown Accepted and enforced (ADR 0011). A deliberately small public
  allowlist -- everything a scanned QR needs, plus the narrow accountless field
  writes -- with every other write and all office/PII reads behind an account,
  deletes superuser-only, and append-only ledgers immutable regardless of auth.
  Customer PII lives only in service_contacts, so `services` is structurally
  PII-free.
- 89 REST assertions and a 7-assertion headless-browser suite, both gated by
  GitHub Actions on every push and PR.
- The installer verifies the PocketBase download against its published checksum.
- Three defects fixed that no test had been able to see: a tag page reporting
  absence it could not observe, a service import silently discarding customer
  contacts, and a collection that was still world-writable.

Known limitations: not validated on ARM or Raspberry Pi (the binary path is
verified, but no ARM binary has been executed); docs/API.md is not a settled v1
(8 collections marked delta pending an M3 version bump); some schema ships ahead
of its UI on purpose; and only LOTO and calibration capture work offline.

v1.0.0 is the stranger-ready milestone (M3), which owns the API contract version
bump, real Raspberry Pi validation, and an accessibility pass.

Full notes: CHANGELOG.md
Assets 2
Loading