Lab Architect / Ellsworth

Afternoon Brief

Friday, June 12, 2026 — builders are back after a 2-night quiet streak. Dominique shipped a Closr+ quality pass, Katey shipped AI Draft From Field Notes for DailyReportr+. Dashboard card polish and branded launch screens landed across apps.

Last Night's Builds

Dominique → Closr+: Quality Pass & Warranty Gate Brief shipped

Branch feature/nightly-20260612 — merged to main. Commit 6f4dda6 (5:30 AM PT). Version bumped to v2.32.1 (18482dd). This was a quality/audit pass on the Warranty Prerequisite Gate and Handoff Risk Score features, not a net-new feature. Focused on polish, validation, and brief generation.

Katey → DailyReportr+: AI Draft From Field Notes on branch

Branch feature/nightly-20260612-ai-draft-notes — not yet merged to main. Commit dcfe62d feat: add field notes draft review. Implements the "AI Draft From Field Notes" concept from today's morning brief: turns messy voice/text notes and photo captions into a structured daily-report draft. Converts the Jun 10 "AI Narrative Draft" afternoon brief idea.

Housekeeping Commits (last 18h)

Buildr+:       5cb50ce chore: apply final Buildr+ app icon
               e37b34f chore: set final Buildr+ app icon assets
Inspectr+:     cad5984 fix: replace white startup screen with branded launch
DailyReportr+: 609fcdc fix: remove muddy dashboard card washes
               097d932 fix: remove smeared gradient backgrounds from dashboard cards

The Buildr+ icon commits and DailyReportr+ card cleanup are on main. Inspectr+ branded launch screen is on main. All are polish/maintenance work.

Idle Apps

Buildr+ — last nightly feature build: Jun 9 (RFI Answer Action Checklist v3.29.0, Katey). 3-day gap.

Inspectr+ — last nightly feature build: Jun 9 (Photo Geotag Validator v4.58.0, Dominique). 3-day gap.

Codebase Health

App Issues Errors Warnings Last Commit
Buildr+ 15 0 0 5cb50ce — final app icon (today)
Closr+ 0 0 0 18482dd — TestFlight v2.32.1 bump (today)
Inspectr+ 969 0 0 cad5984 — branded launch screen (today)
DailyReportr+ 1,622 0 0 609fcdc — card wash cleanup (today)

Zero errors and zero warnings across all 4 apps (24th consecutive day). Closr+ remains fully clean. Buildr+ holds at 15 info-level issues (all avoid_print in build scripts). Inspectr+ dropped from 977 to 969 infos (branded launch screen cleanup). DailyReportr+ dropped from 1,639 to 1,622 infos (dashboard card gradient cleanup removed dead code). Dominant lint categories remain deprecated_member_use (withOpacity), prefer_const_constructors, and require_trailing_commas.

Recurring Themes from Morning Briefs

Patterns across the Jun 9–12 morning briefs that remain unbuilt:

Feature Ideas + UI/Code Health Recommendations

3 ideas (2 features, 1 code health), each verified not to exist in the codebase or git history.

1. Drawing Revision Freshness Badges Buildr+ — Feature

Add a small green/yellow/red freshness chip to RFIs, submittals, and transmittal list rows that shows whether the linked drawing sheet is the current revision, one revision behind, or stale. When a field user opens a document tied to an outdated sheet, they see a yellow or red badge with the current revision number and issue date, plus a one-tap action to view the latest sheet. This reduces the #1 field confusion pattern: acting on cached or offline plan sets that are no longer current.

Why now: Two consecutive morning briefs (Jun 9 Plan Sheet Freshness Badge, Jun 11 Drawing Issue Comparator) flag revision awareness as the top unbuilt Buildr+ theme. Buildr+ has a Drawing Revision Impact page (drawing_revision_impact_page.dart) that tracks revision metadata, but no inline freshness indicator on document lists. Bluebeam Max is shipping AI-assisted change detection; this is the lightweight mobile-first version. Buildr+ has a 3-day build gap.

