Afternoon Brief

Thursday, May 21, 2026 — 12:00 PM PT

Last Night’s Builds

Evidence Integrity Hash Buildr+

Dominique shipped the Evidence Integrity Hash (v3.17.0) — SHA-256 tamper-evident signatures for all exported documents including RFIs, submittals, meeting minutes, transmittals, and certified delivery packets. Each export now computes a hash, stores it in Supabase, and embeds a verification line in the PDF footer. This was yesterday’s afternoon brief idea #2, continuing the brief-to-build streak. With 7 submittal/document features shipped in 12 days, Buildr+’s document pipeline now carries cryptographic integrity guarantees — a layer no competitor currently offers.

Branch: feature/nightly-20260521
Commits: 50e49fe (stub) → 693ec29 (feat) → c8d1dde (merge)
Version: v3.17.0 · TestFlight: Uploaded (804f1516)
Builder: Dominique

Report Completion Score DailyReportr+

Katey/Howard-3 shipped the Report Completion Score (v2.24.0) — a dashboard card showing what percentage of required fields were filled per report, flagging incomplete submissions. This directly answers today’s morning brief idea #3 (Daily Report Completeness Coach), making it another same-day turnaround from suggestion to production. With the offline reliability stack complete (Sync Receipt + Conflict Queue + Sync Outbox) and weather intelligence in place (Evidence Pack + Claim Timeline), DailyReportr+ now has a report quality layer on top.

Branch: feature/nightly2-20260521
Commits: 7d1fc58 (feat) → d2bb9f1 (merge)
Version: v2.24.0 · TestFlight: Uploaded (4ac3a6f4)
Builder: Katey / Howard-3

Closr+ — No Build

Closr+ received no nightly build. Last activity: May 20, Closeout Exposure Aging Buckets (v2.21.0) by Katey. Dominique last built Closr+ on May 18 (Owner Training Evidence Packet) — a 3-day builder gap, making Closr+ Dominique’s top rotation priority for tonight.

Inspectr+ — No Build

Inspectr+ received no nightly build. Last activity: May 20, Inspector Route Pack (v4.26.0) by Dominique. Katey last built Inspectr+ on May 18 (Access Constraint Snapshot) — a 3-day builder gap, making Inspectr+ Katey’s top rotation priority for tonight.

Codebase Health

Flutter Analyze — All 4 Apps

Buildr+
0 errors · 61 warnings · 380 infos
Closr+
0 errors · 47 warnings · 205 infos
Inspectr+
0 errors · 90 warnings · 880 infos
DailyReportr+
0 errors · 70 warnings · 1,556 infos
Status: All 4 apps remain error-free for the third consecutive day. Warning counts are flat across the board — tonight’s builds introduced zero new warnings. Closr+ continues to be the healthiest codebase (252 total issues). DailyReportr+’s info count ticked up by 5 (1,551 → 1,556) from the Report Completion Score feature, and the missing assets/images/ directory warning persists. The dominant lint debt remains deprecated_member_use (withOpacity) and require_trailing_commas — both auto-fixable with dart fix --apply.
Recurring Themes from Morning Briefs

Shipped: Both Yesterday’s Afternoon Brief Assignments Built Overnight

