11 May **PropSec iOS live on Mark's iPhone for the first time** (Sessions 53→74, deployed via Mark's personal Apple Developer team). Four full audit passes shipped (security + performance + UI/UX + branding/UX), 95 findings closed end-to-end. **FM PortfolioView rebuilt as cross-portfolio exception rollup** (council consultation: O3 + Gemini 3.1 Pro) — Risk-this-week + cross-property critical-asset surfacing replaces the per-property dashboard. **SettingsView shipped, persona-aware**: Engineer panel (haptics, scan default, photo quality), FM panel (push tolerance, biometric approvals, default home). **Branding**: owl AppIcon + Ubuntu Bold `PropSec.` wordmark across splash + sign-in. **Production 500 fix on Portfolio + Compliance** — reverted DISTINCT ON raw SQL back to Drizzle query builder. **Network**: cancelled banner bug fixed via new `APIError.cancelled` case + silent-catch sweep across 25 views.
27 Apr PPM-001 + Brevo + Items 6/7 shipped to dev (uncommitted at the time, later paused mid-pivot pending STOCK-002).
5 May STOCK-002 Phase 1 W1 schema shipped ([PR #1](https://github.com/propsec/propsecsaas/pull/1)) on rebuilt propsec-owned stack — Neon `propsec-saas` org, Clerk `good-louse-82`, Vercel project `propsec`, Blob `propsec-blob`. CRON_SECRET rotated; all third-party API keys audited.
7 May **9 follow-up commits on `main`**. UX polish on yesterday's STOCK-002 surfaces: property-dialog "Stock classification" demoted to Advanced + plain-English Location Type labels (`3577222`); Add Property dialog redesign — merged place search into Property Name, reordered fields, Size to Advanced (`d760383`); maintenance-categories popover scroll fix + dropped citizenM-specific "SocietyM" jargon from default seed (`00a52c2`); P1 fix — Receive/Adjust buttons inside Edit Stock Item silently submitting parent form (`ba5f792`); Button component hardening — default `type="button"` to structurally prevent the bug class (`288741d`); UI rename "ops" → "site" because for many tenants (HPM at citizenM) maintenance is the discipline, not operations (`06b7103`); Record Movement Unit Cost pre-fills from item's catalog cost (`594f28f`); smart document status — date-derived auto-correct + AI advisory cross-check + nightly cron (`bc76a90`); HoverExpandIconButton component + applied to Add Property/Add Document/Add Item header CTAs (`b7f3539`).
8 May **72 commits, +28.7k LOC** spanning ~18 sessions on `main`. **Asset Insights overhaul Phases 1-4** — research + plan, Overview tab with hero KPIs + capex strip + FCI, AIL schema (6 tables, 4 enums), room product versions admin, room components admin, bulk import wizard for citizenM AIL XLSX (debranded), 18-photo starter anchor seed, walk-the-rooms mobile scoring UI, manager anchor review queue, AIL tab on `/assets/insights`, generic asset assessments + defects, 25-year Lifecycle plan + AIL→MYMP bridge (`1f9b83c` → `a66216e`). **Spaces structured locations** — schema, admin CRUD, onboarding wizard, reusable `SpacePicker`, picker on Tickets/Incidents/Assets, needs-review queue for engineer-flagged items (`eedc716`, `c60ab01`, `1feb342`, `b8a3ab3`, `5aa6d5c`, `f3d0ba9`). **Tickets Phase 1 overhaul** — three swimlanes (Major / Guest-Impacting / General), NLA cockpit, narrative create, QR scan + Needs-room pill (`98b8793`, `545cf8e`). **Incidents narrative-first** — Log dialog with voice + AI parse, dictation polish, log-time uploads, per-person injury cards (option B) (`c3a8394`, `f329471`, `a43ac24`, `7f3f483`). **Training Phases A-C** — kill Analyse Compliance, single Add Training Record CTA, Risk-this-week panel, CertificateHolderPicker, Phase C risk engine (`training_requirements` + bulk re-cert + notification cron) (`53c6068`, `57c7f83`, `bc92174`). **Planner Tier 1-3** — calendar polish, click-to-filter stat orbs, inline create + drag-to-reschedule, density toggle, deferred items closed (`2400a04` → `f67fdb7`). **Analytics Phase C** operations dashboard (`b57e27c`). **HoverExpandIconButton** across primary header CTAs (`e71b939`). **Document version history** (`255abc3`). **Visitors company picker** (`776e6e4`). **AddressAutocomplete** stabilized via refs (`8505ff6`). Closed with **3-agent perf/security/compliance audit** — 10 must-fix items hardened in one pass (`faee2da`, `0929276`); 18 SHOULD-FIX/BACKLOG deferred. New plan docs at [[Projects/PropSec/Product/Plans/2026-05-08-asset-insights-overhaul]], [[Projects/PropSec/Product/Plans/2026-05-08-tickets-overhaul]], [[Projects/PropSec/Product/Plans/2026-05-08-locations-spaces-analytics]], [[Projects/PropSec/Product/Plans/2026-05-08-training-module-revamp]], [[Projects/PropSec/Product/Plans/2026-05-08-session-handoff]].