Aug 27 - Update free-plan gate, MFA is no longer bypassable via the app
This commit is contained in:
+16
-1
@@ -416,11 +416,26 @@ ST's bare `Length(min=6)`. Porting ST's version would be a downgrade.
|
||||
|
||||
### 12.2 Phase log
|
||||
|
||||
Migrations `phase41` → `phase52` in `migrations/versions/` are the parity track:
|
||||
Migrations `phase41` → `phase56` in `migrations/versions/` are the parity track:
|
||||
auditor role, area QR tokens, schedule plan fields, internal handler, frequency
|
||||
ENUM widening, recurrence, end date, parent inspection, follow-up attribution,
|
||||
schedule acknowledgement, and then:
|
||||
|
||||
**Aug 2026 tail — ST parity, ported after MT-17.** ST's chain numbers these
|
||||
differently (its phase51/52/53); MT's was already past those numbers, so match
|
||||
by NAME:
|
||||
|
||||
| MT | ST | What |
|
||||
|---|---|---|
|
||||
| `phase54_user_notif_matrix` | phase51 | Per-account notification overrides for the two customer-side roles. Empty table = everyone inherits the global matrix, so it shipped changing nothing. See CLAUDE.md §27b. |
|
||||
| `phase55_template_contracts` | phase52 | Forms restricted to specific contracts. **No rows = shared**, which is why it needed no backfill. |
|
||||
| `phase56_followup_assignee` | phase53 | `inspections.follow_up_assigned_to` — hand a re-inspection to another inspector. NULL = the inspection's own inspector, as before. See CLAUDE.md §27c. |
|
||||
|
||||
Shipped alongside them, without migrations: customer-role management under
|
||||
`/customers`, bulk actions on the issues/inspections lists, list-filter
|
||||
preservation, contract-scoped flag-issue assignees, Customer Directors planning
|
||||
their own inspections, and the support surface serving both customer roles.
|
||||
|
||||
**MT-15 — External Inspector role. ✅ DONE** (`phase51_external_inspector`)
|
||||
Adds `external_inspector` to the `users.role` ENUM: an inspector employed by the
|
||||
customer or a third party, with identical capabilities to `inspector` and scoped
|
||||
|
||||
Reference in New Issue
Block a user