Yesterday’s afternoon brief assigned Dominique → DailyReportr+ and Katey → Buildr+. Dominique was instead assigned BuildrPlus and shipped the Evidence Integrity Hash (idea #2 from yesterday’s afternoon brief). Katey was assigned Buildr+ but instead built DailyReportr+’s Report Completion Score, which aligns with today’s morning brief idea #3 (Daily Report Completeness Coach). The afternoon-brief-to-nightly conversion streak now stands at 9 consecutive days (May 13–21), with at least one suggested idea shipping every night. Both builders swapped their app assignments but still picked from the brief’s idea pool.

Active: Closeout Warranty QR Tags — 3+ Days Unbuilt

First proposed in the May 18 morning brief and featured in three consecutive afternoon briefs (May 18, 19, 20), the Closeout Warranty QR Tags concept remains the longest-unbuilt Closr+ idea in the current cycle at 3+ days. With the Exposure Snapshot, Aging Buckets, and Owner Training Evidence Packet all shipped, the QR Tags would complete a “premium handover” suite: scannable codes linking physical equipment to warranty docs, O&M manuals, and training videos. This is the highest-priority idea for Dominique’s Closr+ assignment tonight.

Active: Inspectr+ Offline Parity Gap — No Sync Outbox

DailyReportr+ completed its offline reliability stack on May 19 (Sync Outbox v2.23.0), joining the Sync Receipt (v2.18.0) and Conflict Review Queue (v2.16.0). Inspectr+ has none of these. With the Inspector Route Pack (v4.26.0) now enabling offline-first inspection workflows, inspectors can download and work offline but have zero visibility into what’s queued to sync back. Four morning briefs have now flagged this cross-app parity gap. This is the highest-priority idea for Katey’s Inspectr+ assignment tonight.

Feature Ideas

1. Closeout Warranty QR Tags Closr+

Generate scannable QR codes for each equipment asset or room that link directly to the corresponding warranty document, O&M manual, training video, and spare parts list in the closeout package. Facilities teams scan a QR sticker on an HVAC unit and immediately see when the warranty expires, who the service contact is, and the original commissioning record. This replaces the traditional binder-on-a-shelf handover with a living, scannable asset registry that works from day one of occupancy.

Why now: Longest-standing unbuilt Closr+ idea (3+ days, since May 18). The Closeout Exposure Snapshot (v2.20.0), Aging Buckets (v2.21.0), and Owner Training Evidence Packet (v2.19.0) provide the data layer — QR Tags add the physical-world access layer. Autodesk Forma is investing heavily in handover documentation this month (50+ May releases including Handover Export Configuration), but no competitor offers scannable asset-level QR access from within the closeout app. This differentiates Closr+ from document-centric handover tools.

Sketch: Add warranty_qr_tag Supabase table (id, project_id, asset_name, location, warranty_doc_url, om_manual_url, training_video_url, spare_parts_url, generated_at). Create QrTagGeneratorService using the qr_flutter package to render QR codes encoding deep links to the asset’s closeout detail page. Build QrTagBatchPage — select assets by trade/location, generate printable QR sticker sheets (PDF export via pdf package). Add QrTagScanPage using mobile_scanner for incoming scans that resolve to the asset detail view. Wire into the existing closeout dashboard as a “Generate QR Tags” action button.

2. Offline Sync Outbox Inspectr+

Port the Offline Sync Outbox pattern from DailyReportr+ (v2.23.0) to Inspectr+. Show a persistent, visible queue of every inspection report, photo, deficiency, and voice note waiting to sync when the device is offline or on poor connectivity. Each queued item displays type, size, timestamp, retry count, and status (pending/uploading/failed). A banner on the home screen shows items waiting with a tap-to-expand gesture. This completes the offline loop opened by the Inspector Route Pack: download (Route Pack) → work → upload (Sync Outbox).

Why now: The Inspector Route Pack (v4.26.0) shipped May 20, enabling offline-first inspection workflows. But there’s no visibility into the upload side — inspectors download and work offline but can’t see what’s queued to sync back. DailyReportr+ has had the outbox since v2.23.0; Inspectr+ is the last app without one. Four morning briefs have flagged the cross-app offline parity gap. Katey/Howard-3 has a 3-day gap on Inspectr+ (last build May 18) — this is the ideal assignment.

Sketch: Follow the DailyReportr+ pattern: create sync_outbox_provider.dart (Riverpod AsyncNotifier) backed by a local sync_outbox SQLite/Brick table (id, item_type, item_id, payload_bytes, status, retry_count, created_at, last_attempt_at). Build SyncOutboxBanner widget for the home screen showing pending count with tap-to-expand. Create SyncOutboxPage with item list grouped by type (inspections, photos, deficiencies, voice notes), retry/delete actions per item, and a “Sync All” button. Integrate with the existing connectivity_plus listener to auto-trigger uploads on reconnect.

3. Report Completion Trend Tracker DailyReportr+

Build on tonight’s Report Completion Score (v2.24.0) by adding a time-series trend view that tracks completion scores over the past 7, 14, and 30 days per crew, per project, and per foreman. Show sparkline charts on the dashboard, flag crews whose scores are declining, and highlight “perfect streak” badges for crews that maintain 100% completion for 5+ consecutive days. This turns the completion score from a snapshot into a management tool that rewards consistency and surfaces emerging report quality problems before they compound.

Why now: The Report Completion Score just shipped tonight, providing the data foundation. Adding trends now — while the scoring logic is fresh — avoids having to retrofit historical data later. Procore just launched Custom Fields for Daily Construction Reports (May 19) and Analytics 2.0 reporting, signaling the industry is investing in report intelligence. A trend tracker makes DailyReportr+ the only daily report tool that not only scores reports but tracks quality trajectories over time.

Sketch: Add completion_score_history Supabase table (id, project_id, report_id, crew_id, foreman_id, score, missing_fields, scored_at). Create CompletionTrendProvider (Riverpod) that aggregates scores into daily/weekly/monthly averages. Build CompletionTrendCard widget with fl_chart sparklines for the dashboard, showing 7-day rolling average. Add CompletionTrendPage with filters by crew, foreman, and project, full-size charts, declining-score alerts (amber <80%, red <60%), and a “perfect streak” badge system. Wire a Supabase Edge Function to compute and store scores on each report save.
Competitive Intel

Industry Moves — Last 7 Days

Procore — Two significant releases on May 19: (1) Modernized Submittals List View now in open beta, transforming the Submittals tool into a dynamic command center with inline attachment review, configurable columns, and the ability to respond to pending submittals directly from the list. Includes a new centralized Submittal Plan card with automated date calculations that work backward from Required On-Site dates — directly competing with our Auto-Deadline Calculator (v3.16.0). (2) Daily Log Bulk Delete for managing high-volume entries (50–100+ per day). Our Evidence Integrity Hash goes beyond Procore’s UI refresh by adding cryptographic document authenticity. (source)

Autodesk Forma — Continued rollout from the 50+ May release wave: Handover Export Configuration now covers Sheets, RFIs, and Submittals, matching the As-Built export scope. Handover documentation now includes issues (coordination conflicts, field observations) as part of final packages. Photos are organized by album in closeout exports. These are incremental but show Autodesk investing in closeout completeness. Our Warranty QR Tags idea would leapfrog their document-centric approach with physical-asset access. (source)

BluebeamBluebeam Max is live in 2026, adding AI-powered features including Claude-based AI Chat for project context queries, AI-assisted QA review of drawings and specifications, and Connected Sessions linking Autodesk Revit to Bluebeam Studio for 2D-to-3D markup bridging. Revu 21.8 update also shipped. The AI angle is notable — Bluebeam is the first major construction tool to embed LLM-powered document intelligence, though focused on plan review rather than field operations. (source)

Takeaway: Three signals: (1) Submittal automation arms race — Procore now has automated date calculations in their modernized submittals; our Auto-Deadline Calculator shipped first, and the Evidence Integrity Hash adds a defensibility layer they don’t have. (2) AI entering construction tools — Bluebeam Max with Claude AI chat is the first LLM integration in a major construction platform; worth watching for field-app implications. (3) Handover remains the battleground — Autodesk continues expanding closeout exports; our QR Tags concept would be the first physical-world access layer in a closeout app.
Tomorrow’s Build Suggestion

Dominique → Closr+

Dominique last built Closr+ on May 18 (Owner Training Evidence Packet) — a 3-day builder gap, the longest current gap for either builder. Closr+ last received any build on May 20 (Aging Buckets by Katey), making it a 1-day app gap. The premium handover suite is nearly complete: Training Evidence Packet → Exposure Snapshot → Aging Buckets. Suggest building Closeout Warranty QR Tags (idea #1 above) to add the physical-world access layer — the highest-priority unbuilt Closr+ idea at 3+ days.

Katey → Inspectr+

Katey/Howard-3 last built Inspectr+ on May 18 (Access Constraint Snapshot) — a 3-day builder gap matching Dominique’s Closr+ gap. Inspectr+ last received any build on May 20 (Route Pack by Dominique), making it a 1-day app gap. With the Route Pack enabling offline-first workflows, the upload side needs parity. Suggest building Offline Sync Outbox (idea #2 above) to complete the offline loop: download → work → upload.