Implementation sketch: New RevisionFreshness enum (current, behind, stale). RevisionFreshnessService that compares a document’s linked sheet revision against the latest revision in the existing drawing_revisions data. FreshnessBadge widget (green/yellow/red chip with revision label). Add to existing RFI, submittal, and transmittal list tiles. ~3 new files, ~180 LOC.

2. withOpacity Deprecation Sweep Inspectr+ — UI/Code Health

Systematically replace all 853 Color.withOpacity() calls in Inspectr+ with the non-deprecated Color.withValues(alpha: ...) API. This is the single largest contributor to the app’s 969 analyzer issues. A clean sweep would drop the issue count by ~88%, bringing Inspectr+ close to Buildr+’s 15-issue level and making analyzer output actionable again (currently, real issues drown in deprecation noise).

Why now: Inspectr+ has held 950–980 analyzer issues for weeks. The withOpacity deprecation is not just lint noise — the old API uses double precision that can produce subtly different alpha values than withValues(), which uses the color space’s native precision. Every nightly build adds a few more withOpacity calls. Cleaning the backlog now prevents the count from growing and makes the analyzer a useful signal again. DailyReportr+ has the same problem (478 calls) and should follow.

Implementation sketch: Mechanical find-and-replace: .withOpacity(X).withValues(alpha: X). Run dart fix --apply first (handles some automatically), then sweep remaining manual calls in lib/. Verify with dart analyze after each batch. Target: zero deprecated_member_use for withOpacity in one pass. ~0 new files, ~853 line edits across ~120 files.

3. Inspection Type Completeness Rules Inspectr+ — Feature

Let project admins define per-inspection-type completeness rules: minimum photo count, required fields (GPS location, inspector signature, measurement values), and evidence gates that must all pass before an item can be marked “Complete.” When an inspector tries to close an item that doesn’t meet the rules, they see inline validation chips showing what’s missing. Rules are stored as templates so they can be reused across projects and shared with other inspectors.

Why now: Three consecutive morning briefs (Jun 9 Inspector Accessibility Mode, Jun 11 Corrective Action Aging Queue, Jun 12 implicitly via the inspection evidence theme) flag evidence lifecycle gaps. The app has Photo Geotag Validator (v4.58.0) and Evidence Score (v4.41.0) for capture quality, but no way to enforce completeness requirements per inspection type. A grep -ri for “rulebook” and “completeness rule” confirms this doesn’t exist. Procore Inspections already supports configurable templates — this is table stakes.

Implementation sketch: New InspectionTypeRule model with inspectionTypeId, minPhotos, requiredFields list, requireGps, requireSignature booleans. InspectionRulebookService with Supabase CRUD. RulebookEditorPage for admin config. CompletionGateValidator widget showing red/green chips inline on the inspection item form. Hook into existing submit flow. ~4 new files, ~280 LOC.

UI Inconsistencies

Competitive Intel

Tomorrow's Build Suggestion

Builder App Feature Rationale
Dominique Buildr+ Drawing Revision Freshness Badges Buildr+ last built Jun 9 (3-day gap, tied for longest). Two morning briefs flag revision awareness as the top unbuilt theme. Dominique last touched Buildr+ on Jun 8 (Transmittal Cover Sheet Generator) — familiar with the document workflow. Idea #1 above.
Katey Inspectr+ Inspection Type Completeness Rules Inspectr+ last built Jun 9 (3-day gap, tied for longest). Three consecutive briefs flag evidence completeness. Katey last built Inspectr+ on May 26 (Signal-Loss Walk Mode) — due for rotation back. Idea #3 above. Pair with the withOpacity sweep (idea #2) as a code-health bonus task if time allows.

Build streak resumed: After two consecutive quiet nights (Jun 9→10, Jun 10→11), both builders shipped tonight. Closr+ and DailyReportr+ are now current; Buildr+ and Inspectr+ carry 3-day gaps and are the natural targets for tomorrow.